F-5047: zeroize native 3DES key copy before JNI release
parent
e166a6a633
commit
0fae3bc840
|
|
@ -69,6 +69,8 @@ Java_com_wolfssl_wolfcrypt_Des3_native_1set_1key_1internal(
|
|||
Des3* des = NULL;
|
||||
byte* key = NULL;
|
||||
byte* iv = NULL;
|
||||
word32 keySz = 0;
|
||||
jboolean keyIsCopy = JNI_FALSE;
|
||||
|
||||
des = (Des3*) getNativeStruct(env, this);
|
||||
if ((*env)->ExceptionOccurred(env)) {
|
||||
|
|
@ -76,7 +78,8 @@ Java_com_wolfssl_wolfcrypt_Des3_native_1set_1key_1internal(
|
|||
return;
|
||||
}
|
||||
|
||||
key = getByteArray(env, key_object);
|
||||
key = getByteArrayIsCopy(env, key_object, &keyIsCopy);
|
||||
keySz = getByteArrayLength(env, key_object);
|
||||
iv = getByteArray(env, iv_object);
|
||||
|
||||
ret = (!des || !key) /* iv is optional */
|
||||
|
|
@ -88,6 +91,7 @@ Java_com_wolfssl_wolfcrypt_Des3_native_1set_1key_1internal(
|
|||
|
||||
LogStr("wc_Des3SetKey(Des3=%p, key, iv, opmode) = %d\n", des, ret);
|
||||
|
||||
zeroizeByteArrayCopy(key, keySz, keyIsCopy);
|
||||
releaseByteArray(env, key_object, key, JNI_ABORT);
|
||||
releaseByteArray(env, iv_object, iv, JNI_ABORT);
|
||||
#else
|
||||
|
|
|
|||
Loading…
Reference in New Issue