如何访问证书扩展(信息)值?

2024-04-07

我有一个由变量访问的 X509Certificate ...
当我尝试获取证书的详细信息时,我设法通过提供的函数轻松获取 CriticalExtensions 值。
但是我想要达到的是存储在证书中并由对象 ID # 2.5.29.32 表示的非关键扩展

我试图访问的是此图中显示的策略标识符号:https://i.stack.imgur.com/xo8zX.png https://i.stack.imgur.com/xo8zX.png

我使用了以下函数

cert.getExtensionValue("2.5.29.32");

但它没有给我价值..任何人都可以告诉我我做错了什么?
PS:我正在使用 java.security.cert.X509Certificate;


发现问题了。
返回的值是需要解码的 DER Octet 编码值,这是我用来解码该值的代码:

import org.bouncycastle.asn1.DERObject;
import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.ASN1InputStream;
.
.
.
.
byte[] UID =  cert.getExtensionValue("2.5.29.32");

DERObject derObject = toDERObject(UID);

if (derObject instanceof DEROctetString)
{
    DEROctetString derOctetString = (DEROctetString)derObject;
    derObject = toDERObject(derOctetString.getOctets());

}
System.out.println(derObject.toString());

这是将 DER 转换为对象的函数。

Static public DERObject toDERObject(byte[] data) throws IOException
{
    ByteArrayInputStream inStream = new ByteArrayInputStream(data);
    ASN1InputStream DIS = new ASN1InputStream(inStream);
    return DIS.readObject();
} 

希望这可以帮助有需要的人。

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

如何访问证书扩展(信息)值? 的相关文章

随机推荐

  • 为什么 nhibernate 需要 Log4Net?

    我将使用 asp net mvc3 和 nhibernate 3 2 构建我的应用程序 我决定使用 Elmah 记录所有错误消息 我记得 nhibernate 支持 log4net 并用它来记录所有查询 如果我不关心将查询输出到日志文件 我
  • 将参数传递给 pentaho CDE 报告

    我在此报告中创建了一个 CDE 参数报告 我想通过 url 传递参数 我的 CDE 报告链接如下 http localhost 8080 pentaho content pentaho cdf dd Render solution demo
  • 如何从该函数中获取函数名称?

    如何从函数内部访问函数名称 parasitic inheritance var ns parent child function var parent new ns parent parent newFunc function return
  • 如何使用 afconvert 将 .caf 转换为 .mp3 格式? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 afconvert 命令行实用程序来转换音频文件 caf to mp3格式 我用过afconvert afconvert f
  • Android 帐户验证器编辑电子邮件 ID 凭据

    当我登录时 电子邮件受保护 cdn cgi l email protection在我的应用程序中 它使用我的电子邮件成功生成帐户 如下所示 现在我注销并使用不同的电子邮件登录 例如 电子邮件受保护 cdn cgi l email prote
  • 在 bash 中对退出代码进行 AND 运算

    我有一个 bash 脚本 它对我的 源代码运行三项检查 然后exit 0如果所有命令都成功 或者exit 1如果其中任何一个失败 bin bash test1 src test 1 option exit 1 test2 src test
  • Shell_NotifyIconA / Shell_NotifyIconW ...有什么区别?

    我正在将一些 Win32 代码移植到 C 并且遇到了几个具有相同名称并使用相同结构的函数 只是它们以 A 和 W 结尾 例如 return MarshalAs UnmanagedType Bool DllImport shell32 dll
  • 嵌套类定义在外部类之外,而外部类包含内部类的实例

    C 如何将内部 嵌套 类的定义放在其外部 封闭 类的定义之外 其中外部类至少有一个内部类实例作为数据成员 我搜索了但我找到的最相关的答案 源文件中的嵌套类定义 https stackoverflow com questions 448200
  • 我的应用程序由于 Android 上的权限问题而终止

    我正在编写这段代码来获取 GPS 位置 我已经 在 Android 属性上标记了 ACCESS COARSE LOCATION 和 ACCESS FINE LOCATION 我还确认了它是否在 AndroidManifest xml 中 但
  • 关闭键盘 - iOS 7 中的多个 UITextField

    下面您将找到我的主视图控制器的 h 和 m 文件 我有 3 个问题 1 因为我有多个 uitextfields 我是否必须为每个字段设置自己的 resignFirstResponder 语句 2 我会在哪里 用什么方法做到这一点 3 我辞去
  • UIButton 第一次点击后不可点击

    我试图在单击按钮时从底部引入一个子视图 但只有第一次该按钮是可点击的 动画按钮后第二次单击不可单击 这是代码 class AnimateView UIView var button UIButton var menuView UIView
  • 我在Excel中有3个时间段 - 我需要知道最长连续时间段的持续时间

    请帮忙 理想情况下 我真的很想仅使用公式来解决这个问题 而不是 VBA 或任何我认为 花哨 的东西 我所工作的项目为持续参与提供奖金 我们有三个 有时更多 参与时间段 这些时间段可能会重叠和 或可能有没有参与的空间 神奇的数字是 84 天的
  • 如何在另一个线程中设置文本视图的文本

    我试图在另一个线程 即子线程 中设置文本 但对于以下代码 它给出了错误 只有创建视图层次结构的原始线程才能触摸其视图 public void onCreate Bundle savedInstanceState super onCreate
  • 为什么 eclipse 无法正确部署我的动态 Web 项目?

    问题是 我在源代码控制下有一个 java 动态 Web 项目 并在我的 Eclipse 工作区中检出 之前 我能够从 eclipse 中在本地 Tomcat 服务器上运行 servlet 但是 我进行了一些更改 删除了一些文件并添加了一些新
  • 如何在 JavaScript 中旋转图像?

    我想在单击打开按钮时旋转风扇图像 单击关闭按钮 旋转停止 我的代码是 img src fan png width 200 br
  • Android 支持库 ActionBar NullPointerException 版本 2.2(级别 8) - 与preferences.xml冲突

    我正在使用 v7 支持库在 Android 2 x 上显示 ActionBar 当我将应用程序部署到 IDE Intellij IDEA 中的设备时 应用程序运行正常 当我使用 maven 构建并打包要部署到 Play 商店的应用程序时 我
  • 在 IPython Notebook 之间共享数据

    如果我有多个 IPython 笔记本在同一台服务器上运行 有什么办法可以在它们之间共享数据吗 例如 从另一个笔记本导入变量 谢谢 这对我有用 store 命令允许您在两个不同的之间传递变量 笔记本 data 这是我想要传递到不同笔记本的字符
  • DateTimePicker 控件不显示 AM/PM

    我在使用自定义格式 其中包括两个字母的 A M P M 的 DateTimePicker 控件时遇到问题 缩写 使用 en US CultureInfo DateTimeFormat ShortTimePattern 会导致 时 嗯tt 但
  • Python 运行守护进程子进程并读取标准输出

    我需要运行一个程序并将其输出收集到标准输出 该程序 socat 需要在 python 脚本运行期间在后台运行 Socat 一旦运行就会处于守护进程模式 但首先它会将一些行输出到标准输出 我的脚本的其余部分需要这些行 命令 socat d d
  • 如何访问证书扩展(信息)值?

    我有一个由变量访问的 X509Certificate 当我尝试获取证书的详细信息时 我设法通过提供的函数轻松获取 CriticalExtensions 值 但是我想要达到的是存储在证书中并由对象 ID 2 5 29 32 表示的非关键扩展