chachapoly_state > chacha20poly1305_state
This commit is contained in:
		
							parent
							
								
									11a9dc50b3
								
							
						
					
					
						commit
						3a05f0331d
					
				@ -18,7 +18,7 @@
 | 
			
		||||
  @param inlen  The length of the ChaCha20Poly1305 data.
 | 
			
		||||
  @return CRYPT_OK on success
 | 
			
		||||
 */
 | 
			
		||||
int chacha20poly1305_add_aad(chachapoly_state *st, const unsigned char *in, unsigned long inlen)
 | 
			
		||||
int chacha20poly1305_add_aad(chacha20poly1305_state *st, const unsigned char *in, unsigned long inlen)
 | 
			
		||||
{
 | 
			
		||||
   int err;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@
 | 
			
		||||
   @param out     [out] The plaintext (length inlen)
 | 
			
		||||
   @return CRYPT_OK if successful
 | 
			
		||||
*/
 | 
			
		||||
int chacha20poly1305_decrypt(chachapoly_state *st, const unsigned char *in, unsigned long inlen, unsigned char *out)
 | 
			
		||||
int chacha20poly1305_decrypt(chacha20poly1305_state *st, const unsigned char *in, unsigned long inlen, unsigned char *out)
 | 
			
		||||
{
 | 
			
		||||
   unsigned char padzero[16] = { 0 };
 | 
			
		||||
   unsigned long padlen;
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@
 | 
			
		||||
  @param taglen  [in/out]  The length of the MAC tag
 | 
			
		||||
  @return CRYPT_OK on success
 | 
			
		||||
 */
 | 
			
		||||
int chacha20poly1305_done(chachapoly_state *st, unsigned char *tag, unsigned long *taglen)
 | 
			
		||||
int chacha20poly1305_done(chacha20poly1305_state *st, unsigned char *tag, unsigned long *taglen)
 | 
			
		||||
{
 | 
			
		||||
   unsigned char padzero[16] = { 0 };
 | 
			
		||||
   unsigned long padlen;
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@
 | 
			
		||||
   @param out     [out] The ciphertext (length inlen)
 | 
			
		||||
   @return CRYPT_OK if successful
 | 
			
		||||
*/
 | 
			
		||||
int chacha20poly1305_encrypt(chachapoly_state *st, const unsigned char *in, unsigned long inlen, unsigned char *out)
 | 
			
		||||
int chacha20poly1305_encrypt(chacha20poly1305_state *st, const unsigned char *in, unsigned long inlen, unsigned char *out)
 | 
			
		||||
{
 | 
			
		||||
   unsigned char padzero[16] = { 0 };
 | 
			
		||||
   unsigned long padlen;
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@
 | 
			
		||||
   @param keylen    The length of the secret key (octets)
 | 
			
		||||
   @return CRYPT_OK if successful
 | 
			
		||||
*/
 | 
			
		||||
int chacha20poly1305_init(chachapoly_state *st, const unsigned char *key, unsigned long keylen)
 | 
			
		||||
int chacha20poly1305_init(chacha20poly1305_state *st, const unsigned char *key, unsigned long keylen)
 | 
			
		||||
{
 | 
			
		||||
   return chacha_setup(&st->chacha, key, keylen, 20);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -35,7 +35,7 @@ int chacha20poly1305_memory(const unsigned char *key, unsigned long keylen,
 | 
			
		||||
                                  unsigned char *tag, unsigned long *taglen,
 | 
			
		||||
                            int direction)
 | 
			
		||||
{
 | 
			
		||||
   chachapoly_state st;
 | 
			
		||||
   chacha20poly1305_state st;
 | 
			
		||||
   int err;
 | 
			
		||||
 | 
			
		||||
   LTC_ARGCHK(key != NULL);
 | 
			
		||||
@ -62,7 +62,7 @@ int chacha20poly1305_memory(const unsigned char *key, unsigned long keylen,
 | 
			
		||||
   err = chacha20poly1305_done(&st, tag, taglen);
 | 
			
		||||
LBL_ERR:
 | 
			
		||||
#ifdef LTC_CLEAN_STACK
 | 
			
		||||
   zeromem(&st, sizeof(chachapoly_state));
 | 
			
		||||
   zeromem(&st, sizeof(chacha20poly1305_state));
 | 
			
		||||
#endif
 | 
			
		||||
   return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@
 | 
			
		||||
  @param inlen  The length of the IV (must be 12 or 8)
 | 
			
		||||
  @return CRYPT_OK on success
 | 
			
		||||
 */
 | 
			
		||||
int chacha20poly1305_setiv(chachapoly_state *st, const unsigned char *iv, unsigned long ivlen)
 | 
			
		||||
int chacha20poly1305_setiv(chacha20poly1305_state *st, const unsigned char *iv, unsigned long ivlen)
 | 
			
		||||
{
 | 
			
		||||
   chacha_state tmp_st;
 | 
			
		||||
   int i, err;
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@
 | 
			
		||||
  @param sequence_number   64bit sequence number which is incorporated into IV as described in RFC7905
 | 
			
		||||
  @return CRYPT_OK on success
 | 
			
		||||
 */
 | 
			
		||||
int chacha20poly1305_setiv_rfc7905(chachapoly_state *st, const unsigned char *iv, unsigned long ivlen, ulong64 sequence_number)
 | 
			
		||||
int chacha20poly1305_setiv_rfc7905(chacha20poly1305_state *st, const unsigned char *iv, unsigned long ivlen, ulong64 sequence_number)
 | 
			
		||||
{
 | 
			
		||||
   int i;
 | 
			
		||||
   unsigned char combined_iv[12] = { 0 };
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@ int chacha20poly1305_test(void)
 | 
			
		||||
#ifndef LTC_TEST
 | 
			
		||||
   return CRYPT_NOP;
 | 
			
		||||
#else
 | 
			
		||||
   chachapoly_state st1, st2;
 | 
			
		||||
   chacha20poly1305_state st1, st2;
 | 
			
		||||
   unsigned char k[]   = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f };
 | 
			
		||||
   unsigned char iv[]  = { 0x07, 0x00, 0x00, 0x00, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47 };
 | 
			
		||||
   unsigned char aad[] = { 0x50, 0x51, 0x52, 0x53, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7 };
 | 
			
		||||
 | 
			
		||||
@ -505,18 +505,18 @@ typedef struct {
 | 
			
		||||
   ulong64 aadlen;
 | 
			
		||||
   ulong64 ctlen;
 | 
			
		||||
   int aadflg;
 | 
			
		||||
} chachapoly_state;
 | 
			
		||||
} chacha20poly1305_state;
 | 
			
		||||
 | 
			
		||||
#define CHCHA20POLY1305_ENCRYPT 0
 | 
			
		||||
#define CHCHA20POLY1305_DECRYPT 1
 | 
			
		||||
 | 
			
		||||
int chacha20poly1305_init(chachapoly_state *st, const unsigned char *key, unsigned long keylen);
 | 
			
		||||
int chacha20poly1305_setiv(chachapoly_state *st, const unsigned char *iv, unsigned long ivlen);
 | 
			
		||||
int chacha20poly1305_setiv_rfc7905(chachapoly_state *st, const unsigned char *iv, unsigned long ivlen, ulong64 sequence_number);
 | 
			
		||||
int chacha20poly1305_add_aad(chachapoly_state *st, const unsigned char *in, unsigned long inlen);
 | 
			
		||||
int chacha20poly1305_encrypt(chachapoly_state *st, const unsigned char *in, unsigned long inlen, unsigned char *out);
 | 
			
		||||
int chacha20poly1305_decrypt(chachapoly_state *st, const unsigned char *in, unsigned long inlen, unsigned char *out);
 | 
			
		||||
int chacha20poly1305_done(chachapoly_state *st, unsigned char *tag, unsigned long *taglen);
 | 
			
		||||
int chacha20poly1305_init(chacha20poly1305_state *st, const unsigned char *key, unsigned long keylen);
 | 
			
		||||
int chacha20poly1305_setiv(chacha20poly1305_state *st, const unsigned char *iv, unsigned long ivlen);
 | 
			
		||||
int chacha20poly1305_setiv_rfc7905(chacha20poly1305_state *st, const unsigned char *iv, unsigned long ivlen, ulong64 sequence_number);
 | 
			
		||||
int chacha20poly1305_add_aad(chacha20poly1305_state *st, const unsigned char *in, unsigned long inlen);
 | 
			
		||||
int chacha20poly1305_encrypt(chacha20poly1305_state *st, const unsigned char *in, unsigned long inlen, unsigned char *out);
 | 
			
		||||
int chacha20poly1305_decrypt(chacha20poly1305_state *st, const unsigned char *in, unsigned long inlen, unsigned char *out);
 | 
			
		||||
int chacha20poly1305_done(chacha20poly1305_state *st, unsigned char *tag, unsigned long *taglen);
 | 
			
		||||
int chacha20poly1305_memory(const unsigned char *key, unsigned long keylen,
 | 
			
		||||
                            const unsigned char *iv,  unsigned long ivlen,
 | 
			
		||||
                            const unsigned char *aad, unsigned long aadlen,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user