如何根据 bks 存储中的证书验证 string/byte[] 格式的公钥

发布于 2024-12-22 23:16:53 字数 326 浏览 1 评论 0原文

我想验证 Android 密钥库中是否存在具有特定公钥的证书。我有保存在字符串中的密钥。如何验证密钥库中是否存在相应的证书。 检查 api 时,我发现certificate.verify(mykey);是唯一的选项。但是 mykey 应该是 PublicKey 类型,并且我将它放在 string 中。

字符串是 0r1wxn7wIXJuS/hDnDvectD2VTmel9akk8awIWAXIRo= .....这是公钥的哈希值..我必须返回与该密钥对应的证书。 有人可以帮助我吗?

有人可以帮助我吗?

问候 科兹洛夫

I want to verify if a certificate with a certain public key exits in android keystore or not.I have key which is holded in a string.How do I verify if the corresponding certificate is present in keystore.
When checked the apis i found certificate.verify(mykey); is the only option.but mykey sholud be of type PublicKey and I have it in string.

String is 0r1wxn7wIXJuS/hDnDvectD2VTmel9akk8awIWAXIRo= .....this is a hash of public key..i have to return back the certficate corresponding to this key.
Can anyone help me ?

Can anyone help me ?

Regards
kozlov

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

微暖i 2024-12-29 23:16:53
KeyStore store = ... ;
byte[] target = ... ; // Base-64 decode your string.
MessageDigest digest = MessageDigest.getInstance(algorithm);
Enumeration<String> aliases = store.aliases();
while(aliases.hasMoreElements()) {
  String alias = aliases.nextElement();
  Certificate c = store.getCertificate(alias);
  if (c == null)
    continue;
  PublicKey pub = c.getPublicKey();
  byte[] hash = digest.digest(pub.getEncoded());
  if (MessageDigest.isEqual(hash, target)) {
    // Certificate "c" is a match.
  }
}
KeyStore store = ... ;
byte[] target = ... ; // Base-64 decode your string.
MessageDigest digest = MessageDigest.getInstance(algorithm);
Enumeration<String> aliases = store.aliases();
while(aliases.hasMoreElements()) {
  String alias = aliases.nextElement();
  Certificate c = store.getCertificate(alias);
  if (c == null)
    continue;
  PublicKey pub = c.getPublicKey();
  byte[] hash = digest.digest(pub.getEncoded());
  if (MessageDigest.isEqual(hash, target)) {
    // Certificate "c" is a match.
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文