SetSignProcessCNGKey

セキュリティと署名

説明

名前付き NCrypt 秘密鍵と、その DER エンコード済み X.509 証明書を PDF 署名処理に関連付けます

要求されたキーストレージプロバイダーから鍵を直接開くため、秘密鍵をエクスポートせずに TPM バックアップ、ハードウェアトークン、クラウド KSP、およびその他の CNG 専用署名 ID を使用できます

構文

Delphi

Function TPDFlib.SetSignProcessCNGKey(SignProcessID: Integer; Const CertificateDER: AnsiString; Const ProviderName, KeyName: WideString; UseMachineKey, AllowUI: Boolean): Integer;

ActiveX

Function PDFlib::SetSignProcessCNGKey(SignProcessID As Long, CertificateDER As Variant, ProviderName As String, KeyName As String, UseMachineKey As Long, AllowUI As Long) As Long

DLL

int DLSetSignProcessCNGKey(int InstanceID, int SignProcessID, const char* CertificateDER, int CertificateLength, const wchar_t* ProviderName, const wchar_t* KeyName, int UseMachineKey, int AllowUI);

パラメータ

SignProcessIDNewSignProcessFrom* 関数が返す値
CertificateDER秘密鍵に対応する、DER で完全にエンコードされた RSA または ECDSA X.509 証明書
ProviderNameWindows キーストレージプロバイダー名。Microsoft Software Key Storage Provider には空文字列
KeyNameプロバイダーが認識する永続キー名
UseMachineKeyマシンスコープからキーを開くには true またはゼロ以外を指定します
AllowUIプロバイダーによる PIN、同意、またはクラウド承認のユーザーインターフェイスを許可するには True または 0 以外

戻り値

1ID 設定が処理に関連付けられました
0プロセス ID、証明書、またはキー名が無効でした

備考

キーは署名プロセスの実行時に開かれ、秘密鍵バイトがライブラリメモリに入ることはない

AllowUI が false の場合、キーを開く操作と署名に NCRYPT_SILENT_FLAG が適用されます

生成された CMS 署名は受け入れ前に CertificateDER に対して検証されるため、同じアルゴリズムでも一致しないキーは拒否されます

ActiveX はバイト配列バリアントを受け入れ、DLL は明示的な証明書長を使用するため埋め込みゼロバイトが保持されます

関連項目

SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI