Skip to content

Commit 85be9ff

Browse files
committed
Fix Camellia key size in encrypt/decrypt
wc_CamelliaSetKey was passed `block` (cipher block size, always 16) instead of `size / 8` (key size in bytes). The `size` parameter is in bits (128/192/256) so it must be divided by 8. The old code happened to work for camellia-128 since block == 128/8 == 16.
1 parent bcd3742 commit 85be9ff

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

src/crypto/clu_decrypt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ int wolfCLU_decrypt(int alg, char* mode, byte* pwdKey, byte* key, int size,
172172
(alg == WOLFCLU_CAMELLIA128CBC ||
173173
alg == WOLFCLU_CAMELLIA192CBC ||
174174
alg == WOLFCLU_CAMELLIA256CBC)) {
175-
ret = wc_CamelliaSetKey(&camellia, key, block, iv);
175+
ret = wc_CamelliaSetKey(&camellia, key, size / 8, iv);
176176
if (ret == 0) {
177177
wc_CamelliaCbcDecrypt(&camellia, output, input, tempMax);
178178
}

src/crypto/clu_encrypt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ int wolfCLU_encrypt(int alg, char* mode, byte* pwdKey, byte* key, int size,
218218
#ifdef HAVE_CAMELLIA
219219
if (alg == WOLFCLU_CAMELLIA128CBC || alg == WOLFCLU_CAMELLIA192CBC ||
220220
alg == WOLFCLU_CAMELLIA256CBC) {
221-
ret = wc_CamelliaSetKey(&camellia, key, block, iv);
221+
ret = wc_CamelliaSetKey(&camellia, key, size / 8, iv);
222222
if (ret != 0) {
223223
XFCLOSE(inFile);
224224
wolfCLU_LogError("CamelliaSetKey failed.");

0 commit comments

Comments
 (0)