我正在使用bouncycastle为XML签名生成分离签名。对于密钥初始化,我使用以下代码:
Security.addProvider(new BouncyCastleProvider());
KeyStore ks = KeyStore.getInstance(KEYSTORE_INSTANCE);
ks.load(new FileInputStream(KEYSTORE_FILE), KEYSTORE_PWD.toCharArray());
Key key = ks.getKey(CERT_ALIAS, KEYSTORE_PWD.toCharArray());
我有带证书的JKS密钥库。但如果我这样做:
Key key = ks.getKey(CERT_ALIAS, KEYSTORE_PWD.toCharArray());
key始终为null,我有InvalidKeyException
哪里是我的错?我是加密的新人
答案 0 :(得分:0)
由于声誉太低,我无法发表评论。所以我会回答/编辑。
上面的示例工作正常,错误可能是正在使用的常量之一。他们是什么,你得到的确切错误是什么?
我的意思是:java.security.InvalidKeyException:非法密钥大小
以下是我从文件加载KeyStore时尝试的工作示例: 'secret1'是商店密码,'secret2'是密钥密码,'myKey'是密钥别名。
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(new FileInputStream(keyStoreFile.getAbsolutePath()), "secret1".toCharArray());
Key key = keyStore.getKey("myKey", "secret2".toCharArray());