summaryrefslogtreecommitdiff
path: root/ecp/src/crypto/crypto.h
diff options
context:
space:
mode:
authorUros Majstorovic <majstor@majstor.org>2020-08-05 03:38:22 +0200
committerUros Majstorovic <majstor@majstor.org>2020-08-05 03:38:22 +0200
commit5cd610a07468137066ea4daa5176c3e7045113b0 (patch)
treea6a5b572572f8f37ec2cb87332fa46e9bcc53aa7 /ecp/src/crypto/crypto.h
parent2473a7d5c51806ab8651cd3c4e07a15b62084eb5 (diff)
ecp moved to root; fixed utils and tests
Diffstat (limited to 'ecp/src/crypto/crypto.h')
-rw-r--r--ecp/src/crypto/crypto.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/ecp/src/crypto/crypto.h b/ecp/src/crypto/crypto.h
new file mode 100644
index 0000000..86b072c
--- /dev/null
+++ b/ecp/src/crypto/crypto.h
@@ -0,0 +1,31 @@
+#define CURVE25519_SIZE_KEY 32
+#define CHACHA20_SIZE_KEY 32
+#define POLY1305_SIZE_TAG 16
+#define CHACHA20_SIZE_NONCE 8
+
+#define ECP_ECDH_SIZE_KEY 32
+#define ECP_AEAD_SIZE_KEY 32
+#define ECP_AEAD_SIZE_TAG 16
+#define ECP_AEAD_SIZE_NONCE 8
+
+#define ECP_DSA_SIZE_KEY 32
+
+typedef uint8_t ecp_dh_public_t[ECP_ECDH_SIZE_KEY];
+typedef uint8_t ecp_dh_private_t[ECP_ECDH_SIZE_KEY];
+typedef uint8_t ecp_aead_key_t[ECP_AEAD_SIZE_KEY];
+typedef uint8_t ecp_dsa_public_t[ECP_DSA_SIZE_KEY];
+typedef uint8_t ecp_dsa_private_t[ECP_DSA_SIZE_KEY];
+
+int
+aead_chacha20_poly1305_seal(unsigned char *out, size_t *out_len,
+ size_t max_out_len, unsigned char key[32], unsigned char tag_len,
+ const unsigned char *nonce, size_t nonce_len,
+ const unsigned char *in, size_t in_len,
+ const unsigned char *ad, size_t ad_len);
+
+int
+aead_chacha20_poly1305_open(unsigned char *out, size_t *out_len,
+ size_t max_out_len, unsigned char key[32], unsigned char tag_len,
+ const unsigned char *nonce, size_t nonce_len,
+ const unsigned char *in, size_t in_len,
+ const unsigned char *ad, size_t ad_len);