我想将PKCS#7用作某些加密签名内容的容器格式,我们需要在CBC模式下使用AES,并使用基于ISO 10126的填充。我似乎无法找到用于此组合的算法标识符的具体引用。我可以发明自己的,但会失去与其他工具的互操作性。
答案 0 :(得分:4)
不需要指定填充模式。这是正确的,因为PKCS#7(与许多其他加密容器一样)使用ASN.1 / BER编码。由于BER编码包含填充纯文本内部消息的确切长度,因此填充的实际值无关紧要。
答案 1 :(得分:1)
事实证明,不需要指定填充模式,只有加密算法很重要。
答案 2 :(得分:1)
我相信如果你使用PKCS#7作为你的格式,填充被指定为“PKCS7”填充(n个八位字节值'n',见RFC 2315,第10.3.2节)
AES / CBC的算法标识符在例如下面给出。 RFC 3565:
-- AES information object identifiers --
aes OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840)
organization(1) gov(101) csor(3)_ nistAlgorithms(4) 1 }
-- AES using CBC-chaining mode for key sizes of 128, 192, 256
id-aes128-CBC OBJECT IDENTIFIER ::= { aes 2 }
id-aes192-CBC OBJECT IDENTIFIER ::= { aes 22 }
id-aes256-CBC OBJECT IDENTIFIER ::= { aes 42 }
所以,例如CBC模式下128位AES的OID为2.16.840.1.101.3.4.1.2
从技术上讲,这些是CMS,基本上是更新的PKCS#7。