问题标签 [asn.1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - 工作 ASN.1 Eclipse 插件
对实际有效的 ASN.1 Eclipse 插件有什么建议吗?
到目前为止,我已经尝试过 ASN 实验室,它冻结了足够大的文件和目标系统,这些系统有时会给出神秘的异常,有时会因为其他难以理解的原因而失败。
certificate - 要签署的 PKCS#10 上的证书请求信息
我正在编写一个必须创建 PKCS#10 的代码。为此,我必须签署我的“证书请求信息”,但是当我这样做时,应用程序会说签名无效。
我正在使用 OpenSSL.exe 来验证 P10,错误是:“ANS1_CHECK_TLEN:错误标签”。我想我签署了我不应该签署的,所以我的问题是,我必须签署的“证书请求信息”的确切格式是什么?
我知道它必须以序列开头,但 p10 规范告诉:
“签名过程包括两个步骤:
- certificateRequestInfo 组件的值是 DER 编码的,产生一个八位字节字符串。
- 步骤 1 的结果使用认证请求主体的私钥在指定的签名算法下进行签名,产生一个比特串,即签名。”
根据 ANS.1,我不确定开始是否必须是 SEQUENCE (0x30 0x82 "the length>256") 或 A OCTET STRING (0x04 0x82 "the length>256")。
如果有人请像这篇文章一样给我一个答案,我可能是世界上最幸福的人。非常感谢:
问候,大卫 M。
certificate - 证书主题 X.509
根据 X.509,证书具有属性主题。
这是典型的主题值。问题是这些属性(C、ST、L、O、OU、CN)的类型(或标签)是什么,它们的格式是什么?
certificate - 证书主题的 OID 表?
是否有任何表格可以找到 OID 和它们在证书主题字段中表示的属性之间的所有对应关系。例如,我知道“1.3.6.1.4.1.311.20.2”表示证书的模板名称,“2.5.29.30” - 名称限制。我们在哪里可以找到其他 oid,尤其是主要属性,例如 CN、C、S、L、O、OU...?
certificate - 公钥的格式是什么?
公共 DSA 密钥的格式是什么?所有证书都存储在base64中吗?
certificate - OpenSSL 使用自定义主题字段生成和签署证书
我需要使用自定义主题(,SERIALNUMBER = ...,)创建和签署(我是CA)证书。
到目前为止,我已经修改了 openssl 配置文件,因此我可以在主题中包含自定义字段。
问题是,在签署此类证书后,新字段以奇怪的数字格式出现 -
我应该在我的 openssl 配置文件中更改哪些位置和哪些内容以生成具有正常字段名称的证书?如何告诉签名过程 1.2.3.4.1333 应编码为“SERIALNUMBER”。
谢谢你,牛肉
java - Java ASN.1 验证库
是否有任何免费的开源 java 库可以通过模块定义文件验证 ASN.1 BER/DER/XER 。
java - 证书颁发者的唯一标识符 (X509Name)
在我的应用程序中,我使用颁发者名称 (x509CertImpl.getIssuerDN().getName()) 的 sha256 和证书序列号来唯一标识证书,但现在我已经意识到 X509Name 的其他实现作为 Bouncy 的实现当我调用 bcX509Name.getName() 时,Castle 库显示一些不同的东西,所以这个标识符对我不起作用......我的问题是我如何获得 X509Name 的唯一标识符......也许是 ASN.1 或 DER 编码表示两者都是一样的。
java - 无法让 bouncycastle 在 der 编码中正确标记构造的八位字节字符串
我有以下要求。我有一个 asn1 类型,需要封装在构造的八位字节字符串中(八位字节字符串标记为 0x24)。然后在 CMS 签名块中对该结构进行签名,并且整个 CMS 块需要进行 DER 编码。
我的问题是每次我对 CMS 块进行 DER 编码时,构造的八位字节字符串都会变成(非构造的?)八位字节字符串。我的意思是它的标签从 0x24(我需要的)切换到 0x04。
这是一个 Bouncycastle 错误还是我在做我不应该做的事情?忽略 CMS 块,似乎每当我尝试对“BerConstructedOctetString”进行 der 编码时,它不再是构造的八位字节串:
使用以下输出:
编辑:这甚至可能吗?bouncycastle 和 not-yet-commons-ssl 是否有理由在编码为 DER 时包含“ Ber ConstructedOctetString”并标记为 0x04?我的两个要求不兼容吗?
pki - 以编程方式创建 CSR
我正在尝试以编程方式创建 CSR。我读过 ASN.1、RFC 2986、X.509。
我还手动解析了几个 DER 编码的 CSR 文件,这些文件是使用OpenSSL
.
一切看起来都很清楚,除了几件事:
公钥部分包含
8D 00 30 81 89 02 81 81
BIT STRING 内容之前(和之后03 81
)的下一个字节。这是什么?我注意到所有用 DER 编码的 CSR 文件都包含它们。我在 RFC 中没有找到任何关于它们的信息。签名部分包含签名内容之前但之后的下一个不清楚的字节
03 81
。据我了解,这部分包含有关 BIT STRING 中最后一个八位字节的信息(实际上应该在最后一个字节中占用多少位)。但我不明白如何解码这些字节。例如,签名可能如下所示:
03 81 81 00 64 12 ... 24 B1 28
其中03h
是 BIT STRING 格式,81h
位字符串的长度,64 12 ... 24 B1 28
是签名(但它的长度为 80h)。我不明白这部分81 00
。
提前致谢。