PKCS7 (también conocido como CMS) ciertamente define el ContentInfo
genérico. Consulte rfc2630 sección 3 et succ, o rfc2315 sección 7 (no hay enlace para vincular):
ContentInfo ::= SEQUENCE {
contentType ContentType,
content [0] EXPLICIT ANY DEFINED BY contentType }
ContentType ::= OBJECT IDENTIFIER
Pero esto es deliberadamente tan flexible como para ser inútil en el procesamiento de datos: puede contener cualquier tipo de datos siempre que haya un OID para identificar ese tipo de datos.
No está claro en su fuente, pero mi primer hit en Google para "Formato de firma Authenticode" es download.microsoft.com/download/9/c/5/9c5b2167-8017.../Authenticode_PE.docx y eso dice en la página 7 sobre el contentInfo
del SignedData
utilizado para Authenticode:
• contentType se debe establecer en SPC_INDIRECT_DATA_OBJID (1.3.6.1.4.1.311.2.1.4).
• el contenido debe establecerse en una estructura SpcIndirectDataContent, que se describe más adelante.
y de la página 9 a la 11 (que es más tarde) contiene una definición detallada que comienza con
SpcIndirectDataContent ::= SEQUENCE {
data SpcAttributeTypeAndOptionalValue,
messageDigest DigestInfo
} --#public—
SpcAttributeTypeAndOptionalValue ::= SEQUENCE {
type ObjectID,
value [0] EXPLICIT ANY OPTIONAL
}
donde DigestInfo
contiene el valor de AlgId y de digestión para un hash canónico del archivo calculado mediante un proceso detallado que comienza en la página 15.