diff options
author | Sverker Eriksson <[email protected]> | 2016-01-19 19:03:36 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-01-19 19:03:36 +0100 |
commit | a741a2f03d7a73222c3cfbecbd6c0c32ac598e7c (patch) | |
tree | fd13176838864a11c51b6cd0137e0643c6b2aaea /lib/crypto/c_src | |
parent | daa9ca6ff54697b18d407ae91a91b587662dfc99 (diff) | |
parent | 64248a85e221a905aa37fbb8dd0ab1d4f4551be0 (diff) | |
download | otp-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.c | 5 |
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; } |