1 /* LibTomCrypt, modular cryptographic library -- Tom St Denis 2 * 3 * LibTomCrypt is a library that provides various cryptographic 4 * algorithms in a highly modular and flexible manner. 5 * 6 * The library is free for all purposes without any express 7 * guarantee it works. 8 */ 9 #include "tomcrypt.h" 10 11 /** 12 @file ctr_getiv.c 13 CTR implementation, get IV, Tom St Denis 14 */ 15 16 #ifdef LTC_CTR_MODE 17 18 /** 19 Get the current initialization vector 20 @param IV [out] The destination of the initialization vector 21 @param len [in/out] The max size and resulting size of the initialization vector 22 @param ctr The CTR state 23 @return CRYPT_OK if successful 24 */ ctr_getiv(unsigned char * IV,unsigned long * len,symmetric_CTR * ctr)25int ctr_getiv(unsigned char *IV, unsigned long *len, symmetric_CTR *ctr) 26 { 27 LTC_ARGCHK(IV != NULL); 28 LTC_ARGCHK(len != NULL); 29 LTC_ARGCHK(ctr != NULL); 30 if ((unsigned long)ctr->blocklen > *len) { 31 *len = ctr->blocklen; 32 return CRYPT_BUFFER_OVERFLOW; 33 } 34 XMEMCPY(IV, ctr->ctr, ctr->blocklen); 35 *len = ctr->blocklen; 36 37 return CRYPT_OK; 38 } 39 40 #endif 41 42 /* ref: $Format:%D$ */ 43 /* git commit: $Format:%H$ */ 44 /* commit time: $Format:%ai$ */ 45