summaryrefslogtreecommitdiff
path: root/src/lib.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.h')
-rw-r--r--src/lib.h153
1 files changed, 153 insertions, 0 deletions
diff --git a/src/lib.h b/src/lib.h
new file mode 100644
index 0000000..16a9ebd
--- /dev/null
+++ b/src/lib.h
@@ -0,0 +1,153 @@
+enum {
+ crypt_verify_BYTES = 16,
+
+ crypt_hash_BYTES = 64,
+
+ crypt_onetimeauth_BYTES = 16,
+ crypt_onetimeauth_KEYBYTES = 32,
+
+ crypt_secretbox_KEYBYTES = 32,
+ crypt_secretbox_NONCEBYTES = 24,
+ crypt_secretbox_ZEROBYTES = 32,
+ crypt_secretbox_BOXZEROBYTES = 16,
+
+ crypt_sign_BYTES = 64,
+ crypt_sign_PUBLICKEYBYTES = 32,
+ crypt_sign_SECRETKEYBYTES = 64,
+
+ crypt_box_PUBLICKEYBYTES = 32,
+ crypt_box_SECRETKEYBYTES = 32,
+ crypt_box_BEFORENMBYTES = 32,
+ crypt_box_NONCEBYTES = 24,
+ crypt_box_ZEROBYTES = 32,
+ crypt_box_BOXZEROBYTES = 16,
+};
+
+
+
+int
+random_init(void);
+
+int
+random_destroy(void);
+
+int
+tweetnacl_main(int argc, const char *const *argv);
+
+
+
+bool
+crypt_verify(
+ const unsigned char buffer1[crypt_verify_BYTES],
+ const unsigned char buffer2[crypt_verify_BYTES]
+);
+
+void
+crypt_hash(
+ const unsigned long long length,
+ const unsigned char *data,
+ unsigned char out[crypt_hash_BYTES]
+);
+
+void
+crypt_onetimeauth(
+ const unsigned long long length,
+ const unsigned char *const data,
+ const unsigned char secret_key[crypt_onetimeauth_KEYBYTES],
+ unsigned char authenticator_out[crypt_onetimeauth_BYTES]
+);
+
+bool
+crypt_onetimeauth_verify(
+ const unsigned char authenticator[crypt_onetimeauth_BYTES],
+ const unsigned char secret_key[crypt_onetimeauth_KEYBYTES],
+ const unsigned long long length,
+ const unsigned char *const data
+);
+
+int
+crypt_secretbox(
+ const unsigned char secret_key[crypt_secretbox_KEYBYTES],
+ const unsigned long long length,
+ const unsigned char *const clear_data,
+ unsigned char *const cypher_out
+);
+
+int
+crypt_secretbox_open(
+ const unsigned char secret_key[crypt_secretbox_KEYBYTES],
+ const unsigned long long length,
+ const unsigned char *const cypher_data,
+ unsigned char *const clean_out
+);
+
+void
+crypt_sign_keypair(
+ unsigned char public_key_out[crypt_sign_PUBLICKEYBYTES],
+ unsigned char secret_key_out[crypt_sign_SECRETKEYBYTES]
+);
+
+void
+crypt_sign(
+ const unsigned char secret_key[crypt_sign_SECRETKEYBYTES],
+ const unsigned long long length,
+ const unsigned char *const data,
+ unsigned long long *const outlen,
+ unsigned char *const signed_out
+);
+
+int
+crypt_sign_open(
+ const unsigned char public_key[crypt_sign_PUBLICKEYBYTES],
+ const unsigned long long signed_message_length,
+ const unsigned char *const signed_message,
+ unsigned long long *const inoutlen,
+ unsigned char *const out
+);
+
+void
+crypt_box_keypair(
+ unsigned char public_key_out[crypt_box_PUBLICKEYBYTES],
+ unsigned char secret_key_out[crypt_box_SECRETKEYBYTES]
+);
+
+int
+crypt_box(
+ const unsigned char receiver_public_key[crypt_box_PUBLICKEYBYTES],
+ const unsigned char sender_secret_key[crypt_box_PUBLICKEYBYTES],
+ const unsigned long long length,
+ const unsigned char *const clear_data,
+ unsigned char *const cypher_out
+);
+
+int
+crypt_box_open(
+ const unsigned char sender_public_key[crypt_box_PUBLICKEYBYTES],
+ const unsigned char receiver_secret_key[crypt_box_SECRETKEYBYTES],
+ const unsigned long long length,
+ const unsigned char *const cypher_data,
+ unsigned char *const clear_out
+);
+
+void
+crypt_box_beforenm(
+ const unsigned char public_key[crypt_box_PUBLICKEYBYTES],
+ const unsigned char secret_key[crypt_box_PUBLICKEYBYTES],
+ unsigned char out[crypt_box_BEFORENMBYTES]
+);
+
+void
+crypt_box_afternm(
+ const unsigned char beforenm_intermediate[crypt_box_BEFORENMBYTES],
+ const unsigned long long length,
+ const unsigned char *const clear_data,
+ unsigned char *const cypher_out
+);
+
+int
+crypt_box_open_afternm(
+ const unsigned char beforenm_intermediate[crypt_box_BEFORENMBYTES],
+ const unsigned long long length,
+ const unsigned char *const cypher_data,
+ unsigned char *const clear_out
+);