diff options
| author | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2018-11-29 14:48:22 +0100 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@airbus.com> | 2018-11-29 14:49:27 +0100 |
| commit | ffd17baa2f156d90f854e72eee374f0bc5abc99e (patch) | |
| tree | 61d3cd9c94520be4c34261f11912fcf805a05d84 /nist/encrypt.c | |
| parent | 65a052061b6621ef77b90b3e1ed7f85356f1d0bb (diff) | |
| download | lilliput-ae-implem-ffd17baa2f156d90f854e72eee374f0bc5abc99e.tar.xz | |
Ajout d'un script de génération de livraison pour le NIST
Diffstat (limited to 'nist/encrypt.c')
| -rw-r--r-- | nist/encrypt.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/nist/encrypt.c b/nist/encrypt.c new file mode 100644 index 0000000..a33a2f5 --- /dev/null +++ b/nist/encrypt.c @@ -0,0 +1,48 @@ +#include <stdbool.h> + +#include "crypto_aead.h" +#include "lilliput-ae.h" + + +int crypto_aead_encrypt( + unsigned char *c, unsigned long long *clen, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k +) +{ + (void)nsec; + + lilliput_ae_encrypt(mlen, m, adlen, ad, k, npub, c, c+mlen); + *clen = mlen + TAG_BYTES; + + return 0; +} + + +int crypto_aead_decrypt( + unsigned char *m, unsigned long long *mlen, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k +) +{ + (void)nsec; + + size_t tagless_len = clen-TAG_BYTES; + + bool valid = lilliput_ae_decrypt( + tagless_len, c, adlen, ad, k, npub, c+tagless_len, m + ); + + if (!valid) + return 1; + + *mlen = tagless_len; + + return 0; +} |
