问题标签 [cbor]

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 回答
63 浏览

kotlin - 从 CBOR ByteArray 中检索数据

我正在尝试使用 Jackson CBOR 数据格式库将映射序列化为 Kotlin 中的 CBOR,如果键是 String ,这可以正常工作,我可以轻松检索该键的值,但是当 Int 中的键时,它返回 null 给我对于我所做的每一次获取,如果我打印出 values() 的输出,它会为我提供所有键的所有值。

代码如下所示:

0 投票
1 回答
73 浏览

python - 为什么在 Python 库和 RIOT OS C 库中编码 CBOR 时存在差异?

所以我有这个东西

当从使用 NanoCBOR 的系统中读取这些数据时,我会得到类似这样的信息

我可以在 Python 3 中对其进行解码并获得正确的结果。但是当我尝试将其编码回来时,就像这样

并且系统不会将其作为有效消息取回。

A 尝试了所有 Python 库 cbor、cbor2 flynn 和 flunn。

文档很少,我不知道如何以正确的格式对其进行编码。

0 投票
1 回答
2389 浏览

unix - 使用 openSSL 验证 EU GreenPass

我刚收到我的 Covid Green Pass。我已经开始对其进行解码,这是我得到的字段:

在此示例中,所有字段都是十六进制。有效载荷是一个 CBOR 结构,可以进一步解码以获取您的数据。

验证 GreenPass

我现在想做的是使用 Unix 工具验证签名openssl。我发现绿色通道签名是使用椭圆曲线数字签名算法 (ECDSA) 创建的,使用 P-256 参数和 SHA-256 哈希算法。

有了openssl,我应该能够验证这个绿卡:

我需要三个参数public_key_itmy_signaturemy_data

  • public_key_it是一个包含能够检查绿色通行证签名的公钥的文件。它可以在线获得,对于意大利,它是:
  • my_signature是一个包含绿色通行证签名部分的文件。我明白了:

有些字符是不可打印的,所以这里又是十六进制:

好吧,如果我尝试上面的 openssl 命令,我会得到:

有什么提示吗?我什至走在正确的轨道上吗?谢谢

编辑:我现在解决了这个问题。我在一篇博文中写了所有细节:http: //www.corentindupont.info/blog/posts/Programming/2021-08-13-GreenPass.html

0 投票
0 回答
64 浏览

java - 获得正确的 CBOR 输出

我有一个小代码片段,我尝试将映射(一种 JSON 对象)序列化为 CBOR ByteArray。但我无法获得与 CBOR 游乐场 cbor.me 相同的输出

我想序列化为 CBOR 的内容是:

如果我在 cbor.me 中序列化它,我会得到:

我的代码如下所示:

打印的输出是这样的:

TLDR 如何获得与 CBOR 游乐场相同的输出?

0 投票
0 回答
44 浏览

java - Double 的 CBOR 编码给了我错误的输出

我现在正在使用 Google 的 CBORTree 库,我正在尝试像这样对 Double 进行编码:

我的输出是:

但是引用 cbor.me 的输出应该是这样的:

我究竟做错了什么?

链接到库:lib

0 投票
1 回答
43 浏览

node.js - 库 cbor 在转换中引入了一个新值

我在node.js上做的这个程序,有异常。当我进行 decodeAllSync 时,我得到一个十进制数字的向量,它的数字比通过使用 encodeAsync 重新转换向量得到的数字少一个。为什么我没有得到相同的向量?谢谢

我收到输入的打印输出:

我收到输出的打印输出:

0 投票
2 回答
657 浏览

java - 尝试验证 CBOR 消息上的签名时出错

我在使用COSE-JAVA解码欧盟数字证书(“Covid pass”)时遇到问题。公钥似乎可以正常加载,但是当我尝试验证 CBOR 消息时,出现以下错误:

这是验证代码:

这是从 PEM 生成公钥的方式:

公钥定义为:

这是在 Python 中做同样事情的代码,可能会对某人有所帮助。代码必须在 Android 7.1 上运行(嵌入式设备,无法升级到更新的 Android)。

0 投票
1 回答
88 浏览

json - 如何将结构反序列化/序列化为没有键的数组

如何在没有键的情况下对结构进行反序列化/序列化?由于我不会更改字段的顺序,因此索引可以作为键来减少有效负载的大小。

我正在使用 serde_json 和 ciborium 板条箱,它们都具有顶级数组值。

例如,

跟随 cbor/json

应该转换成这个

我可以通过使用 ciborium crate 的Value::array枚举手动执行此操作,但最终我将编写更多代码并且无法使用serde_bytescrate 有效解码Vec<u8>

0 投票
1 回答
1223 浏览

node.js - 如何从解码缓冲区编码 CBOR

在解码然后编码然后解码 CBOR 时,缓冲区返回的结果不同。

完整代码 如何解码 GreenPass 二维码。受https://git.gir.st/greenpass.git/blob_plain/master:/greenpass.py启发的简单绿色通行证解码器 完整代码如何解码 GreenPass 二维码。受https://git.gir.st/greenpass.git/blob_plain/master:/greenpass.py启发的简单绿色通行证解码器 完整代码如何解码 GreenPass 二维码。受https://git.gir.st/greenpass.git/blob_plain/master:/greenpass.py启发的简单绿色通行证解码器 完整代码如何解码 GreenPass 二维码。受https://git.gir.st/greenpass.git/blob_plain/master:/greenpass.py启发的简单绿色通行证解码器

0 投票
1 回答
85 浏览

python - NameError:名称“cbor”未定义

我用了

这导致

信息。(cbor 之前已经通过 pip install 安装过。)

有什么提示吗?