RFR: JDK-6782021: It is not possible to read local computer certificates with the SunMSCAPI provider [v2]

Weijun Wang weijun at openjdk.java.net
Wed May 4 03:13:16 UTC 2022


On Tue, 3 May 2022 22:52:49 GMT, Mat Carter <duke at openjdk.java.net> wrote:

>> On Windows you can now access the local machine keystores using the strings "Windows-MY-LOCALMACHINE" and "Windows-ROOT-LOCALMACHINE"; note the application requires admin privileges.
>> 
>> "Windows-MY" and "Windows-ROOT" remain unchanged, however given these original keystore strings mapped to the current user, I added "Windows-MY-CURRENTUSER" and "Windows-ROOT-CURRENTUSER" so that a developer can explicitly specify the current user location. These two new strings simply map to the original two strings, i.e. no duplication of code paths etc
>> 
>> No new tests added, keystore functionality and API remains unchanged, the local machine keystore types would require the tests to run in admin mode
>> 
>> Tested on windows, passes tier1 and tier2 tests
>
> Mat Carter has updated the pull request incrementally with one additional commit since the last revision:
> 
>   replace string parameter with int and supporting constants

src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/CKeyStore.java line 256:

> 254:     private final KeyStoreLocation storeLocation;
> 255: 
> 256:     CKeyStore(String storeName, KeyStoreLocation storeLocation) {

Why not just an `int` here? The creation of a separate class `keyStoreLocation` seems not necessary. If you want code to be readable, just add `public static final int CURRENTUSER = 0`, etc.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8211



More information about the security-dev mailing list