モダン署名プロバイダー
HPDFSignatureProvider は、CMS の解析とエンコーディングを秘密鍵ストレージとプラットフォーム暗号から分離します
検証アルゴリズム
HPDFVerifyCMSSignatureEx は Ed25519 と Ed448 のピュアモード CMS 署名を THPDFPlatformSignatureProvider または呼び出し側指定のプロバイダで検証し、正確な署名 OID を THPDFSignatureInfo.SignatureAlgorithmOID に記録します
CMS のパースでは、ハッシュやプロバイダへの振り分けの前に、コンテナのダイジェスト集合・署名者のダイジェスト・署名メカニズムのパラメータ・省略可能な RFC 6211 アルゴリズム保護属性を相互検証します。ステータスと詳細な問題コードは CMS digest-algorithm consistency を参照してください
ML-DSA-44・ML-DSA-65・ML-DSA-87 は、利用可能ならプラットフォームプロバイダを使います。ただし読み込み済みドキュメントの検証で有効になるのは、Catalog が HotPDF PDF 2.0 デベロッパー拡張を宣言している場合だけです
署名プロバイダー
THotPDF.SignPDFWithPFX と PFX バックエンドの HPDFCMSSignPDFStream オーバーロードは、呼び出し側の署名コールバックなしに、一致した PKCS#12 アイデンティティから RSA・ECDSA・Ed25519・Ed448 を選択します
ECDSA の秘密スカラーは Windows CNG を通じて署名され、厳密な DER 形式の ECDSA 値として返ります。Ed25519 と Ed448 は、THPDFCMSSignOptions.OpenSSLLibraryPath または通常のライブラリ検索パスで選択された、省略可能な OpenSSL 3 の libcrypto を使用します
PureEdDSA は、事前計算された属性ダイジェストではなく、DER エンコードされた SET OF 署名属性一式へ署名します。Ed25519 はこの入力を SHA-512 ドキュメントダイジェストと組み合わせ、Ed448 は 512 ビットの SHAKE256 出力で id-shake256-len を使います
THPDFCMSSignOptions.SignerIdentifier は、issuer-and-serial と X.509 SubjectKeyIdentifier のどちらのアイデンティティエンコーディングかを、秘密鍵プロバイダとは独立に選択します。詳細は CMS SubjectKeyIdentifier signers を参照してください
THPDFCallbackSignatureProvider がアプリケーションのコールバックを適合させ、THPDFRemoteSignatureProvider がリモート転送を囲んで、上限付きの再試行・キャンセル・入力・署名の各制限を適用します
THPDFCSCSignatureProvider は、アプリケーション提供の HTTP 転送の上で CSC API v2 のリモート署名を実装します。OAuth トークンの更新・資格情報と証明書チェーンの探索・ハッシュを固定した明示的な SAD 取得・上限付きの順序付き multisign バッチ・同期 / 非同期の signatures/signHash・上限付きポーリング・RFC 3161 タイムスタンプ・キャンセル・コンテンツアドレス方式の冪等リプレイを含みます
THPDFPKCS11SignatureProvider は、呼び出し側所有の認証済み PKCS#11 セッションと秘密鍵ハンドルに対して RSA / ECDSA の操作を直列化します。鍵マテリアルを書き出さずに、ダイジェストごとの RSA PKCS#1 v1.5・RSA-PSS・生 ECDSA の各メカニズムを選択します
THPDFWindowsKeyStorageSignatureProvider は、Microsoft スマートカード KSP または任意の名前付き CNG キー記憶プロバイダの中で永続化された鍵を開き、Impl Type プロパティで必要に応じてソフトウェア鍵を拒否し、サイレント / 対話のアクセスポリシーを適用し、RSA PKCS#1 v1.5・RSA-PSS・ECDSA のいずれかで SHA-2 / SHA3 ダイジェストへ署名します
CreateFromKeyHandle は既存の NCRYPT_KEY_HANDLE を適合させ、借用と所有のどちらも選べます。すでにスマートカード・TPM・ベンダー HSM の認証を管理しているアプリケーションが、ライフサイクルの制御を保持できます
HPDFCMSBuildSignedDataWithProvider は THPDFCMSSignOptions.DigestAlgorithm で選択されたダイジェストから分離 CMS を構築します。HPDFCMSSignPDFStreamWithProvider は、上限付きのストリームコピー・ストリーミング範囲ハッシュ・固定幅のシークパッチを通じて、既存の PDF 署名プレースホルダへ署名します。2 つ目の完全な PDF を保持することはありません
HPDFCMSEstimatePlaceholder は、明示された署名長・プロバイダの見積もり・RSA 証明書の鍵サイズから、副作用のない CMS サイズを導出し、その後で、正確な CMS 静的形状と設定された動的タイムスタンプ / 反署名の予約分を勘定に入れます
HPDFCMSSignPDFStreamWithProviderAutoSize と HPDFCMSSignPDFStreamWithExternalSignerAutoSize は、署名の前にサイズ不足の未署名プレースホルダを再構築します。署名後の再試行にはプロバイダケイパビリティ spcSafeSignRetry が必要で、外部署名者コールバックは、署名を返した後で繰り返されることはありません
サイズ設定のオプション・再構築の契約・再試行ポリシー・診断については CMS placeholder auto-sizing を参照してください
転送・認可・再試行・ポーリング・予算の契約については CSC remote signature provider を参照してください
ダイジェストポリシー・RFC 3161・Seed Value・プロバイダ・ストリーミングの契約については SHA3 PDF signatures and timestamps を参照してください
名前付き曲線の証明書要件・曲線ごとの SHA-2 / SHA3 マトリクス・厳密な DER エンコーディング・プロバイダより先に失敗するプロデューサー検証については Brainpool ECDSA signatures を参照してください
プロバイダーリクエスト契約
THPDFSignatureProviderRequest は、署名アルゴリズムと OID、ダイジェスト OID、メッセージまたはダイジェスト入力種別、PSS ソルト長、公開鍵または証明書、キー識別子、操作識別子、署名、アルゴリズムコンテキストを保持します
署名プロバイダーは、空でない署名付きで spsValid を返し、検証プロバイダーは spsValid または spsInvalid を使用します。サポートされていない、不正な、プロバイダーエラーの、キャンセルされた結果は区別されたままです