aboutsummaryrefslogtreecommitdiffstats
path: root/lib/crypto/c_src
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2016-01-19 19:03:36 +0100
committerSverker Eriksson <[email protected]>2016-01-19 19:03:36 +0100
commita741a2f03d7a73222c3cfbecbd6c0c32ac598e7c (patch)
treefd13176838864a11c51b6cd0137e0643c6b2aaea /lib/crypto/c_src
parentdaa9ca6ff54697b18d407ae91a91b587662dfc99 (diff)
parent64248a85e221a905aa37fbb8dd0ab1d4f4551be0 (diff)
downloadotp-a741a2f03d7a73222c3cfbecbd6c0c32ac598e7c.tar.gz
otp-a741a2f03d7a73222c3cfbecbd6c0c32ac598e7c.tar.bz2
otp-a741a2f03d7a73222c3cfbecbd6c0c32ac598e7c.zip
Merge branch 'sverk/crypto-aec-ecb-multiblock' into maint
OTP-13249 * sverk/crypto-aec-ecb-multiblock: crypto: Fix bug for multiple blocks for AES-ECB
Diffstat (limited to 'lib/crypto/c_src')
-rw-r--r--lib/crypto/c_src/crypto.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/crypto/c_src/crypto.c b/lib/crypto/c_src/crypto.c
index 9de8dc74c2..3c73c318ed 100644
--- a/lib/crypto/c_src/crypto.c
+++ b/lib/crypto/c_src/crypto.c
@@ -2042,6 +2042,7 @@ static ERL_NIF_TERM aes_ecb_crypt(ErlNifEnv* env, int argc, const ERL_NIF_TERM a
ErlNifBinary key_bin, data_bin;
AES_KEY aes_key;
int i;
+ int j;
unsigned char* ret_ptr;
ERL_NIF_TERM ret;
@@ -2064,7 +2065,9 @@ static ERL_NIF_TERM aes_ecb_crypt(ErlNifEnv* env, int argc, const ERL_NIF_TERM a
}
ret_ptr = enif_make_new_binary(env, data_bin.size, &ret);
- AES_ecb_encrypt(data_bin.data, ret_ptr, &aes_key, i);
+ for (j = 0; j < data_bin.size; j += 16) {
+ AES_ecb_encrypt(data_bin.data+j, ret_ptr+j, &aes_key, i);
+ }
CONSUME_REDS(env,data_bin);
return ret;
}