comparison src/mac/f9/f9_memory.c @ 380:d5faf4814ddb libtomcrypt-orig libtomcrypt-1.16

Update to LibTomCrypt 1.16
author Matt Johnston <matt@ucc.asn.au>
date Thu, 11 Jan 2007 02:22:00 +0000
parents
children
comparison
equal deleted inserted replaced
280:59400faa4b44 380:d5faf4814ddb
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, [email protected], http://libtomcrypt.com
10 */
11 #include "tomcrypt.h"
12
13 /**
14 @file f9_process.c
15 f9 Support, Process a block through F9-MAC
16 */
17
18 #ifdef LTC_F9_MODE
19
20 /** f9-MAC a block of memory
21 @param cipher Index of cipher to use
22 @param key [in] Secret key
23 @param keylen Length of key in octets
24 @param in [in] Message to MAC
25 @param inlen Length of input in octets
26 @param out [out] Destination for the MAC tag
27 @param outlen [in/out] Output size and final tag size
28 Return CRYPT_OK on success.
29 */
30 int f9_memory(int cipher,
31 const unsigned char *key, unsigned long keylen,
32 const unsigned char *in, unsigned long inlen,
33 unsigned char *out, unsigned long *outlen)
34 {
35 f9_state *f9;
36 int err;
37
38 /* is the cipher valid? */
39 if ((err = cipher_is_valid(cipher)) != CRYPT_OK) {
40 return err;
41 }
42
43 /* Use accelerator if found */
44 if (cipher_descriptor[cipher].f9_memory != NULL) {
45 return cipher_descriptor[cipher].f9_memory(key, keylen, in, inlen, out, outlen);
46 }
47
48 f9 = XCALLOC(1, sizeof(*f9));
49 if (f9 == NULL) {
50 return CRYPT_MEM;
51 }
52
53 if ((err = f9_init(f9, cipher, key, keylen)) != CRYPT_OK) {
54 goto done;
55 }
56
57 if ((err = f9_process(f9, in, inlen)) != CRYPT_OK) {
58 goto done;
59 }
60
61 err = f9_done(f9, out, outlen);
62 done:
63 XFREE(f9);
64 return err;
65 }
66
67 #endif
68
69 /* $Source: /cvs/libtom/libtomcrypt/src/mac/f9/f9_memory.c,v $ */
70 /* $Revision: 1.4 $ */
71 /* $Date: 2006/11/21 23:02:42 $ */