diff options
author | Uros Majstorovic <majstor@majstor.org> | 2017-05-23 14:19:26 +0200 |
---|---|---|
committer | Uros Majstorovic <majstor@majstor.org> | 2017-05-23 14:19:26 +0200 |
commit | 3ef6719f47b734b12c0b11c725b7f12e3fb3c08a (patch) | |
tree | a635ac65bfc72d126d97e48e22c38ac33343b4f4 /code/core/crypto/test/aead_dec.c | |
parent | 922e8313f2b3f6157a61b3c867fdc3832bb92a68 (diff) |
fs layout updated
Diffstat (limited to 'code/core/crypto/test/aead_dec.c')
-rw-r--r-- | code/core/crypto/test/aead_dec.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/code/core/crypto/test/aead_dec.c b/code/core/crypto/test/aead_dec.c new file mode 100644 index 0000000..7deb587 --- /dev/null +++ b/code/core/crypto/test/aead_dec.c @@ -0,0 +1,46 @@ +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <fcntl.h> +#include <unistd.h> + +#include <crypto.h> +#include <curve25519.h> + +#define NONCE_LEN 8 +#define TAG_LEN 16 +#define KEY_LEN 32 +#define MSG_LEN 29 + +static int v_rng(void *buf, size_t bufsize) { + int fd; + + if((fd = open("/dev/urandom", O_RDONLY)) < 0) return -1; + size_t nb = read(fd, buf, bufsize); + close(fd); + if (nb != bufsize) return -1; + return 0; +} + +int main(int argc, char *argv[]) { + unsigned char in_msg[1024]; + unsigned char out_msg[1024]; + size_t in_msg_len; + int rv; + unsigned char public[KEY_LEN]; + unsigned char private[KEY_LEN]; + unsigned char key[KEY_LEN]; + unsigned char nonce[NONCE_LEN]; + + int fd = open("msg.enc", O_RDONLY); + read(fd, private, KEY_LEN); + read(fd, public, KEY_LEN); + read(fd, nonce, NONCE_LEN); + read(fd, out_msg, MSG_LEN); + close(fd); + + X25519(key, private, public); + rv = aead_chacha20_poly1305_open(in_msg, &in_msg_len, 1024, key, TAG_LEN, nonce, NONCE_LEN, out_msg, MSG_LEN, NULL, 0); + printf("OPEN RV:%d ILEN:%lu OLEN:%d\n", rv, in_msg_len, MSG_LEN); + printf("MSG: %s\n", in_msg); +}
\ No newline at end of file |