PKCS7 (aka CMS) definisce sicuramente il generico ContentInfo
. Vedi rfc2630 sezione 3 et succ, o rfc2315 sezione 7 (nessuna ancora da collegare):
ContentInfo ::= SEQUENCE {
contentType ContentType,
content [0] EXPLICIT ANY DEFINED BY contentType }
ContentType ::= OBJECT IDENTIFIER
Ma questo è volutamente così flessibile da essere inutile nell'elaborazione dei dati: può contenere qualsiasi tipo di dati finché c'è un OID per identificare quel tipo di dati.
Non sei chiaro sulla tua fonte, ma il mio primo hit da google per "Authenticode signature format" è download.microsoft.com/download/9/c/5/9c5b2167-8017.../Authenticode_PE.docx e che dice a pagina 7 che riguarda contentInfo
del SignedData
usato per Authenticode:
• contentType must be set to SPC_INDIRECT_DATA_OBJID (1.3.6.1.4.1.311.2.1.4).
• content must be set to an SpcIndirectDataContent structure, which is described later.
e dalla pagina 9 alla 11 (che è effettivamente successiva) contiene una definizione dettagliata che inizia con
SpcIndirectDataContent ::= SEQUENCE {
data SpcAttributeTypeAndOptionalValue,
messageDigest DigestInfo
} --#public—
SpcAttributeTypeAndOptionalValue ::= SEQUENCE {
type ObjectID,
value [0] EXPLICIT ANY OPTIONAL
}
dove DigestInfo
contiene l'AlgId e il valore digest per un hash canonico del file calcolato utilizzando un processo dettagliato a partire da pagina 15.