aboutsummaryrefslogtreecommitdiff
path: root/include/olm
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2016-09-01 14:06:57 +0100
committerRichard van der Hoff <richard@matrix.org>2016-09-01 14:06:57 +0100
commit214e9328069b2c1db59d0ec63b7ff2753a5abfc9 (patch)
tree62fb26fc8ee3ca6ba30ce28f49ce455844b3fb88 /include/olm
parentf2906ac0e7a3168a1206beaa1fdd6ba1dd44b62d (diff)
parent0c462cff112589fc52d13da6c919f881cb6d3f8c (diff)
Merge branch 'rav/ed25519_fix'
Diffstat (limited to 'include/olm')
-rw-r--r--include/olm/crypto.hh21
-rw-r--r--include/olm/error.h7
-rw-r--r--include/olm/olm.h5
3 files changed, 14 insertions, 19 deletions
diff --git a/include/olm/crypto.hh b/include/olm/crypto.hh
index 64e8f7d..484dc83 100644
--- a/include/olm/crypto.hh
+++ b/include/olm/crypto.hh
@@ -25,6 +25,7 @@
namespace olm {
+static const std::size_t ED25519_PRIVATE_KEY_LENGTH = 64;
static const std::size_t KEY_LENGTH = 32;
static const std::size_t SIGNATURE_LENGTH = 64;
static const std::size_t IV_LENGTH = 16;
@@ -45,7 +46,7 @@ struct Ed25519PublicKey {
struct Ed25519KeyPair : public Ed25519PublicKey {
- std::uint8_t private_key[KEY_LENGTH];
+ std::uint8_t private_key[ED25519_PRIVATE_KEY_LENGTH];
};
@@ -65,24 +66,6 @@ void curve25519_shared_secret(
);
-/** Signs the message using our private key.
- * The output buffer must be at least 64 bytes long. */
-void curve25519_sign(
- Curve25519KeyPair const & our_key,
- std::uint8_t const * message, std::size_t message_length,
- std::uint8_t * output
-);
-
-
-/** Verify their message using their public key.
- * The signature input buffer must be 64 bytes long.
- * Returns true if the signature is valid. */
-bool curve25519_verify(
- Curve25519PublicKey const & their_key,
- std::uint8_t const * message, std::size_t message_length,
- std::uint8_t const * signature
-);
-
/** Generate a curve25519 key pair from 32 random bytes. */
void ed25519_generate_key(
std::uint8_t const * random_32_bytes,
diff --git a/include/olm/error.h b/include/olm/error.h
index 98d2cf5..1c44de8 100644
--- a/include/olm/error.h
+++ b/include/olm/error.h
@@ -39,6 +39,13 @@ enum OlmErrorCode {
* known session key.
*/
+ /**
+ * Attempt to unpickle an account which uses pickle version 1 (which did
+ * not save enough space for the Ed25519 key; the key should be considered
+ * compromised. We don't let the user reload the account.
+ */
+ OLM_BAD_LEGACY_ACCOUNT_PICKLE = 13,
+
/* remember to update the list of string constants in error.c when updating
* this list. */
};
diff --git a/include/olm/olm.h b/include/olm/olm.h
index dbaf71e..0886fa9 100644
--- a/include/olm/olm.h
+++ b/include/olm/olm.h
@@ -33,6 +33,11 @@ typedef struct OlmAccount OlmAccount;
typedef struct OlmSession OlmSession;
typedef struct OlmUtility OlmUtility;
+/** Get the version number of the library.
+ * Arguments will be updated if non-null.
+ */
+void olm_get_library_version(uint8_t *major, uint8_t *minor, uint8_t *patch);
+
/** The size of an account object in bytes */
size_t olm_account_size();