ESAPI: Remove unnecessary parameter iv_len
Remove the unnecessary parameter iv_len from all
internal functions of ESAPI.
Signed-off-by: Andreas Fuchs <andreas.fuchs@sit.fraunhofer.de>
diff --git a/src/tss2-esys/esys_crypto.c b/src/tss2-esys/esys_crypto.c
index d88a65c..1928160 100644
--- a/src/tss2-esys/esys_crypto.c
+++ b/src/tss2-esys/esys_crypto.c
@@ -1097,13 +1097,12 @@
TPM2_ALG_ID tpm_sym_alg,
TPMI_AES_KEY_BITS key_bits,
TPM2_ALG_ID tpm_mode,
- size_t blk_len, size_t iv_len, uint8_t * iv)
+ size_t iv_len, uint8_t * iv)
{
LOGBLOB_TRACE(key, (key_bits + 7) / 8, "IESYS AES key");
LOGBLOB_TRACE(iv, iv_len, "IESYS AES iv");
int algo, mode, len;
- //int blk_len = 16;
size_t key_len = 0;
gcry_error_t err;
switch (tpm_sym_alg) {
@@ -1148,7 +1147,7 @@
return TSS2_ESYS_RC_GENERAL_FAILURE;
}
if (iv_len != 0) {
- err = gcry_cipher_setiv(*cipher_hd, &iv[0], blk_len);
+ err = gcry_cipher_setiv(*cipher_hd, &iv[0], iv_len);
if (err != GPG_ERR_NO_ERROR) {
LOG_ERROR("Function gcry_cipher_setiv");
return TSS2_ESYS_RC_GENERAL_FAILURE;
@@ -1170,14 +1169,19 @@
size_t blk_len,
uint8_t * buffer,
size_t buffer_size,
- uint8_t * iv, size_t iv_len)
+ uint8_t * iv)
{
gcry_cipher_hd_t cipher_hd;
- //int blk_len = 16;
gcry_error_t err;
TSS2_RC r;
+
+ if (key == NULL || buffer == NULL) {
+ LOG_ERROR("Bad reference");
+ return TSS2_ESYS_RC_BAD_REFERENCE;
+ }
+
r = iesys_cryptogcry_sym_aes_init(&cipher_hd, key, tpm_sym_alg,
- key_bits, tpm_mode, blk_len, iv_len, iv);
+ key_bits, tpm_mode, blk_len, iv);
if (r != TSS2_RC_SUCCESS)
return r;
LOGBLOB_TRACE(buffer, buffer_size, "IESYS AES input");
@@ -1197,8 +1201,9 @@
TPMI_AES_KEY_BITS key_bits,
TPM2_ALG_ID tpm_mode,
size_t blk_len,
- uint8_t * buffer, size_t buffer_size,
- uint8_t * iv, size_t iv_len)
+ uint8_t * buffer,
+ size_t buffer_size,
+ uint8_t * iv)
{
gcry_cipher_hd_t cipher_hd;
gcry_error_t err;
@@ -1215,7 +1220,7 @@
}
r = iesys_cryptogcry_sym_aes_init(&cipher_hd, key, tpm_sym_alg,
- key_bits, tpm_mode, blk_len, iv_len, iv);
+ key_bits, tpm_mode, blk_len, iv);
if (r != TSS2_RC_SUCCESS)
return r;
err = gcry_cipher_decrypt(cipher_hd, buffer, buffer_size, NULL, 0);
diff --git a/src/tss2-esys/esys_crypto.h b/src/tss2-esys/esys_crypto.h
index aca1ade..8ce5893 100644
--- a/src/tss2-esys/esys_crypto.h
+++ b/src/tss2-esys/esys_crypto.h
@@ -208,8 +208,7 @@
size_t blk_len,
uint8_t *dst,
size_t dst_size,
- uint8_t *iv,
- size_t iv_len);
+ uint8_t *iv);
TSS2_RC iesys_cryptogcry_sym_aes_decrypt(
uint8_t *key,
@@ -219,8 +218,7 @@
size_t blk_len,
uint8_t *dst,
size_t dst_size,
- uint8_t *iv,
- size_t iv_len);
+ uint8_t *iv);
TSS2_RC iesys_xor_parameter_obfuscation(
TPM2_ALG_ID hash_alg,
diff --git a/src/tss2-esys/esys_iutil.c b/src/tss2-esys/esys_iutil.c
index d31b2ec..a437c32 100644
--- a/src/tss2-esys/esys_iutil.c
+++ b/src/tss2-esys/esys_iutil.c
@@ -556,8 +556,7 @@
symDef->mode.aes,
AES_BLOCK_SIZE_IN_BYTES,
&encrypt_buffer[0], paramSize,
- &symKey[aes_off],
- AES_BLOCK_SIZE_IN_BYTES);
+ &symKey[aes_off]);
return_if_error(r, "AES encryption not possible");
r = Tss2_Sys_SetDecryptParam(esys_context->sys, paramSize,
&encrypt_buffer[0]);
@@ -640,8 +639,7 @@
symDef->mode.aes,
AES_BLOCK_SIZE_IN_BYTES,
(uint8_t *) & rpBuffer[2], p2BSize,
- &symKey[aes_off],
- AES_BLOCK_SIZE_IN_BYTES);
+ &symKey[aes_off]);
return_if_error(r, "Decryption error");
} else if (symDef->algorithm == TPM2_ALG_XOR) {