将生成的2.5.4.5 oid生成为X509IssuerName,更改提案

时间:2014-10-14 12:57:08

标签: x509certificate xades4j

我注意到用xades4j标记xades签名元素X509IssuerName提供了一个格式错误的序列号发布者值,它显示了一个PrintableString Hex编码,我搜索xades4j代码,我发现问题是进入DataGenBaseCertRefs类,如果你设置

cert.getIssuerX500Principal()。的getName(X500Principal.RFC1779)

进入generate方法,您可以解决此问题并从中获取发布者值:

2.5.4.5 =#130b3037393435323131303036

到这个

OID.2.5.4.5 = 07945211006

1 个答案:

答案 0 :(得分:1)

我不确定改变是否正确。 XML-DSIG声明在编码专有名称时应使用RFC 4514。关于属性类型,在RFC上读取:

  

如果AttributeType被定义为具有短名称的短名称(...),则使用 descr 。否则,AttributeType被编码为其OBJECT IDENTIFIER的点分十进制编码,数字

反过来, numericoid RFC 4512上定义如下:

  

numericoid =数字1 *(DOT编号)

关于属性值,可以读取:

  

如果AttributeType是点分十进制形式,则AttributeValue由数字符号('#'U + 0023)字符表示,后跟每个八位字节的十六进制编码对X.500 AttributeValue进行BER编码。

我的理解是,由于未知短名称,因此应使用十六进制值。你觉得怎么样?

这实际上让我意识到xades4j正在使用RFC 2253,因为it is the default on getName()

  • 您是否还在X509IssuerSerial上添加了KeyInfo/X509Data元素?这与cert ref不同吗?
  • 您能否在另一个频道上向我发送具有这些测试特征的证书?