Upgrade libtomcrypt
This commit is contained in:
@@ -24,9 +24,6 @@ int omac_done(omac_state *omac, unsigned char *out, unsigned long *outlen)
|
||||
LTC_ARGCHK(omac != NULL);
|
||||
LTC_ARGCHK(out != NULL);
|
||||
LTC_ARGCHK(outlen != NULL);
|
||||
if ((err = cipher_is_valid(omac->cipher_idx)) != CRYPT_OK) {
|
||||
return err;
|
||||
}
|
||||
|
||||
if ((omac->buflen > (int)sizeof(omac->block)) || (omac->buflen < 0) ||
|
||||
(omac->blklen > (int)sizeof(omac->block)) || (omac->buflen > omac->blklen)) {
|
||||
@@ -53,10 +50,10 @@ int omac_done(omac_state *omac, unsigned char *out, unsigned long *outlen)
|
||||
}
|
||||
|
||||
/* encrypt it */
|
||||
if ((err = cipher_descriptor[omac->cipher_idx].ecb_encrypt(omac->block, omac->block, &omac->key)) != CRYPT_OK) {
|
||||
if ((err = ecb_encrypt_block(omac->block, omac->block, &omac->key)) != CRYPT_OK) {
|
||||
return err;
|
||||
}
|
||||
cipher_descriptor[omac->cipher_idx].done(&omac->key);
|
||||
ecb_done(&omac->key);
|
||||
|
||||
/* output it */
|
||||
for (x = 0; x < (unsigned)omac->blklen && x < *outlen; x++) {
|
||||
|
||||
@@ -51,7 +51,7 @@ int omac_init(omac_state *omac, int cipher, const unsigned char *key, unsigned l
|
||||
default: return CRYPT_INVALID_ARG;
|
||||
}
|
||||
|
||||
if ((err = cipher_descriptor[cipher].setup(key, keylen, 0, &omac->key)) != CRYPT_OK) {
|
||||
if ((err = ecb_start(cipher, key, keylen, 0, &omac->key)) != CRYPT_OK) {
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ int omac_init(omac_state *omac, int cipher, const unsigned char *key, unsigned l
|
||||
|
||||
/* first calc L which is Ek(0) */
|
||||
zeromem(omac->Lu[0], cipher_descriptor[cipher].block_length);
|
||||
if ((err = cipher_descriptor[cipher].ecb_encrypt(omac->Lu[0], omac->Lu[0], &omac->key)) != CRYPT_OK) {
|
||||
if ((err = ecb_encrypt_block(omac->Lu[0], omac->Lu[0], &omac->key)) != CRYPT_OK) {
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -81,7 +81,6 @@ int omac_init(omac_state *omac, int cipher, const unsigned char *key, unsigned l
|
||||
}
|
||||
|
||||
/* setup state */
|
||||
omac->cipher_idx = cipher;
|
||||
omac->buflen = 0;
|
||||
omac->blklen = len;
|
||||
zeromem(omac->prev, sizeof(omac->prev));
|
||||
|
||||
@@ -24,9 +24,6 @@ int omac_process(omac_state *omac, const unsigned char *in, unsigned long inlen)
|
||||
|
||||
LTC_ARGCHK(omac != NULL);
|
||||
LTC_ARGCHK(in != NULL);
|
||||
if ((err = cipher_is_valid(omac->cipher_idx)) != CRYPT_OK) {
|
||||
return err;
|
||||
}
|
||||
|
||||
if ((omac->buflen > (int)sizeof(omac->block)) || (omac->buflen < 0) ||
|
||||
(omac->blklen > (int)sizeof(omac->block)) || (omac->buflen > omac->blklen)) {
|
||||
@@ -34,22 +31,17 @@ int omac_process(omac_state *omac, const unsigned char *in, unsigned long inlen)
|
||||
}
|
||||
|
||||
#ifdef LTC_FAST
|
||||
{
|
||||
unsigned long blklen = cipher_descriptor[omac->cipher_idx].block_length;
|
||||
|
||||
if (omac->buflen == 0 && inlen > blklen) {
|
||||
unsigned long y;
|
||||
for (x = 0; x < (inlen - blklen); x += blklen) {
|
||||
for (y = 0; y < blklen; y += sizeof(LTC_FAST_TYPE)) {
|
||||
*(LTC_FAST_TYPE_PTR_CAST(&omac->prev[y])) ^= *(LTC_FAST_TYPE_PTR_CAST(&in[y]));
|
||||
}
|
||||
in += blklen;
|
||||
if ((err = cipher_descriptor[omac->cipher_idx].ecb_encrypt(omac->prev, omac->prev, &omac->key)) != CRYPT_OK) {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
inlen -= x;
|
||||
}
|
||||
if (omac->buflen == 0 && inlen > (unsigned long)omac->blklen) {
|
||||
for (x = 0; x < (inlen - omac->blklen); x += omac->blklen) {
|
||||
for (n = 0; n < (unsigned long)omac->blklen; n += sizeof(LTC_FAST_TYPE)) {
|
||||
*(LTC_FAST_TYPE_PTR_CAST(&omac->prev[n])) ^= *(LTC_FAST_TYPE_PTR_CAST(&in[n]));
|
||||
}
|
||||
in += omac->blklen;
|
||||
if ((err = ecb_encrypt_block(omac->prev, omac->prev, &omac->key)) != CRYPT_OK) {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
inlen -= x;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -59,7 +51,7 @@ int omac_process(omac_state *omac, const unsigned char *in, unsigned long inlen)
|
||||
for (x = 0; x < (unsigned long)omac->blklen; x++) {
|
||||
omac->block[x] ^= omac->prev[x];
|
||||
}
|
||||
if ((err = cipher_descriptor[omac->cipher_idx].ecb_encrypt(omac->block, omac->prev, &omac->key)) != CRYPT_OK) {
|
||||
if ((err = ecb_encrypt_block(omac->block, omac->prev, &omac->key)) != CRYPT_OK) {
|
||||
return err;
|
||||
}
|
||||
omac->buflen = 0;
|
||||
|
||||
@@ -76,7 +76,7 @@ int omac_test(void)
|
||||
}
|
||||
}
|
||||
|
||||
for (x = 0; x < (int)(sizeof(tests)/sizeof(tests[0])); x++) {
|
||||
for (x = 0; x < (int)LTC_ARRAY_SIZE(tests); x++) {
|
||||
len = sizeof(out);
|
||||
if ((err = omac_memory(idx, tests[x].key, tests[x].keylen, tests[x].msg, tests[x].msglen, out, &len)) != CRYPT_OK) {
|
||||
return err;
|
||||
|
||||
Reference in New Issue
Block a user