encrypt.c (991B)
1 #include <stdbool.h> 2 3 #include "crypto_aead.h" 4 #include "lilliput-ae.h" 5 6 7 int crypto_aead_encrypt( 8 unsigned char *c, unsigned long long *clen, 9 const unsigned char *m, unsigned long long mlen, 10 const unsigned char *ad, unsigned long long adlen, 11 const unsigned char *nsec, 12 const unsigned char *npub, 13 const unsigned char *k 14 ) 15 { 16 (void)nsec; 17 18 lilliput_ae_encrypt(mlen, m, adlen, ad, k, npub, c, c+mlen); 19 *clen = mlen + TAG_BYTES; 20 21 return 0; 22 } 23 24 25 int crypto_aead_decrypt( 26 unsigned char *m, unsigned long long *mlen, 27 unsigned char *nsec, 28 const unsigned char *c, unsigned long long clen, 29 const unsigned char *ad, unsigned long long adlen, 30 const unsigned char *npub, 31 const unsigned char *k 32 ) 33 { 34 (void)nsec; 35 36 size_t tagless_len = clen-TAG_BYTES; 37 38 bool valid = lilliput_ae_decrypt( 39 tagless_len, c, adlen, ad, k, npub, c+tagless_len, m 40 ); 41 42 if (!valid) 43 return -1; 44 45 *mlen = tagless_len; 46 47 return 0; 48 }