Сучасні постачальники підпису
HPDFSignatureProvider відокремлює розбір і кодування CMS від зберігання закритих ключів та криптографії платформи
Алгоритми перевірки
HPDFVerifyCMSSignatureEx перевіряє CMS-підписи Ed25519 та Ed448 у чистому режимі через THPDFPlatformSignatureProvider або наданий викликним кодом провайдер і записує точний OID підпису в THPDFSignatureInfo.SignatureAlgorithmOID
Розбір CMS звіряє множину дайджестів контейнера, дайджест підписувача, параметри механізму підпису та необов'язковий атрибут захисту алгоритму RFC 6211 перед хешуванням або обробкою провайдером; перегляньте узгодженість дайджест-алгоритмів CMS для отримання статусів і докладних кодів проблем
ML-DSA-44, ML-DSA-65 та ML-DSA-87 використовують провайдер платформи, якщо він доступний, але перевірка завантажених документів вмикає їх лише тоді, коли Каталог оголошує розширення розробника HotPDF PDF 2.0
Постачальники підпису
THotPDF.SignPDFWithPFX і перевантаження HPDFCMSSignPDFStream на основі PFX вибирають RSA, ECDSA, Ed25519 або Ed448 із відповідної ідентичності PKCS#12 без зворотного виклику підпису, наданого викликним кодом
Приватні скаляри ECDSA підписуються через Windows CNG і повертаються як строгі значення DER ECDSA, тоді як Ed25519 та Ed448 використовують необов'язкову бібліотеку OpenSSL 3 libcrypto, вибрану через THPDFCMSSignOptions.OpenSSLLibraryPath або звичайний шлях пошуку бібліотек
PureEdDSA підписує повний DER SET OF підписаних атрибутів, а не попередньо обчислений дайджест атрибутів; Ed25519 поєднує цей вхід із дайджестами документа SHA-512, а Ed448 використовує id-shake256-len із 512-бітовим виходом SHAKE256
THPDFCMSSignOptions.SignerIdentifier незалежно від провайдера закритого ключа вибирає кодування ідентичності issuer-and-serial або X.509 SubjectKeyIdentifier; перегляньте підписувачів CMS SubjectKeyIdentifier
THPDFCallbackSignatureProvider адаптує зворотні виклики застосунку, тоді як THPDFRemoteSignatureProvider застосовує навколо віддаленого транспорту обмежені повторні спроби, скасування, вхідні дані та ліміти підпису
THPDFCSCSignatureProvider реалізує віддалене підписання CSC API v2 поверх HTTP-транспорту, наданого застосунком, включно з оновленням токена OAuth, виявленням облікових даних і ланцюга сертифікатів, явним отриманням прив'язаного до хешу SAD, обмеженими впорядкованими пакетами multisign, синхронним або асинхронним signatures/signHash, обмеженим опитуванням, мітками часу RFC 3161, скасуванням та ідемпотентним повторенням за вмістом
THPDFPKCS11SignatureProvider серіалізує операції RSA та ECDSA проти автентифікованої сесії PKCS#11 і дескриптора закритого ключа, що належать викликному коду, вибираючи механізми RSA PKCS#1 v1.5, RSA-PSS або сирий ECDSA залежно від дайджесту, без експорту ключового матеріалу
THPDFWindowsKeyStorageSignatureProvider відкриває збережені ключі в Microsoft smart-card KSP або будь-якому іменованому постачальнику сховища ключів CNG, за бажанням відхиляє програмні ключі через властивість Impl Type, застосовує політику доступу silent або interactive та підписує дайджести SHA-2 або SHA3 за допомогою RSA PKCS#1 v1.5, RSA-PSS або ECDSA
CreateFromKeyHandle адаптує наявний NCRYPT_KEY_HANDLE і може як запозичити його, так і володіти ним, дозволяючи застосункам, які вже керують автентифікацією smart-card, TPM або вендорного HSM, зберегти контроль над життєвим циклом
HPDFCMSBuildSignedDataWithProvider будує від'єднаний CMS із дайджесту, вибраного через THPDFCMSSignOptions.DigestAlgorithm, тоді як HPDFCMSSignPDFStreamWithProvider підписує наявний заповнювач підпису PDF через обмежені копії потоків, потокове хешування діапазонів і виправлення зсуву фіксованої ширини без збереження повного другого PDF
HPDFCMSEstimatePlaceholder виводить без побічних ефектів розмір CMS із явної довжини підпису, оцінки провайдера або розміру ключа сертифіката RSA, після чого враховує точну статичну форму CMS і налаштовані резерви динамічної мітки часу або контрпідпису
HPDFCMSSignPDFStreamWithProviderAutoSize та HPDFCMSSignPDFStreamWithExternalSignerAutoSize перебудовують замалі непідписані заповнювачі перед підписанням; повторні спроби після підпису вимагають можливості провайдера spcSafeSignRetry, а зворотні виклики зовнішнього підписувача ніколи не повторюються після повернення підпису
Перегляньте автоматичний підбір розміру заповнювача CMS для параметрів розміру, контрактів перебудови, політики повторів і діагностики
Перегляньте віддалений постачальник підпису CSC для контрактів транспорту, авторизації, повторів, опитування та бюджету
Перегляньте підписи та мітки часу PDF SHA3 для політики дайджестів, RFC 3161, Seed Value, провайдерів і контрактів потокової передачі
Перегляньте підписи ECDSA Brainpool для вимог до сертифікатів із іменованими кривими, матриці SHA-2 і SHA3 для конкретних кривих, строгого кодування DER і валідації продюсера до звернення до провайдера
Контракт запиту до постачальника
THPDFSignatureProviderRequest переносить алгоритм підпису та його OID, OID дайджесту, тип вхідних даних повідомлення або дайджесту, довжину солі PSS, відкритий ключ або сертифікат, ідентифікатор ключа, ідентифікатор операції, підпис і контекст алгоритму
Постачальник підпису повертає spsValid із непорожнім підписом, тоді як провайдери перевірки використовують spsValid або spsInvalid; результати unsupported, malformed, provider-error і cancelled залишаються окремими