问题标签 [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.

0 投票
1 回答
412 浏览

c# - 使用 ASN.1 包装器为 ldap 照片创建 G3 传真图像

如何创建“按照建议 T.4 中的说明在 G3 传真中编码的对象,使用 ASN.1 包装器使其与 X.420 中定义的 X.400 BodyPart 兼容。” 在 C# 中,从任何标准的 .NET 图像/位图对象开始?

这是photo 属性的 LDAP 定义。

0 投票
7 回答
24612 浏览

python - C/Python 中的 asn.1 解析器

我正在寻找一种解决方案来解析 asn.1 规范文件并从中生成解码器。

理想情况下,我想使用 Python 模块,但如果没有可用的模块,我会使用 C/C++ 库并将它们与 Python 接口,并提供大量的解决方案。

过去我一直在使用 pyasn1 并手动构建所有东西,但这变得太笨拙了。

我也从表面上看了一下 libtasn1 和 asn1c。第一个即使解析最简单的文件也有问题。第二个有一个很好的解析器,但生成用于解码的 C 代码似乎太复杂了;该解决方案适用于简单的规格,但在复杂的规格上却令人窒息。

我可能忽略了任何其他好的选择?

0 投票
3 回答
1425 浏览

c# - C# 用于电信应用程序?

谁将 .net 技术用于电信应用?有这方面的资源吗?我对 SS7 信令、ASN.1、MML 命令等主题感兴趣。谢谢

0 投票
2 回答
4054 浏览

c# - 如何使用 BouncyCastle (C#) 以 ASN.1 格式导入 DSA 签名

OpenSSL 以及大多数其他 DSA 实现以 ASN.1 格式输出签名。因此,由于 ASN.1 结构标头,40 字节签名(两个 20 字节整数)变为 46 字节。(有关详细信息,请参阅此论坛帖子。)

我的问题是,如何在 C# 中处理这种格式?(或其他地方,就此而言)

我花了一段时间试图使用 .NET 包来处理它System.Security.Crypto,但放弃了(真的很令人沮丧,因为它显然有解析 ASN.1 的内部代码,因为它可以读取 DER 格式,但是你没有办法使用它——但我离题了……

然后,我开始使用 BouncyCastle C# 库。我可以把它变成一个Asn1Object,如果我在调试时展开它,我会看到它包含一个DerSequence带有两个整数的 a,但是我如何把它们拉出来(最好BigIntegers是这样我可以把它们喂给DSA.VerifySignature?)

代码示例:

0 投票
5 回答
7565 浏览

c# - 在 C# 中验证使用 BER/DER 编码的 ASN.1 格式的 DSA 签名

如何在 C# 中验证 DSA 签名?

鉴于:

  • 消息文本,
  • 签名摘要(通常为 ASN.1 DER 格式),
  • 公钥(采用签名的 X.509 证书、PEM 或 DER 格式)

我尝试了多种方法,但都没有成功:

  • OpenSSL.NET库的各种奇怪错误;我有一个与作者在 SourceForge 上运行的开放线程,但还没有解决这个问题。

  • Microsoft .NET API:无法解压缩 DER 签名进行比较。DSA 签名是 40 字节(两个 20 字节整数),但呈现为两个整数的 DER 编码序列,因此总长度可以在 46 到 48 字节之间(请参阅这篇文章以获得快速概述。)而 . NET 包含解析 ASN.1/DER 的代码(因为它可以读取 DER 格式的证书),它被深埋,无法访问它,因此您可以正确地从 ASN.1/DER 编码的 sig 中检索 40 个字节. 这个问题让我想到了下一个选择......

  • BouncyCastle:通过使用这些Org.BouncyCastle.Asn1函数,我可以解析 ASN.1 签名并将其拉入它的组件 R 和 S 整数值中。但是当我将这些传递给签名验证例程时,它失败了,没有给出任何解释。我不确定我是否做错了什么,因为 C# API完全没有文档,Java 版本几乎没有文档(但我找不到示例或 HOWTO 信息。)

我已经把自己扔在这个问题上大约一个星期了。我知道以前一定有人做过,但我还没有找到任何完整/有效的例子。

我这里有三个 C# 项目,每个项目都完成了 95%,但有一个导致它失败的关键缺陷。任何工作示例代码将不胜感激。

编辑:这是我正在尝试验证的签名示例,已转换为 Base64 和 ASCII 十六进制以使其可发布。这个特定的是 47 字节,但正确的解析器仍然必须接受它,阅读 DER 规范以获取更多信息(如果 MSB 为 1,BER/DER 添加前导 00 以确认符号)

结构符合 DER 规范;它解析如下:

编写我自己的 DER 解析器真的不是一种选择,错误的空间太大,必须有一种方法来正确地做到这一点。

0 投票
1 回答
2708 浏览

java - Mibble MIB Parser - 从 mib 中提取注释

我正在使用Mibble MIB Parser从 MIB 文件中提取所有简单数据类型。在我尝试提取评论文本之前,我一直是成功的。

以以下模块为例:

根据 Mibble 的 API,可以通过提取 SnmpObjectType 然后调用适当的 getter 方法来访问 OBJECT-TYPE。我已经完成了,并且可以成功提取除 INTEGER 语法中的注释之外的所有文本。

我尝试在 SnmpObjectType 上调用 getSyntax().getComment(),但总是返回 null。getSyntax() 将提取 INTEGER 语法,例如:

但不幸的是,删除了评论。

有谁知道如何提取评论的 Mibble Parser 经验?

非常感谢。

0 投票
4 回答
677 浏览

c - ASN.1 阅读材料

有什么地方可以让我了解有关 ASN.1 的一些资料。我想了解要使用的语法以及一些示例以获取一些概述。

任何帮助表示赞赏。

0 投票
2 回答
1373 浏览

asn.1 - ASN.1 BER 解码器的输入中未声明的标签

我有一个 ASN.1 语法规范,我希望通过添加一些字段来修改它。如果我使用带有新字段的 BER 创建一个编码字符串,然后尝试使用不知道这些附加字段的解码器对该字符串进行解码,结果应该是什么?解码会因为解码器无法识别的字段而失败吗?解码器会只解码它可以识别的字段并完全忽略它不能识别的字段吗?这是否完全是一个解码器实现问题,所以任何一个结果都是可能的,取决于解码器是如何实现的?

现在,我正在使用开源 ASN.1 编译器/解码器,它似乎完全失败了,但我不确定这是因为实施还是因为 ASN.1 规则规定了这种结果?

0 投票
4 回答
46179 浏览

java - 如何在 Java 中解码 DER 编码的字符串?

我正在尝试从数字证书中读取自定义扩展名。我知道该值是用 DER 编码的 GeneralString。有没有一种简单的方法可以正确解码并获取 Java 字符串?我尝试了以下方法,但“s”在字符串的开头包含一些编码元数据作为垃圾字符。

有没有一种快速简便的方法来做到这一点?或者我真的需要使用一些成熟的 ASN.1 库吗?

谢谢!

0 投票
2 回答
454 浏览

performance - 我可以使用 Google 的协议缓冲区在我的 LDAP 服务器中处理 LDAP 请求吗?

我需要在我的应用程序服务器中处理传入的预定义 ASN 格式数据(来自使用 BER 库构建它的客户端的真实性)。这通常是一个 LDAP 服务器,其中每个请求都将采用预定义的 ASN 格式。我可以使用 Google 的协议缓冲区来处理服务器端的请求吗?它是否有助于提高我的服务器请求处理的性能?无论如何,它是否会减少处理 ASN 消息时发生的 malloc() 调用的数量?

谢谢,纳迦