Nowoczesni dostawcy podpisów

HPDFSignatureProvider oddziela parsowanie i kodowanie CMS od przechowywania kluczy prywatnych i kryptografii platformowej

Algorytmy weryfikacji

HPDFVerifyCMSSignatureEx weryfikuje podpisy CMS w trybie pure dla Ed25519 i Ed448 przez THPDFPlatformSignatureProvider lub dostawcę podanego przez wywołującego i zapisuje dokładny OID podpisu w THPDFSignatureInfo.SignatureAlgorithmOID

Parsowanie CMS krzyżowo sprawdza zbiór digestów kontenera, digest podpisującego, parametry mechanizmu podpisu i opcjonalny atrybut ochrony algorytmów RFC 6211, zanim dojdzie do hashowania lub przekazania do dostawcy; statusy i szczegółowe kody problemów opisuje strona spójność algorytmów digest CMS

ML-DSA-44, ML-DSA-65 i ML-DSA-87 korzystają z dostawcy platformowego, gdy jest dostępny, ale weryfikacja załadowanych dokumentów włącza je tylko wtedy, gdy Catalog deklaruje rozszerzenie deweloperskie HotPDF PDF 2.0

Dostawcy podpisywania

THotPDF.SignPDFWithPFX i przeciążenia HPDFCMSSignPDFStream oparte na PFX wybierają RSA, ECDSA, Ed25519 lub Ed448 z dopasowanej tożsamości PKCS#12 bez wywołania zwrotnego podpisywania od wywołującego

Prywatne skalary ECDSA są podpisywane przez Windows CNG i zwracane jako ścisłe wartości DER ECDSA, a Ed25519 i Ed448 używają opcjonalnego OpenSSL 3 libcrypto wskazanego przez THPDFCMSSignOptions.OpenSSLLibraryPath albo normalnej ścieżki wyszukiwania bibliotek

PureEdDSA podpisuje kompletną strukturę DER SET OF atrybutów podpisanych, a nie uprzednio policzony digest atrybutów; Ed25519 łączy to wejście z digestami dokumentu SHA-512, a Ed448 używa id-shake256-len z 512-bitowym wyjściem SHAKE256

THPDFCMSSignOptions.SignerIdentifier wybiera kodowanie tożsamości issuer-and-serial albo X.509 SubjectKeyIdentifier niezależnie od dostawcy klucza prywatnego; zobacz podpisujących CMS SubjectKeyIdentifier

THPDFCallbackSignatureProvider adaptuje wywołania zwrotne aplikacji, a THPDFRemoteSignatureProvider nakłada ograniczone limity ponawiania, anulowania, wejścia i podpisu wokół zdalnego transportu

THPDFCSCSignatureProvider implementuje zdalne podpisywanie CSC API v2 po HTTP dostarczonym przez aplikację, w tym odświeżanie tokenów OAuth, odkrywanie poświadczeń i łańcuchów certyfikatów, jawne pozyskiwanie SAD przypiętego do hasha, ograniczone uporządkowane paczki multisign, synchroniczne lub asynchroniczne signatures/signHash, ograniczone odpytywanie, znaczniki czasu RFC 3161, anulowanie i idempotentne odtwarzanie adresowane zawartością

THPDFPKCS11SignatureProvider szereguje operacje RSA i ECDSA wobec należącej do wywołującego uwierzytelnionej sesji PKCS#11 i uchwytu klucza prywatnego, wybierając mechanizmy RSA PKCS#1 v1.5 zależne od digestu, RSA-PSS lub surowe ECDSA bez eksportowania materiału klucza

THPDFWindowsKeyStorageSignatureProvider otwiera utrwalone klucze w Microsoft smart-card KSP lub dowolnym nazwanym dostawcy magazynu kluczy CNG, opcjonalnie odrzuca klucze programowe przez właściwość Impl Type, stosuje cichą lub interaktywną politykę dostępu i podpisuje digesty SHA-2 lub SHA3 przez RSA PKCS#1 v1.5, RSA-PSS lub ECDSA

CreateFromKeyHandle adaptuje istniejący NCRYPT_KEY_HANDLE i może go pożyczać albo przejmować na własność, więc aplikacje już zarządzające uwierzytelnianiem kart, TPM lub HSM producenta zachowują kontrolę nad cyklem życia

HPDFCMSBuildSignedDataWithProvider buduje odłączony CMS z digestu wybranego przez THPDFCMSSignOptions.DigestAlgorithm, a HPDFCMSSignPDFStreamWithProvider podpisuje istniejący zastępnik podpisu PDF przez ograniczone kopie strumieni, strumieniowane hashowanie zakresów i poprawki seek o stałej szerokości, bez trzymania drugiego kompletnego PDF

HPDFCMSEstimatePlaceholder wylicza rozmiar CMS bez efektów ubocznych z jawnej długości podpisu, estymaty dostawcy lub rozmiaru klucza w certyfikacie RSA, a następnie uwzględnia dokładny statyczny kształt CMS i skonfigurowane dynamiczne rezerwy na znacznik czasu lub współpodpis

HPDFCMSSignPDFStreamWithProviderAutoSize i HPDFCMSSignPDFStreamWithExternalSignerAutoSize przebudowują zbyt małe niepodpisane zastępniki przed podpisaniem; ponowienia po podpisie wymagają możliwości dostawcy spcSafeSignRetry, a wywołań zwrotnych zewnętrznego podpisującego nigdy nie powtarza się po zwróceniu podpisu

Opcje wymiarowania, kontrakty przebudowy, politykę ponawiania i diagnostykę opisuje strona automatyczne wymiarowanie zastępników CMS

Transport, autoryzację, ponawianie, odpytywanie i kontrakty budżetów opisuje strona zdalny dostawca podpisów CSC

Politykę digestów, RFC 3161, Seed Value, dostawców i kontrakty strumieniowania opisuje strona podpisy i znaczniki czasu SHA3 w PDF

Wymagania certyfikatów dla nazwanych krzywych, macierz SHA-2 i SHA3 per krzywa, ścisłe kodowanie DER i walidację producenta kończącą się błędem przed dostawcą opisuje strona podpisy ECDSA Brainpool

Kontrakt żądania dostawcy

THPDFSignatureProviderRequest przenosi algorytm i OID podpisu, OID digestu, rodzaj wejścia (wiadomość lub digest), długość soli PSS, klucz publiczny lub certyfikat, identyfikator klucza, identyfikator operacji, podpis i kontekst algorytmu

Dostawca podpisywania zwraca spsValid z niepustym podpisem, a dostawcy weryfikacji używają spsValid lub spsInvalid; wyniki nieobsługiwane, źle uformowane, błędy dostawcy i anulowane pozostają odrębne