Podpisujący CMS SubjectKeyIdentifier
HotPDF potrafi identyfikować głównego podpisującego CMS po rozszerzeniu X.509 subjectKeyIdentifier zamiast po nazwie wystawcy i numerze seryjnym certyfikatu
Wybór identyfikatora
HPDFCMSDefaultOptions ustawia THPDFCMSSignOptions.SignerIdentifier na cmsidIssuerAndSerialNumber, więc istniejący wywołujący zachowują swój deterministyczny kształt bajtów CMS
Ustaw pole na cmsidSubjectKeyIdentifier przed wywołaniem HPDFCMSBuildSignedDataEx, budowniczego CMS opartego o dostawcę, szacowania placeholdera albo wysokopoziomowej przeciążonej wersji podpisywania przyjmującej THPDFCMSSignOptions
Options := HPDFCMSDefaultOptions(palBaseline_B_B);
Options.SignerIdentifier := cmsidSubjectKeyIdentifier;
CMS := HPDFCMSBuildSignedDataEx(KeyMaterial, DocumentDigest, Options);
Wymagania dotyczące certyfikatu
Certyfikat podpisującego musi zawierać dokładnie jedno niepuste rozszerzenie X.509 o OID 2.5.29.14, którego wartość rozszerzenia zawiera kompletny DER OCTET STRING
HotPDF zawodzi przed podpisaniem, gdy to rozszerzenie brakuje, jest zduplikowane, puste, ucięte lub wadliwe; nie syntetyzuje identyfikatora klucza z klucza publicznego
SigningCertificateV2 dalej wiąże ten sam certyfikat swoimi polami wystawcy i numeru seryjnego, nawet gdy SID SignerInfo używa identyfikatora klucza
Format przewodowy i weryfikacja
Identyfikator klucza jest kodowany jako prymitywny IMPLICIT [0], SignerInfo.version wynosi 3, a generowany SignedData.version dla pojedynczego podpisującego wynosi 3, zgodnie z wymogami RFC 5652
Weryfikacja wymaga, by bajty SID pasowały do osadzonego rozszerzenia certyfikatu, i odrzuca niedopasowane wartości SID, rekordy issuer-and-serial z wersją podpisującego różną od 1, rekordy SKI z wersją podpisującego różną od 3 oraz kontenery SKI o wersji zewnętrznej niższej niż 3
Kompaktowa tożsamość jest przydatna dla magazynów certyfikatów zorientowanych na klucze i workflowów nieprzechowujących kodowań nazw wystawców, ale oprogramowanie konsumujące musi obsługiwać wariant SKI z RFC 5652
HPDFCMSBuildCounterSignerInfo dalej używa tożsamości issuer-and-serial; głównego podpisującego konfiguruj przez THPDFCMSSignOptions
Zobacz nowoczesnych dostawców podpisu i spójność algorytmów skrótów CMS