问题标签 [asn1]

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.

0 投票
1 回答
144 浏览

swift - OpenSSL RSA 公钥摘要

我正在尝试在 iOS(Swift)和 macOS(终端和 OpenSSL)上计算公钥的哈希值,但是两个平台都以稍微不同的格式导出密钥。

我的 Swift 代码提取包含模数和指数的序列(根据 Apple,这是 PKCS#1 容器)。

现在,当我用终端做类似的事情时,我得到了不同的输出。

后一个原因是 OpenSSL 将输出包装在更完整的结构化 ASN.1 容器中。

如何使用 OpenSSL 将密钥仅导出到 iOS 期望的序列中,所以这两个命令的 has 将是相同的?

0 投票
0 回答
35 浏览

arrays - 如何从 dumpasn1 输出中提取原始字符串?

我拥有一个 Apple APNs p8 文件,它基本上是一个包含公钥和私钥的 PKCS#8 文件。

我基本上需要从这个文件中提取私钥信息,然后签署一个 JWT。

免责声明:以下信息与已撤销的真实密钥匹配。

我首先从我的 p8 文件生成 ASN1 文件。使用该dumpasn1工具,我得到以下输出:

据我了解,私钥由第 19 行到第 23 行以十六进制格式编写的字节数组表示。

我现在想将此字节数组转换为原始字符串。

恕我直言,一个好的起点是确定这些字节来自的原始文本的编码......这就是我卡住的地方。

是否有一些工具可以用来实现我的目标?

谢谢

0 投票
0 回答
15 浏览

android - Android KeyStore CTS ImportWrappedKeyTest 错误 - INVALID_ARGUMENT(代码 -38)

注意:这个问题是我关于在 Android 的 KeyStore 中安全密钥导入的其他问题的后续问题。

也就是说,当我的代码看似符合规范时,我得到了 INVALID_ARGUMENT 错误。

在尝试了 INVALID_ARGUMENT 错误的各种解决方案后,我决定尝试最基本的设置 - 运行 CTS 测试功能之一,但即使这样也会导致相同的 INVALID_ARGUMENT 错误。我真的对接下来要尝试什么没有任何想法,因为这是一个官方的 Android 测试并且(可能)代码部分是正确的,所以唯一的结论是问题出在另一个地方。

详细信息:我使用来自testKeyStore_ImportWrappedKey() CTS 测试函数的复制粘贴代码。wrap/authList/等。功能也是一样的。这些常量在Android 源代码中可以找到,但我也会在下面列出它们。

另一个重要的部分是使用的 bouncycastle 库,它们如下:

(使我能够在不替换已弃用类的情况下使用 CTS 代码的最后一个版本)


一个 ASN.1 生成的 blob 示例,它可能会导致问题...有人可以给我发送一个有效的 ASN.1 blob,以便我可以比较并查看那里是否有任何错误?

0 投票
0 回答
147 浏览

swift - 使用 PKCS10 创建 CSR 并在 Swift 中使用 RSA 密钥签名

我生成RSA了密钥,我的后端在BASE64(signatureAlgorithm 除外)中发送了 3 个参数来创建CSR给我:

我在 Android/java 中BouncyCastle有用于执行此操作的示例代码:

如何在 iOS 中使用 swift 做同样的事情?

是否有任何图书馆可以接受subjectextensions创建 CSR 并签名?

0 投票
1 回答
154 浏览

c# - 如何使用 System.Formats.Asn1.AsnReader

2020 年 6 月起,.net 实施了ASN1 阅读器。在文档中没有示例如何使用它。此外,在 Google 和 SO 中的搜索也没有显示任何示例或描述。我在哪里可以找到一些?

0 投票
1 回答
126 浏览

objective-c - 小数到 uint8_t 数组

十进制614995508(实际序列号)转换为十六进制24A81634

上面的 unit8 数组是 TLV(标签长度值)三元组序列号的表示,其中 T 为 0X02,L 为 0X04,V 为十六进制字符串。

所以我可以一次将十六进制字符串分成两个字符

如何在objective-c中的unit8_t数组中将十六进制转换为TLV三元组格式?参考:https ://docs.microsoft.com/en-us/windows/win32/seccertenroll/about-integer

0 投票
1 回答
21 浏览

openssl - 是否可以完全以 BMPString 编码生成证书?

在使用 openssl 命令创建证书时,我使用的是这样的自定义配置文件:

现在,当我使用此命令执行 asn1parse 时:

openssl asn1parse -in bmp.crt -i -strparse 200

CN、OrganizationName、LocalityName 都在 BMPString 中,但没有在 OrganizationalUnitName 中。

我理解逻辑,因为所有字符都在 OrganizationalUnitName 中 PrintableString 的保护伞下,这就是为什么它被编码为相同的原因。

但我想在 BMPString 中自动编码“PrintableString”字符,这可能吗?

编辑 1:将“除外”更改为“但不是”。

编辑 2:从“CN、Email、OrganizationName、LocalityName 都在 BMPString 但不是 OrganizationalUnitName”中删除了电子邮件。

0 投票
0 回答
25 浏览

x509certificate - 如何从 X509Certificate 中的 EC 公钥中提取 ASN1 OID(例如 prime256v1)?

我正在尝试从 X509Certificate 中提取 ASN1 OID。特别是对于具有 EC 公钥的证书,我想提取:“prime256v1”值。示例代码:

现在,我需要一些帮助来提取 X509 证书的 ASN1 OID (prime256v1)。

使用的证书:

0 投票
2 回答
24 浏览

x509certificate - I am trying to decode and extract octet string from the extension of X509Certificate, but I did not get any valid string

I have been trying to decode the octet string as per steps mentioned in https://developer.apple.com/documentation/devicecheck/validating_apps_that_connect_to_your_server?language=objc
Here is what I have tried:

I got the output as: "[[1]#8333585e692916d8cbcdce3c6aa2bd71617d54fed758957cfd6b50a2093fd506]"