强制 openssl cms 应用程序不在 `OCTET_STRING`

问题描述

我想为我的自定义数据类型创建 CMS 签名,假设它名为 foo.msg,如下所示:

16 01 61

所以IA5String("a")

我试图用 openssl cms 工具做到这一点:

openssl cms \
  -sign \
  -signer cert.pem \
  -inkey key.pem \
  -in foo.msg \
  -nodetach \
  -outform der \
  -out foo.sig \
  -econtent_type 2.999.1

虽然这将输入视为原始二进制并将其包装在 OCTET_STRING

a0 05 04 03 16 01 61
  • a0 -- 显式标签 [0]
  • 04 -- 八位字节串
  • 16 -- IA5String

根据RFC 5652内容可以是任何东西:

ContentInfo ::= SEQUENCE {
  contentType ContentType,content [0] EXPLICIT ANY DEFINED BY contentType
}

有没有办法强制 openssl cms 不将内容包裹在 OCTET_STRING 中?

我无法确定代码中发生的位置。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...