SetSignProcessCNGKey
Ασφάλεια και υπογραφές
Περιγραφή
Επισυνάπτει ονομασμένο private key NCrypt και το πιστοποιητικό X.509 του κωδικοποιημένο σε DER σε διαδικασία υπογραφής PDF
Το κλειδί ανοίγει απευθείας από τον ζητούμενο provider αποθήκευσης κλειδιών, επιτρέποντας ταυτότητες υπογραφής TPM, hardware token, cloud KSP και άλλες μόνο-CNG χωρίς εξαγωγή του private key
Σύνταξη
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 | Value returned by a NewSignProcessFrom* function |
|---|---|
| CertificateDER | Πλήρες DER-κωδικοποιημένο πιστοποιητικό RSA ή ECDSA X.509 που αντιστοιχεί στο private key |
| ProviderName | Windows key storage provider name, or an empty string for Microsoft Software Key Storage Provider |
| KeyName | Όνομα μόνιμου κλειδιού που κατανοεί ο provider |
| UseMachineKey | True ή μη μηδενικό για άνοιγμα του κλειδιού από scope μηχανής |
| AllowUI | True ή μη μηδενικό για επιτροπή user interface PIN, συγκατάθεσης ή έγκρισης cloud από τον provider |
Τιμές επιστροφής
| 1 | Η ρύθμιση ταυτότητας επισυνάφθηκε στη διαδικασία |
|---|---|
| 0 | Το process id, το πιστοποιητικό ή το όνομα κλειδιού ήταν άκυρα |
Παρατηρήσεις
Το κλειδί ανοίγει όταν εκτελείται η διαδικασία υπογραφής, και κανένα byte private key δεν μπαίνει στη μνήμη της βιβλιοθήκης
When AllowUI is false, NCRYPT_SILENT_FLAG is applied to key opening and signingThe generated CMS signature is verified against
CertificateDER before it is accepted, so a same-algorithm but mismatched key is rejectedActiveX accepts a byte-array variant, and the DLL uses an explicit certificate length so embedded zero bytes are retained
Δείτε επίσης
SetSignProcessCNGKeyFromFile, SetSignProcessCNGKeyByHandle, SetSignProcessPrivateKeyUI