diff options
author | Richard van der Hoff <richard@matrix.org> | 2016-09-02 15:11:14 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2016-09-02 15:11:14 +0100 |
commit | 39212987bdef8e16794e756e3c78b531be25b70a (patch) | |
tree | 659be65eb1b131073bf9580292214b3fc24aa982 /include/olm/crypto.h | |
parent | 0c3f527dfd46d3056d5b3690836c102f0e0adfb4 (diff) |
Create new constants for key lengths, etc
We were using olm::KEY_LENGTH for everything under the sun which happened to be
32 bytes long, and making a bunch of assumptions in the process. Create a bunch
of new constants (as C #defines rather than C++ consts so that I can use them
in another forthcoming refactor).
Diffstat (limited to 'include/olm/crypto.h')
-rw-r--r-- | include/olm/crypto.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/include/olm/crypto.h b/include/olm/crypto.h index 31b9b60..325080e 100644 --- a/include/olm/crypto.h +++ b/include/olm/crypto.h @@ -27,7 +27,36 @@ extern "C" { #endif -const size_t SHA256_OUTPUT_LENGTH = 32; +/** length of a sha256 hash */ +#define SHA256_OUTPUT_LENGTH 32 + +/** length of a public or private Curve25519 key */ +#define CURVE25519_KEY_LENGTH 32 + +/** length of the shared secret created by a Curve25519 ECDH operation */ +#define CURVE25519_SHARED_SECRET_LENGTH 32 + +/** amount of random data required to create a Curve25519 keypair */ +#define CURVE25519_RANDOM_LENGTH CURVE25519_KEY_LENGTH + +/** length of a public Ed25519 key */ +#define ED25519_PUBLIC_KEY_LENGTH 32 + +/** length of a private Ed25519 key */ +#define ED25519_PRIVATE_KEY_LENGTH 64 + +/** amount of random data required to create a Ed25519 keypair */ +#define ED25519_RANDOM_LENGTH 32 + +/** length of an Ed25519 signature */ +#define ED25519_SIGNATURE_LENGTH 64 + +/** length of an aes256 key */ +#define AES256_KEY_LENGTH 32 + +/** length of an aes256 initialisation vector */ +#define AES256_IV_LENGTH 16 + /** Computes SHA-256 of the input. The output buffer must be a least 32 * bytes long. */ |