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@gmail.com, http://libtomcrypt.com 10 */ 11#include "tomcrypt.h" 12 13/** 14 @file pelican_memory.c 15 Pelican MAC, MAC a block of memory, by Tom St Denis 16*/ 17 18#ifdef PELICAN 19 20/** 21 Pelican block of memory 22 @param key The key for the MAC 23 @param keylen The length of the key (octets) 24 @param in The input to MAC 25 @param inlen The length of the input (octets) 26 @param out [out] The output TAG 27 @return CRYPT_OK on success 28*/ 29int pelican_memory(const unsigned char *key, unsigned long keylen, 30 const unsigned char *in, unsigned long inlen, 31 unsigned char *out) 32{ 33 pelican_state *pel; 34 int err; 35 36 pel = XMALLOC(sizeof(*pel)); 37 if (pel == NULL) { 38 return CRYPT_MEM; 39 } 40 41 if ((err = pelican_init(pel, key, keylen)) != CRYPT_OK) { 42 XFREE(pel); 43 return err; 44 } 45 if ((err = pelican_process(pel, in ,inlen)) != CRYPT_OK) { 46 XFREE(pel); 47 return err; 48 } 49 err = pelican_done(pel, out); 50 XFREE(pel); 51 return err; 52} 53 54 55#endif 56 57/* $Source: /cvs/libtom/libtomcrypt/src/mac/pelican/pelican_memory.c,v $ */ 58/* $Revision: 1.6 $ */ 59/* $Date: 2006/03/31 14:15:35 $ */ 60