我有一个证书和我从不同地方收到的PrivateKey。只给出这两个抽象对象,我可以验证证书是否与给定的PrivateKey相关联,还是证书?Java验证证书与密钥关联
我明白如果这些是RSA密钥,我可以将它们转换为RsaPublicKey/RsaPrivateKey并验证指数和模数是否匹配,但如果它们是ECDSA?其他类型呢?
我最终希望将密钥存储到证书作为证书链的密钥库中,如果我试图从另一个密钥中加载带有证书的密钥,我期望这会引发异常或导致某种错误。但这似乎并不重要?
我有一个证书和我从不同地方收到的PrivateKey。只给出这两个抽象对象,我可以验证证书是否与给定的PrivateKey相关联,还是证书?Java验证证书与密钥关联
我明白如果这些是RSA密钥,我可以将它们转换为RsaPublicKey/RsaPrivateKey并验证指数和模数是否匹配,但如果它们是ECDSA?其他类型呢?
我最终希望将密钥存储到证书作为证书链的密钥库中,如果我试图从另一个密钥中加载带有证书的密钥,我期望这会引发异常或导致某种错误。但这似乎并不重要?
首先,可以肯定的是,您可以使用您的私钥签署随机数据块并使用公钥进行验证。公钥是证书的一部分。它适用于所有签名算法。
私钥结构包含匹配的公钥也是很常见的。你应该检查它 - 搜索一个匹配的键将会更容易。
您不应该有的私钥。它是私人的。所有你需要的是他们的公钥密钥,然后你通过Certificate.verify(PublicKey key)验证证书。
无论谁给你的私钥只是严重COMPROMISED他们的安全。他们需要创建一个新的私钥,签名证书等,并部署它,并停止使用先前的密钥。他们还需要保留新私钥的私密性。
我认为这对我们很有用。我不一定知道我手上有哪些关键类型,但我可以尝试一下RSA签名验证,然后是ECDSA。如果两者都有效,我会认为它们是有效的一对。 – kenen