TPDFlibPFXFile
Security and Signatures
Popis
TPDFlibPFXFile drží podpisovou identitu použitou k vytvoření odděleného podpisu PKCS#7
Identita může pocházet ze souboru PFX, položky systémového úložiště certifikátů Windows vyřešené podle jednoduchého zobrazovaného názvu, zvenku zdvojeného PCCERT_CONTEXT, páru klíčů Ed25519, klíče CNG nebo externího callbacku výpočtu digestu
Jakmile je identita svázána, SignData vyrábí bajty podpisu CMS a pomocné odhadové funkce rozměří rezervaci /Contents dřív, než se podpis zapíše
Ukázka SigningWorkbench otevírá PFX touto třídou, než předá identitu podpisovému pipeline
Syntaxe
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;Metody
| Open | Načte soubor PFX nebo PKCS#12 s heslem; UseMachineKeyset vybere sadu klíčů počítače |
|---|---|
| OpenFromStore | Najde certifikát v systémovém úložišti Windows podle jednoduchého zobrazovaného názvu subjektu a sváže jeho kontext; vyhrává první certifikát s použitelným soukromým klíčem |
| EnumerateStore | Naplní dodané pole prvky TPDFlibCertificateInfo po jednom za každý certifikát úložiště a vrátí skutečně naplněný počet |
| OpenFromContext | Sváže externě obstaraný PCCERT_CONTEXT; vlastnictví zůstává u volajícího a kontext musí zůstat platný, dokud podepsání nedoběhne |
| OpenEd25519, OpenEd25519FromFile | Sváže certifikát a seed Ed25519 z paměti nebo ze souborů |
| OpenCNGKey, OpenCNGKeyHandle | Sváže klíč nad stavbou CNG podle providera a názvu klíče nebo podle existujícího handle klíče |
| OpenExternalDigestSigner | Podepisuje přes callback TPDFlibExternalDigestSignEvent místo lokálního soukromého klíče |
| GetCertificateDER | Svázaný certifikát ve formě DER |
| SetPrivateKeyUI | Povolí nebo potlačí dotaz CryptoAPI na soukromý klíč |
| SetRSAPSSPadding | Volí padding RSASSA-PSS pro oddělené podpisy RSA; zastaralé klíče CryptoAPI zůstávají u PKCS#1 v1.5 |
| CertificateKeyUsage | Bity key usage X.509 zabalené do dvou bajtů, nebo -1, když není svázán žádný kontext |
| EstimateSignatureSize, EstimateCertificateChainSize | Horní meze pro výstup CMS a řetěz certifikátů |
| SignData | Vytvoří oddělený podpis CMS pro data se zvoleným sub-filtrem a digest algoritmem |
Poznámky
Všechny metody otevření vrací TPDFlibSignerResult, takže neúspěšné svázání identity lze nahlásit přesně
Fasada se ke stejným identitám dostane přes SetSignProcessPFXFromFile, SetSignProcessCertFromStore, SetSignProcessEd25519Identity a SetSignProcessCNGKey
Viz také
TPDFlibSignerResult, TPDFlibCertificateInfo, TPDFlibSigner, TPDFlibSignDoc, NewSignProcessFromFile