TPDFlibPFXFile
Security and Signatures
Beschrijving
TPDFlibPFXFile bewaart de ondertekeningsidentiteit waarmee een losse PKCS#7-handtekening wordt gemaakt
De identiteit kan komen uit een PFX-bestand, een item in een Windows-systeemcertificaatstore opgelost via zijn eenvoudige weergavenaam, een extern gedupliceerde PCCERT_CONTEXT, een Ed25519-sleutelpaar, een CNG-sleutel of een externe digest-callback
Zodra een identiteit is gebonden, maakt SignData de CMS-handtekeningbytes en meten de schattinghelpers de /Contents-reservering voordat de handtekening wordt weggeschreven
De SigningWorkbench-demo opent een PFX met deze klasse voordat de identiteit naar de ondertekenpijplijn gaat
Syntaxis
Delphi
TPDFlibPFXFile = Class
Public
Destructor Destroy; Override;
Function Open(Const FileName: WideString; Const Password: AnsiString; UseMachineKeyset: Boolean): TPDFlibSignerResult;
Function OpenFromStore(Const StoreName, CertName: WideString; UseMachineStore: Boolean): TPDFlibSignerResult;
Function EnumerateStore(Const StoreName: WideString; UseMachineStore: Boolean;
Var Infos: Array Of TPDFlibCertificateInfo): Integer;
Function OpenFromContext(CertContext: Pointer): TPDFlibSignerResult;
Function OpenEd25519(Const CertificateDER, PrivateKeyDER: AnsiString): TPDFlibSignerResult;
Function OpenEd25519FromFile(Const CertificateFile, PrivateKeyFile: WideString): TPDFlibSignerResult;
Function OpenCNGKey(Const CertificateDER: AnsiString;
Const ProviderName, KeyName: WideString; UseMachineKey, AllowUI: Boolean): TPDFlibSignerResult;
Function OpenCNGKeyHandle(Const CertificateDER: AnsiString; KeyHandle: TPLIntPtr; AllowUI: Boolean): TPDFlibSignerResult;
Function OpenExternalDigestSigner(Const CertificateDER: AnsiString;
Signer: TPDFlibExternalDigestSignEvent; Sender: TObject;
SignProcessID, SignatureAlgorithm, SignatureReserveBytes: Integer): TPDFlibSignerResult;
Function GetCertificateDER: AnsiString;
Procedure SetPrivateKeyUI(AllowUI: Boolean);
Procedure SetRSAPSSPadding(Enable: Boolean);
Function CertificateKeyUsage: Integer;
Function EstimateSignatureSize(Const Data, SubFilter: AnsiString;
DigestAlgorithm: TPDFlibDigestAlgorithm;
Const CommitmentTypeDER, SignaturePolicyDER, RevocationInfoDER: AnsiString): Integer;
Function EstimateCertificateChainSize: Integer;
Function SignData(Const Data, SubFilter: AnsiString; DigestAlgorithm: TPDFlibDigestAlgorithm;
Const CommitmentTypeDER, SignaturePolicyDER, RevocationInfoDER: AnsiString): AnsiString;
End;Methoden
| Open | Laadt een PFX- of PKCS#12-bestand met zijn wachtwoord; UseMachineKeyset kiest de machinesleutelset |
|---|---|
| OpenFromStore | Zoekt een certificaat in een Windows-systeemstore op basis van de Subject simple weergavenaam en bindt diens context; het eerste certificaat met een bruikbare privésleutel wint |
| EnumerateStore | Vult de door de aanroeper geleverde array met één TPDFlibCertificateInfo per store-certificaat en geeft het werkelijk gevulde aantal terug |
| OpenFromContext | Bindt een extern verkregen PCCERT_CONTEXT; de aanroeper blijft eigenaar en moet de context geldig houden tot de ondertekening voltooid is |
| OpenEd25519, OpenEd25519FromFile | Bindt een Ed25519-certificaat en seed uit geheugen of uit bestanden |
| OpenCNGKey, OpenCNGKeyHandle | Bindt een CNG-ondersteunde sleutel op provider en sleutelnaam, of op een bestaand sleutelhandle |
| OpenExternalDigestSigner | Ondertekent via de TPDFlibExternalDigestSignEvent-callback in plaats van een lokale privésleutel |
| GetCertificateDER | Het gebonden certificaat in DER-vorm |
| SetPrivateKeyUI | Staat de CryptoAPI-privésleutelprompt toe of onderdrukt die |
| SetRSAPSSPadding | Kiest RSASSA-PSS-padding voor losse RSA-handtekeningen; oudere CryptoAPI-sleutels blijven bij PKCS#1 v1.5 |
| CertificateKeyUsage | De X.509 key-usage-bits verpakt als twee bytes, of -1 wanneer er geen context is gebonden |
| EstimateSignatureSize, EstimateCertificateChainSize | Bovengrenzen voor de CMS-uitvoer en de certificaatketen |
| SignData | Maakt de losse CMS-handtekening voor de data met de gekozen subfilter en digest-algoritme |
Opmerkingen
Alle open-methoden geven TPDFlibSignerResult terug, zodat een mislukte identiteitsbinding precies kan worden gemeld
De façade bereikt dezelfde identiteiten via SetSignProcessPFXFromFile, SetSignProcessCertFromStore, SetSignProcessEd25519Identity en SetSignProcessCNGKey
Zie ook
TPDFlibSignerResult, TPDFlibCertificateInfo, TPDFlibSigner, TPDFlibSignDoc, NewSignProcessFromFile