comparison ctr_setiv.c @ 15:6362d3854bb4 libtomcrypt-orig

0.96 release of LibTomCrypt
author Matt Johnston <matt@ucc.asn.au>
date Tue, 15 Jun 2004 14:07:21 +0000
parents
children 5d99163f7e32
comparison
equal deleted inserted replaced
3:7faae8f46238 15:6362d3854bb4
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.org
10 */
11
12 #include "mycrypt.h"
13
14 #ifdef CTR
15
16 int ctr_setiv(const unsigned char *IV, unsigned long len, symmetric_CTR *ctr)
17 {
18 int err;
19
20 _ARGCHK(IV != NULL);
21 _ARGCHK(ctr != NULL);
22
23 /* bad param? */
24 if ((err = cipher_is_valid(ctr->cipher)) != CRYPT_OK) {
25 return err;
26 }
27
28 if (len != (unsigned long)ctr->blocklen) {
29 return CRYPT_INVALID_ARG;
30 }
31
32 /* set IV */
33 memcpy(ctr->ctr, IV, len);
34
35 /* force next block */
36 ctr->padlen = 0;
37 cipher_descriptor[ctr->cipher].ecb_encrypt(IV, ctr->pad, &ctr->key);
38
39 return CRYPT_OK;
40 }
41
42 #endif
43