On Mon, 30 Aug 2021 19:09:09 GMT, Sean Mullan <mul...@openjdk.org> wrote:
>> Could someone help review this straight forward change? During the >> interoperability testing with PKCS11 KW/KWP support, it is noticed that >> SunJCE provider used the wrong block size (AES: 16) when padding is needed >> for KW mode. With KW, KWP modes, data block size is multiples of 8-byte, so >> the padding should pad data to multiples of 8 bytes instead of 16. In >> addition, although PKCS#11 v3.0 states the IV for KWP mode is 4-byte, NSS's >> implementation would silently ignore the specified IVs. Thus, for max >> interoperability, it seems safer to change SunJCE provider to always use the >> same default IV and disallow custom IVs for KWP mode, at least for now. >> Regression test is enhanced to test more scenarios. >> >> Thanks, >> Valerie > > src/java.base/share/classes/com/sun/crypto/provider/KeyWrapCipher.java line > 237: > >> 235: @Override >> 236: protected int engineGetBlockSize() { >> 237: return 8; > > Line 186 still says: > > `* symmetric cipher whose block size must be 128-bit` > > Should that also be updated? Line 186 is correct in that the underlying Cipher block size must be 128-bit. However, the KW/KWP processing affected the input size requirement into 8-byte blocks, thus the overall cipher block size is now 8 instead of 16 bytes. ------------- PR: https://git.openjdk.java.net/jdk/pull/5236