问题标签 [ber]
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.
asn.1 - EmbeddedPDV 的 ASN.1 BER 编码
我正在用 D 编写一个基本编码规则编解码器,并且我想编码一个 EmbeddedPDV,它是根据下面的 ASN.1 定义的。问题是,在编码时identification
,我不知道如何在 BER 编码的二进制文件中清楚地表明我提供的是与字段OBJECT IDENTIFIER
相关联的syntax
字段,而不是与字段相关联的transfer-syntax
字段。
我知道,如果您使用显式标记,那么 和 都会有特定于上下文的标识符标记syntax
,transfer-syntax
但是缺少 a[0]
或[1]
之前syntax
和transfer-syntax
分别使我不清楚我应该如何对其进行编码。是否存在与这些字段关联的假定上下文特定标识符?换句话说,我是否应该OBJECT IDENTIFIER
使用标识符标签0x81
来指定我正在编码syntax
和标识符标签0x82
来指定我正在编码transfer-syntax
?
asn.1 - 如何在 BER 中以不确定长度编码的八位字节字符串中转义双空八位字节?
我正在尝试在 D 中编写基本编码规则编解码器,并且我希望能够使用不定长度编码对数据进行编码,其中长度字节设置为0x80
,值字节的结尾用双空0x00 0x00
(结束内容)。但是,有时双空值是被编码的实际值的一部分。例如,如果您有一个OCTET STRING
,则两个相邻的字节可能是0x00 0x00
,这将被解释为END OF CONTENT
编码值的一部分,而不仅仅是编码值的一部分,从而导致编码值被截断(最佳情况)。有没有办法对双空值进行编码而不将它们解释为END OF CONTENT
?或者您是否希望只对没有双空值的值进行编码?我还没有在任何规范中找到任何关于此的内容。
der - 您如何对 1994 年后的 ASN.1 EXTERNAL 类型进行编码?
背景:
在 1994 年之前,EXTERNAL
是这样定义的(带有自动和显式标记):
但从那以后,它被定义为:
Dubuisson 的ASN.1说(第 412 页):
特定于上下文的标签,特别是出现在
encoding
组件(类型CHOICE
)的替代品之前必须被编码,而不是那些在 1994 版本中计算的标签。
在第 413 页,他描述了如何对 进行编码INSTANCE OF
,他指出其编码方式与 相同EXTERNAL
。这些identification
节目仅由一个数字为 6 ( OBJECT IDENTIFIER
) 的通用标签编码。节目的encoding
形式
这意味着他正在编码一个INTEGER
, 5, 作为他的选择single-ASN-type
。
我的问题
如果 1994 年后的版本EXTERNAL
向后兼容,则data-value
必须转换为 1994 年前的替代版本之一encoding
。哪一个?
换句话说,如果我对 1994 年后的内容进行编码(EXTERNAL
仅出于示例的目的而使用),它是否会被编码为presentation-context-id
identification
或者
提前致谢!
bash - 查找和替换(增加)ASN.1 BER 十六进制值
我有一个长的十六进制字符串(从 BER ASN.1 转换而来),我需要在其中找到并增加一个不正确的特定值。
ASN.1 标签为 84,当value > 127dec
. 因此,要增加的值将变为 2 个字节。
该值应从 00 开始。
例如
任何想法如何最好地做到这一点,最好使用标准 bash 命令?
matlab - 在 Matlab 中计算 BPSK 的 BER
我编写了这段代码,用于以图形方式比较手动计算的 BER 和理论 BER。
手动计算的 BER (err) 始终是 1x1 值,我希望它是与 SNR 值相对应的值范围。
我也替换了这一行:
用这条线:
仍然无法正常工作。
任何人都可以解决这个问题吗?
这是代码:
gnuradio - GNURadio PSK 位恢复
我遵循了精彩的 GNURadio 指导教程 PSK 解调: https ://wiki.gnuradio.org/index.php/Guided_Tutorial_PSK_Demodulation
我输入了一系列正在滑动的位。所以我输入的第一个字节是 0x01,下一个字节是 0x02、0x04、0x08 等等。这是高清的输出:
前几个字节是垃圾,但随后您可以看到模式。查看第二行,您会看到:0x81、0x02、0x04、0x08、0x10、0x00、0x20、0x40、0x81
行走的就在那里,但在 0x10 之后,PSK 解调器接收到 0x00,然后几个字节后接收到 0x81。似乎时间恢复已关闭。
有没有其他人见过这样的事情?
java - ASN1 Binary notes 的 BERDecoder().decode(args..) API 可以在单个实例中解码超过 2 MB 的二进制数据吗?
我正在尝试使用 Java BERDecoder().decode(InputStream arg0, Class arg1) API of ASN1 binary notes在单个实例中解码ASN1 BER编码数据(超过 2 MB 数据) ,但我无法解码 ASN1 编码使用BERDecoder().decode(..) API 的数据。
谁能指导我,为什么它不能在单个实例中解码 2MB 数据?
BERDecoder().decode(..) API 有什么限制吗??
如果有人指导我解决我的问题,那将非常有帮助。
asn.1 - ASN.1 BER Encode Integer 0x10000000FFFFFFFC 不定长度编码
我正在根据规范实施 BER ,我问自己一个问题:当我使用不定长度编码时,如何将整数 0x10000000FFFFFFFC 编码为 BER 整数(标记 0x02)?
到目前为止,我在规范中没有发现任何转义字符,所以我假设我无法对这样的数字进行编码,因此必须依赖发送者也知道这一点,并使用短格式长度编码发送整数。但在 BitStrings 中,也会出现同样的问题。
matlab - 误码率计算 15,11 汉明码图
下面,在我的代码中是假设找到模拟 BER。但是我在这段代码中遇到错误,其中nErrors = biterr(dataIn,dataDec2)
这条线给出了矩阵尺寸不匹配。
有没有人可以帮助我?
java - 有没有办法在java中将ECDSA的签名格式设置为BER编码?
我正在尝试使用私钥签署消息。它运作良好,但签名以DER encoding
. 我想要的是在BER encoding
. 这是用于签名的方法:
我在用着BouncyCastle library