使用bouncycastle api创建签名。密钥始终为null

时间:2015-06-10 06:07:37

标签: java soap bouncycastle java-security

我正在使用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 哪里是我的错?我是加密的新人

1 个答案:

答案 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());