RFR 8202299: Java Keystore fails to load PKCS12/PFX certificates created in WindowsServer2016

Weijun Wang weijun.wang at oracle.com
Fri Apr 27 16:56:03 UTC 2018

Please take a look at


Turns out we have to retry [0] other than [] in all 3 locations: decrypting keys, decrypting certs, and verifying the mac.


p.s. You might wonder why suddenly in Windows Server 2016, Microsoft starts using [0] to generate the Mac. In fact, they have been doing this all the time. However, before 2016, they also encrypted the certificates, and to decrypt them, Java has already changed password from [] to [0].

p.p.s. But is this correct? Should the certificate decryption code only temporarily retries [0] but not changing password itself? Well, maybe. But unless a weird software sometimes uses [] and sometimes [0], this will not be a problem, and changing password itself saves us some cycles from always trying twice.

More information about the security-dev mailing list