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);
パラメータ
| SignProcessID | NewSignProcessFrom* 関数が返す値 |
|---|---|
| CertificateDER | 秘密鍵に対応する、DER で完全にエンコードされた RSA または ECDSA X.509 証明書 |
| ProviderName | Windows キーストレージプロバイダー名。Microsoft Software Key Storage Provider には空文字列 |
| KeyName | プロバイダーが認識する永続キー名 |
| UseMachineKey | マシンスコープからキーを開くには true またはゼロ以外を指定します |
| AllowUI | プロバイダーによる PIN、同意、またはクラウド承認のユーザーインターフェイスを許可するには True または 0 以外 |
戻り値
| 1 | ID 設定が処理に関連付けられました |
|---|---|
| 0 | プロセス ID、証明書、またはキー名が無効でした |
備考
キーは署名プロセスの実行時に開かれ、秘密鍵バイトがライブラリメモリに入ることはない
AllowUI が false の場合、キーを開く操作と署名に NCRYPT_SILENT_FLAG が適用されます
生成された CMS 署名は受け入れ前に CertificateDER に対して検証されるため、同じアルゴリズムでも一致しないキーは拒否されます
ActiveX はバイト配列バリアントを受け入れ、DLL は明示的な証明書長を使用するため埋め込みゼロバイトが保持されます
関連項目
SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI