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 * Tom St Denis, tomstdenis (at) gmail.com, http://libtomcrypt.com 10 */ 11 #include "tomcrypt.h" 12 13 /** 14 @file hmac_process.c 15 HMAC support, process data, Tom St Denis/Dobes Vandermeer 16 */ 17 18 #ifdef LTC_HMAC 19 20 /** 21 Process data through HMAC 22 @param hmac The hmac state 23 @param in The data to send through HMAC 24 @param inlen The length of the data to HMAC (octets) 25 @return CRYPT_OK if successful 26 */ 27 int hmac_process(hmac_state *hmac, const unsigned char *in, unsigned long inlen) 28 { 29 int err; 30 LTC_ARGCHK(hmac != NULL); 31 LTC_ARGCHK(in != NULL); 32 if ((err = hash_is_valid(hmac->hash)) != CRYPT_OK) { 33 return err; 34 } 35 return hash_descriptor[hmac->hash].process(&hmac->md, in, inlen); 36 } 37 38 #endif 39 40 41 /* $Source: /cvs/libtom/libtomcrypt/src/mac/hmac/hmac_process.c,v $ */ 42 /* $Revision: 1.5 $ */ 43 /* $Date: 2006/11/03 00:39:49 $ */ 44