Berechnung des Werts der Signatur
Die Spezifikation PKCS#7 präzisiert, dass die Berechnung des Wertes der Signatur variiert, je nachdem, ob das Feld authenticatedAttributes vorhanden ist oder nicht.
Wenn das Feld authenticatedAttributes nicht vorhanden ist, erhält man den Wert der Signatur wie folgt. Der unverschlüsselte Bericht (codiert in ASCII) wird einem der zugelassenen Hashing-Algorithmen unterworfen, und ein "Digest-Bericht" wird erstellt. Danach stellt man eine DigestInfo zusammen, die eine Sequenz ist, zusammengesetzt aus dem Kennzeichner des Algorithmus, der für dieses Hashing benutzt wurde, und aus diesem 'message digest'. Schließlich wird die BER-Codierung dieser DigestInfo dem RSA-Codierungsalgorithmus unterworfen.
Wenn das Feld authenticatedAttributes vorhanden ist, enthält es in jedem Fall den Digest-Wert (ermittelt anhand eines der Hashing-Algorithmen) des uncodierten Berichts (Bericht codiert in ASCII). Danach wird die DER-Codierung des Feldes authenticatedAttributes demselben Hashing-Algorithmus unterworfen, um einen 'message digest'-Wert zu erstellen. Die Berechnung des Wertes der Signatur erfolgt dann wie in dem Fall, bei dem das Feld authenticatedAttributes nicht vorhanden ist (DigestInfo zusammenstellen und diese DigestInfo dem RSA-Codierungsalgorithmus unterwerfen).
In beiden Fällen ist es wichtig, dass der uncodierte Bericht dem in ASCII (und z.B. nicht in UNICODE) codierten Hashing unterworfen wird.