使用BouncyCastle从文件中读取椭圆曲线私钥
该BouncyCastle的加密API允许创建和使用的常规验证数字签名java.security
包对象,如java.security.PublicKey
,java.security.PrivateKey
和它们的容器java.security.KeyPair
。
假设我使用OpenSSL创建一个.pem(或更简单的话是一个.der文件),其中包含要在应用程序中使用的椭圆曲线私钥。例如,它看起来像这样:
-----BEGIN EC PARAMETERS-----BgUrgQQACg==
-----END EC PARAMETERS-----
-----BEGIN EC PRIVATE KEY-----
MHQCAQEEIDzESrZFmTaOozu2NyiS8LMZGqkHfpSOoI/qA9Lw+d4NoAcGBSuBBAAK
oUQDQgAE7kIqoSQzC/UUXdFdQ9Xvu1Lri7pFfd7xDbQWhSqHaDtj+XY36Z1Cznun
GDxlA0AavdVDuoGXxNQPIed3FxPE3Q==
-----END EC PRIVATE KEY-----
如何使用BouncyCastle API获取java.security.KeyPair
同时包含此私钥和相应公钥的?
请注意,我要使用BouncyCastle
1.50(在撰写本文时为最新)中可用的API,并且不建议使用不推荐使用的API。不幸的是,这排除了PEMReader
其他SO答案中使用的类。此外,这个问题是特定于椭圆曲线的格式的。比较RSA或DSA密钥文件时,它们包含其他参数。
回答:
在Java中,这几乎是相同的代码。在剥离保护字符串并解码Base64数据后,将其提供给此实用程序方法:
public static PrivateKey keyToValue(byte[] pkcs8key) throws GeneralSecurityException {
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(pkcs8key);
KeyFactory factory = KeyFactory.getInstance("ECDSA");
PrivateKey privateKey = factory.generatePrivate(spec);
return privateKey;
}
以上是 使用BouncyCastle从文件中读取椭圆曲线私钥 的全部内容, 来源链接: utcz.com/qa/423269.html