diff options
author | Lucas Kanashiro <kanashiro@debian.org> | 2017-06-25 00:00:40 -0300 |
---|---|---|
committer | Lucas Kanashiro <kanashiro@debian.org> | 2017-06-25 00:00:40 -0300 |
commit | ea35d105ec8dbf421ad1803bcb72e097d2295a18 (patch) | |
tree | 2aa3f333938fb6886d020d7deb5bc7b4d010afca /src/ltc/mac/pelican/pelican_memory.c |
Import original source of CryptX 0.048
Diffstat (limited to 'src/ltc/mac/pelican/pelican_memory.c')
-rw-r--r-- | src/ltc/mac/pelican/pelican_memory.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/ltc/mac/pelican/pelican_memory.c b/src/ltc/mac/pelican/pelican_memory.c new file mode 100644 index 00000000..f5e7b4a9 --- /dev/null +++ b/src/ltc/mac/pelican/pelican_memory.c @@ -0,0 +1,59 @@ +/* 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. + * + * Tom St Denis, tomstdenis@gmail.com, http://libtom.org + */ +#include "tomcrypt.h" + +/** + @file pelican_memory.c + Pelican MAC, MAC a block of memory, by Tom St Denis +*/ + +#ifdef LTC_PELICAN + +/** + Pelican block of memory + @param key The key for the MAC + @param keylen The length of the key (octets) + @param in The input to MAC + @param inlen The length of the input (octets) + @param out [out] The output TAG + @return CRYPT_OK on success +*/ +int pelican_memory(const unsigned char *key, unsigned long keylen, + const unsigned char *in, unsigned long inlen, + unsigned char *out) +{ + pelican_state *pel; + int err; + + pel = XMALLOC(sizeof(*pel)); + if (pel == NULL) { + return CRYPT_MEM; + } + + if ((err = pelican_init(pel, key, keylen)) != CRYPT_OK) { + XFREE(pel); + return err; + } + if ((err = pelican_process(pel, in ,inlen)) != CRYPT_OK) { + XFREE(pel); + return err; + } + err = pelican_done(pel, out); + XFREE(pel); + return err; +} + + +#endif + +/* $Source$ */ +/* $Revision$ */ +/* $Date$ */ |