TPDFlibPFXFile

Security and Signatures

Beskrivelse

TPDFlibPFXFile holder signeringsidentiteten, der bruges til at producere en fristående PKCS#7-signatur

Identiteten kan komme fra en PFX-fil, en post i et Windows-systemcertifikatlager opløst ved dets simple visningsnavn, en eksternt duplikeret PCCERT_CONTEXT, et Ed25519-nøglepar, en CNG-nøgle eller et eksternt digest-callback

Når en identitet er bundet, producerer SignData CMS-signaturbytes, og estimeringshjælperne dimensionerer /Contents-reservationen, før signaturen skrives

SigningWorkbench-demoen åbner en PFX med denne klasse, før identiteten gives videre til signeringspipelinen

Syntaks

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;

Metoder

OpenIndlæser en PFX- eller PKCS#12-fil med dens adgangskode; UseMachineKeyset vælger maskinens nøglesæt
OpenFromStoreFinder et certifikat i et Windows-systemlager via Subject simple visningsnavn og binder dets kontekst; det første certifikat med en brugbar privat nøgle vinder
EnumerateStoreUdfylder det af kalderen leverede array med én TPDFlibCertificateInfo pr. lagercertifikat og returnerer det faktisk udfyldte antal
OpenFromContextBinder en eksternt fremskaffet PCCERT_CONTEXT; kalderen beholder ejerskabet og skal holde konteksten gyldig, indtil signeringen er fuldført
OpenEd25519, OpenEd25519FromFileBinder et Ed25519-certifikat og seed fra hukommelsen eller fra filer
OpenCNGKey, OpenCNGKeyHandleBinder en CNG-baseret nøgle via provider og nøglenavn eller via et eksisterende nøglehandle
OpenExternalDigestSignerSignerer via TPDFlibExternalDigestSignEvent-callbacket i stedet for en lokal privat nøgle
GetCertificateDERDet bundne certifikat i DER-form
SetPrivateKeyUITillader eller undertrykker CryptoAPI-adgangskodeprompten for den private nøgle
SetRSAPSSPaddingVælger RSASSA-PSS-padding til fristående RSA-signaturer; ældre CryptoAPI-nøgler beholder PKCS#1 v1.5
CertificateKeyUsageX.509 key-usage-bittene pakket som to bytes, eller -1 når ingen kontekst er bundet
EstimateSignatureSize, EstimateCertificateChainSizeØvre grænser for CMS-outputtet og certifikatkæden
SignDataProducerer den fristående CMS-signatur for dataene med den valgte subfilter- og digest-algoritme

Bemærkninger

Alle open-metoder returnerer TPDFlibSignerResult, så en mislykket identitetsbinding kan rapporteres præcist

Facaden når de samme identiteter via SetSignProcessPFXFromFile, SetSignProcessCertFromStore, SetSignProcessEd25519Identity og SetSignProcessCNGKey

Se også

TPDFlibSignerResult, TPDFlibCertificateInfo, TPDFlibSigner, TPDFlibSignDoc, NewSignProcessFromFile