X-Git-Url: https://pd.if.org/git/?p=zpackage;a=blobdiff_plain;f=libtomcrypt%2Fsrc%2Fmac%2Fxcbc%2Fxcbc_done.c;fp=libtomcrypt%2Fsrc%2Fmac%2Fxcbc%2Fxcbc_done.c;h=0000000000000000000000000000000000000000;hp=133d16fd1bec5f30f0c6839b4f2875dc3ac9e7d3;hb=d6aefd8ebda828ed4c9fef447f96882c1db52ce1;hpb=92a317bb7300b241022d2be78814136d08dfcd34 diff --git a/libtomcrypt/src/mac/xcbc/xcbc_done.c b/libtomcrypt/src/mac/xcbc/xcbc_done.c deleted file mode 100644 index 133d16f..0000000 --- a/libtomcrypt/src/mac/xcbc/xcbc_done.c +++ /dev/null @@ -1,75 +0,0 @@ -/* LibTomCrypt, modular cryptographic library -- Tom St Denis - * - * LibTomCrypt is a library that provides various cryptographic - * algorithms in a highly modular and flexible manner. - * - * The library is free for all purposes without any express - * guarantee it works. - */ -#include "tomcrypt.h" - -/** - @file xcbc_done.c - XCBC Support, terminate the state -*/ - -#ifdef LTC_XCBC - -/** Terminate the XCBC-MAC state - @param xcbc XCBC state to terminate - @param out [out] Destination for the MAC tag - @param outlen [in/out] Destination size and final tag size - Return CRYPT_OK on success -*/ -int xcbc_done(xcbc_state *xcbc, unsigned char *out, unsigned long *outlen) -{ - int err, x; - LTC_ARGCHK(xcbc != NULL); - LTC_ARGCHK(out != NULL); - - /* check structure */ - if ((err = cipher_is_valid(xcbc->cipher)) != CRYPT_OK) { - return err; - } - - if ((xcbc->blocksize > cipher_descriptor[xcbc->cipher].block_length) || (xcbc->blocksize < 0) || - (xcbc->buflen > xcbc->blocksize) || (xcbc->buflen < 0)) { - return CRYPT_INVALID_ARG; - } - - /* which key do we use? */ - if (xcbc->buflen == xcbc->blocksize) { - /* k2 */ - for (x = 0; x < xcbc->blocksize; x++) { - xcbc->IV[x] ^= xcbc->K[1][x]; - } - } else { - xcbc->IV[xcbc->buflen] ^= 0x80; - /* k3 */ - for (x = 0; x < xcbc->blocksize; x++) { - xcbc->IV[x] ^= xcbc->K[2][x]; - } - } - - /* encrypt */ - cipher_descriptor[xcbc->cipher].ecb_encrypt(xcbc->IV, xcbc->IV, &xcbc->key); - cipher_descriptor[xcbc->cipher].done(&xcbc->key); - - /* extract tag */ - for (x = 0; x < xcbc->blocksize && (unsigned long)x < *outlen; x++) { - out[x] = xcbc->IV[x]; - } - *outlen = x; - -#ifdef LTC_CLEAN_STACK - zeromem(xcbc, sizeof(*xcbc)); -#endif - return CRYPT_OK; -} - -#endif - -/* ref: $Format:%D$ */ -/* git commit: $Format:%H$ */ -/* commit time: $Format:%ai$ */ -