Date: Wed, 16 Jun 1999 14:57:21 -0400
From: Robert Dingwell <bobd@mitre.org>
To: java-security@java.sun.com
Subject: pkcs#7 verification help needed
I'm trying to verify the encrypted digest in a Pkcs#7 signedData object.
I can decrypt the block fine but I need to know exactly what needs to
be hashed to compare it with the value stored in the encryptedDigest. I
Know it has something to do with the authenticatedAttributes field but
no matter what I try I can not get the value of what is in the
encryptedDigest. Below I have an outline of the authenticatedAttributes
field
if someone could outline what I need to include in the hash from this
field it
would really help me out.
Thanks
[CONTEXT (constructed) 0] { // This is the
authenticatedAttributes field
[UNIVERSAL (constructed) SEQUENCE] { //This is an Attribute
[UNIVERSAL OBJECT IDENTIFIER] 1.2.840.113549.1.9.3
[UNIVERSAL (constructed) SET] {
[UNIVERSAL OBJECT IDENTIFIER] 1.2.840.113549.1.7.1
}
}
[UNIVERSAL (constructed) SEQUENCE] { //This is an Attribute
[UNIVERSAL OBJECT IDENTIFIER] 1.2.840.113549.1.9.5
[UNIVERSAL (constructed) SET] {
[UNIVERSAL UTC TIME] 990616150336Z
}
}
[UNIVERSAL (constructed) SEQUENCE] { //This is an Attribute
[UNIVERSAL OBJECT IDENTIFIER] 1.2.840.113549.1.9.4
[UNIVERSAL (constructed) SET] {
[UNIVERSAL OCTET STRING] (20 bytes)
EC 70 B9 C6 98 C2 E0 54 79 3A 1D B0 B4 01 D5 FF
93 8F 4C D8
}
}
[UNIVERSAL (constructed) SEQUENCE] { //This is an Attribute
[UNIVERSAL OBJECT IDENTIFIER] 1.2.840.113549.1.9.15
[UNIVERSAL (constructed) SET] {
[UNIVERSAL (constructed) SEQUENCE] {
[UNIVERSAL (constructed) SEQUENCE] {
[UNIVERSAL OBJECT IDENTIFIER] 1.2.840.113549.3.7
}
[UNIVERSAL (constructed) SEQUENCE] {
[UNIVERSAL OBJECT IDENTIFIER] 1.2.840.113549.3.2
[UNIVERSAL INTEGER] (2) 80
}
[UNIVERSAL (constructed) SEQUENCE] {
[UNIVERSAL OBJECT IDENTIFIER] 1.3.14.3.2.7
}
[UNIVERSAL (constructed) SEQUENCE] {
[UNIVERSAL OBJECT IDENTIFIER] 1.2.840.113549.3.2
[UNIVERSAL INTEGER] (1) 40
}
[UNIVERSAL (constructed) SEQUENCE] {
[UNIVERSAL OBJECT IDENTIFIER] 1.2.840.113549.3.2
[UNIVERSAL INTEGER] (1) 28
}
}
}
}
}