2011-02-05 7 views
3

をJKSする変換キーストア - Windowsの-私の...私たちは以下のように現在のユーザーキーストアを取得するためにSunMSCAPIを使用している

keystore = KeyStore.getInstance("Windows-MY", "SunMSCAPI"); 
我々はタイプJKS/PKCS12のJSSEキーストアを構築し、それを渡す必要があります

アプリ..

これはどのように動作するか理解し始めてください。どんな助けもありがとうございます。

答えて

0

私は新しいkeystore2にすべてのエントリのダンプ・コピーを意味

keystore.load(inputStreamFromOriginalFile, password); 
KeyStore keystore2 = KeyStore.getInstance("JKS"); 
for (String name : toIterable(keystore.aliases())) { 
    Entry entry = keystore.getEntry(name, protParam); 
    keystore2.setEntry(name, entry, protParam); 
} 
keystore2,store(outputStream, password); 

ような何かを試してみました。

+0

ありがとうございました。 getentry/setentry doesnt work。それは、keyformatとkeyencodingを見つけようとし、両方がnullに設定されています。以下の例外をスローします。我々は本当にこれを行うことはできませんように見えます。 java.security.KeyStoreException:キー保護アルゴリズムが見つからない場合:java.lang.NullPointerException \t com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineSetKeyEntry(PKCS12KeyStore.java:409) – luckylak

+0

可能ですが、鍵の保護アルゴリズムを設定する必要があります。 API全体は、暗号化よりもはるかに秘密です。 Btw。、あなたはhttp://portecle.sourceforge.net/を知っていますか?それを行うことができるかもしれません。あるいは、あなたは少なくともソースコードを調べることができます。 – maaartinus

+0

親切な助けをありがとう。私はソースまたはportecleを見直しました。同じことをします..鍵、certchainとsetskeyentryを取得します。私はPKCS12にJKSストアを変換するために同じことをすることができますが、この特定の目的のためではありません。 SunMSCAPIを使用してこのストアからキーを取得すると、キーのフォーマットとエンコーディングが指定されていないため、ヌルポインタが発生します。 – luckylak

関連する問題