comparison libtomcrypt/src/encauth/ocb/ocb_init.c @ 382:0cbe8f6dbf9e

propagate from branch 'au.asn.ucc.matt.ltc.dropbear' (head 2af22fb4e878750b88f80f90d439b316d229796f) to branch 'au.asn.ucc.matt.dropbear' (head 02c413252c90e9de8e03d91e9939dde3029f5c0a)
author Matt Johnston <matt@ucc.asn.au>
date Thu, 11 Jan 2007 02:41:05 +0000
parents 1b9e69c058d2
children f849a5ca2efc
comparison
equal deleted inserted replaced
379:b66a00272a90 382:0cbe8f6dbf9e
4 * algorithms in a highly modular and flexible manner. 4 * algorithms in a highly modular and flexible manner.
5 * 5 *
6 * The library is free for all purposes without any express 6 * The library is free for all purposes without any express
7 * guarantee it works. 7 * guarantee it works.
8 * 8 *
9 * Tom St Denis, [email protected], http://libtomcrypt.org 9 * Tom St Denis, [email protected], http://libtomcrypt.com
10 */ 10 */
11 11
12 /** 12 /**
13 @file ocb_init.c 13 @file ocb_init.c
14 OCB implementation, initialize state, by Tom St Denis 14 OCB implementation, initialize state, by Tom St Denis
74 return err; 74 return err;
75 } 75 }
76 76
77 /* find L = E[0] */ 77 /* find L = E[0] */
78 zeromem(ocb->L, ocb->block_len); 78 zeromem(ocb->L, ocb->block_len);
79 cipher_descriptor[cipher].ecb_encrypt(ocb->L, ocb->L, &ocb->key); 79 if ((err = cipher_descriptor[cipher].ecb_encrypt(ocb->L, ocb->L, &ocb->key)) != CRYPT_OK) {
80 return err;
81 }
80 82
81 /* find R = E[N xor L] */ 83 /* find R = E[N xor L] */
82 for (x = 0; x < ocb->block_len; x++) { 84 for (x = 0; x < ocb->block_len; x++) {
83 ocb->R[x] = ocb->L[x] ^ nonce[x]; 85 ocb->R[x] = ocb->L[x] ^ nonce[x];
84 } 86 }
85 cipher_descriptor[cipher].ecb_encrypt(ocb->R, ocb->R, &ocb->key); 87 if ((err = cipher_descriptor[cipher].ecb_encrypt(ocb->R, ocb->R, &ocb->key)) != CRYPT_OK) {
88 return err;
89 }
86 90
87 /* find Ls[i] = L << i for i == 0..31 */ 91 /* find Ls[i] = L << i for i == 0..31 */
88 XMEMCPY(ocb->Ls[0], ocb->L, ocb->block_len); 92 XMEMCPY(ocb->Ls[0], ocb->L, ocb->block_len);
89 for (x = 1; x < 32; x++) { 93 for (x = 1; x < 32; x++) {
90 m = ocb->Ls[x-1][0] >> 7; 94 m = ocb->Ls[x-1][0] >> 7;
127 } 131 }
128 132
129 #endif 133 #endif
130 134
131 /* $Source: /cvs/libtom/libtomcrypt/src/encauth/ocb/ocb_init.c,v $ */ 135 /* $Source: /cvs/libtom/libtomcrypt/src/encauth/ocb/ocb_init.c,v $ */
132 /* $Revision: 1.3 $ */ 136 /* $Revision: 1.5 $ */
133 /* $Date: 2005/05/05 14:35:58 $ */ 137 /* $Date: 2006/03/31 14:15:35 $ */