F-11201: always use AES encryption schedule for AES-OFB key setup
parent
44be422765
commit
a0e320685d
|
|
@ -71,6 +71,7 @@ Java_com_wolfssl_wolfcrypt_AesOfb_native_1set_1key_1internal(
|
|||
byte* key = NULL;
|
||||
byte* iv = NULL;
|
||||
word32 keySz = 0;
|
||||
(void)opmode;
|
||||
|
||||
aes = (Aes*) getNativeStruct(env, this);
|
||||
if ((*env)->ExceptionOccurred(env)) {
|
||||
|
|
@ -87,7 +88,7 @@ Java_com_wolfssl_wolfcrypt_AesOfb_native_1set_1key_1internal(
|
|||
}
|
||||
|
||||
if (ret == 0) {
|
||||
ret = wc_AesSetKey(aes, key, keySz, iv, opmode);
|
||||
ret = wc_AesSetKey(aes, key, keySz, iv, AES_ENCRYPTION);
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
|
|
|
|||
|
|
@ -207,6 +207,25 @@ public class AesOfbTest {
|
|||
aesOfb.releaseNativeStruct();
|
||||
}
|
||||
|
||||
/**
|
||||
* A DECRYPT_MODE key schedule must still recover ciphertext produced
|
||||
* under ENCRYPT_MODE.
|
||||
*/
|
||||
@Test
|
||||
public void aes128OfbDecryptModeSetKeyRoundTrip() {
|
||||
AesOfb enc = new AesOfb();
|
||||
enc.setKey(KEY_128, IV_128, AesOfb.ENCRYPT_MODE);
|
||||
byte[] ciphertext = enc.encrypt(PLAINTEXT_128);
|
||||
assertArrayEquals(CIPHERTEXT_128, ciphertext);
|
||||
enc.releaseNativeStruct();
|
||||
|
||||
AesOfb dec = new AesOfb();
|
||||
dec.setKey(KEY_128, IV_128, AesOfb.DECRYPT_MODE);
|
||||
byte[] decrypted = dec.decrypt(ciphertext);
|
||||
assertArrayEquals(PLAINTEXT_128, decrypted);
|
||||
dec.releaseNativeStruct();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void aes128OfbLongDataTest() {
|
||||
AesOfb aesOfb = new AesOfb();
|
||||
|
|
|
|||
Loading…
Reference in New Issue