使用BouncyCastle从文件中读取椭圆曲线私钥

该BouncyCastle的加密API允许创建和使用的常规验证数字签名java.security包对象,如java.security.PublicKeyjava.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

回到顶部