如何将 JCE 算法名称转换为 AlgorithmIdentifier 对象?

2023-12-23

我正在使用 BouncyCastle 1.54。

我有一个 JCE 算法字符串 - 例如“ECDSAwithSHA256”。

我需要一个 org.bouncycastle.asn1.x509.AlgorithmIdentifier 对象。

或者,我可以从 OID 创建 AlgorithmIdentifier 对象,但这引出了如何将算法字符串转换为 OID 的问题。

我可以创建一个巨大的 if/else,但必须有一个标准的方法来做到这一点。


您可以使用 BouncyCastle 的算法查找器(请参阅javadoc https://www.bouncycastle.org/docs/pkixdocs1.5on/index.html?org/bouncycastle/operator/DefaultSignatureAlgorithmIdentifierFinder.html)

import org.bouncycastle.operator.DefaultDigestAlgorithmIdentifierFinder;
import org.bouncycastle.operator.DefaultSignatureAlgorithmIdentifierFinder;

AlgorithmIdentifier sigAlgId = new DefaultSignatureAlgorithmIdentifierFinder().find(signatureAlgorithm);
AlgorithmIdentifier digAlgId = new DefaultDigestAlgorithmIdentifierFinder().find(sigAlgId);

The AlgorithmIdentifier获得的 OID 用于SHA256withECDSA (not ECDSAwithSHA256, see 充气城堡规格 https://bouncycastle.org/specifications.html) 将

1.2.840.10045.4.3.2
2.16.840.1.101.3.4.2.1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 JCE 算法名称转换为 AlgorithmIdentifier 对象? 的相关文章

随机推荐

  • 维护多个设置文件

    目前 我有一个包含各种单选按钮 目录浏览器 日期选择器等的表单 应用程序使用这些设置 并执行文件删除任务 我想知道将这些设置保存到可以稍后加载的外部文件的最佳策略是什么 因此基本上每个配置都可以被加载 执行 然后加载另一个配置 此外 配置可
  • Angular 2 Http 重试时间

    我正在尝试使用retryWhen在 HTTP 调用中 当尝试像这样使用时它工作得很好 return this http get environment apiUrl track this user instance id this curr
  • org.hibernate.event.def.EventCache 不支持 null 实体是什么意思?

    我在尝试保存实体时收到错误 我仅在启动服务器时收到此错误 而不是在使用 dbunit 运行单元测试时收到此错误 我正在努力拯救一个协会 我的单元测试应该与我在手动测试时遇到的情况完全相同 我正在关系的一端添加一个新实体 其中之前不存在任何关
  • 在 PowerPoint 中通过占位符名称处理形状

    我正在尝试创建一个函数 该函数将返回特定的形状 基于known分配给的名称属性CustomLayout Shapes Placeholder目的 我无法使用该形状 Name因为即使从模板 布局创建幻灯片时 这也是事先未知的 挑战似乎是自定义
  • 如何取消nuke pyside中的字体阴影

    I have a UI which automatically sets font shadow in nuke and how to cancel it I want the font on this button to look lik
  • git-svn:重置 master 的跟踪

    我在用着git svn使用 SVN 存储库 我的工作副本是使用创建的git svn clone s http foo bar myproject这样我的工作副本就遵循 SVN 的默认目录方案 主干 标签 分支 最近我一直在研究一个使用创建的
  • 动态选项卡中的动态内容(Angular、UI Bootstrap)

    我想在使用 AngularJs 和 UI Bootstrap 动态生成的选项卡的内容中使用 ng include 我这里有一个 Plunker http plnkr co edit 2mpbovsu2eDrUdu8t7SM p previe
  • 在 IIS 上运行时 GoogleWebAuthorizationBroker 将无法打开浏览器

    我有一个在 IIS 8 上运行的 Web 应用程序 这个 Web 应用程序 仅在本地运行 我们将其用作通过其打开的桌面应用程序Google Chrome 我正在尝试将视频上传到YouTube通过他们的 API 基本上我的问题就在这里 uc
  • Flutter:浮动操作按钮固定位置

    我有以下代码 return Scaffold appBar AppBar title Text Sample Code body ListView padding const EdgeInsets all 20 0 children
  • Typescript 库:隐藏内部导出

    我正在用 typescript 构建一个库 并通过 npm 发布 在作为库的起点的index ts中 所有公共类和枚举都被导出 import MyClass from internal my class import MyEnum from
  • 如何设置谷歌图表API区域设置

    我想将 google 图表 API 的语言设置为一个值 它当前使用访问该页面的浏览器的语言 如何将其设置为我的应用程序的语言 请参阅谷歌文档使用特定区域设置加载图表 https developers google com chart int
  • HTML 电子邮件 - 使图像适合表格单元格

    我有一张桌子 三个人td他们每个人都需要有图像 的宽度和高度td是固定的 但图像尺寸可能会变化 目标是在不扭曲细胞或图像本身的情况下拟合图像 不能用background image财产 我知道很糟糕 这是代码 table cellpaddi
  • 为什么预连接资源提示不起作用?

    我创建了一个测试页面crenshaw dev demo hints html http crenshaw dev demo hints html浏览器提示请求 dns prefetch 并预连接到 mac9416 com
  • PHP:对象类型转换为数组后出现奇怪的数组行为

    当你这样做时array的类型转换json decoded 值 与 assoc false PHP 创建一个带有字符串索引的数组 a array json decode 7 value1 8 value2 9 value3 13 value4
  • Spring Data Rest - PUT 存储库在子引用上静默失败

    I use Spring Data Rest with Spring Boot2 1 1 发布 我有课User with a ManyToMany与类的关系Skill 当我做一个POST用他的技能创建一个用户 一切都很顺利 当我做一个PUT
  • 公共常量字符串?

    可以使用这样的类 特定于设计 指南 吗 我正在使用 MVVM 模式 public static class Pages public const string Home Home xaml public const string View2
  • gets() 接受输入而不实际给它任何输入?

    我对 C 相当陌生 如果这是一个愚蠢的问题 我很抱歉 但是当我运行以下代码时 include
  • jsonp 没有在发送之前触发?

    我正在开发一个项目 使用 ajax 并将 dataType 设置为 jsonp 从不同域调用 Web 服务 ajax type GET url testService asmx async true contentType applicat
  • 你怎么知道何时使用左折叠和右折叠?

    我知道向左折叠会产生左倾树 而向右折叠会产生右倾树 但是当我伸手去寻找折叠时 有时我会发现自己陷入了令人头痛的想法中 试图确定哪种折叠是合适的 我通常最终会解开整个问题 并逐步完成适用于我的问题的折叠函数的实现 所以我想知道的是 确定向左折
  • 如何将 JCE 算法名称转换为 AlgorithmIdentifier 对象?

    我正在使用 BouncyCastle 1 54 我有一个 JCE 算法字符串 例如 ECDSAwithSHA256 我需要一个 org bouncycastle asn1 x509 AlgorithmIdentifier 对象 或者 我可以