TPDFlibPFXFile
Security and Signatures
Açıklama
TPDFlibPFXFile, ayrık (detached) PKCS#7 imzası üretmekte kullanılan imzalama kimliğini tutar
Kimlik bir PFX dosyasından, basit görüntü adıyla çözülen bir Windows sistem sertifika deposu girdisinden, harici olarak çoğaltılmış bir PCCERT_CONTEXT'ten, bir Ed25519 anahtar çiftinden, bir CNG anahtarından ya da harici bir özet geri çağrısından gelebilir
Kimlik bağlandığında SignData CMS imza baytlarını üretir, tahmin yardımcıları ise imza yazılmadan önce /Contents rezervasyonunun boyutunu hesaplar
SigningWorkbench demosu, kimliği imzalama hattına vermeden önce bu sınıfla bir PFX açar
Sözdizimi
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;Yöntemler
| Open | Bir PFX ya da PKCS#12 dosyasını parolasıyla yükler; UseMachineKeyset makine anahtar kümesini seçer |
|---|---|
| OpenFromStore | Bir sertifikayı Windows sistem deposunda Subject basit görüntü adıyla bulur ve bağlamını bağlar; kullanılabilir özel anahtar taşıyan ilk sertifika kazanır |
| EnumerateStore | Çağıranın verdiği diziyi depodaki her sertifika için bir TPDFlibCertificateInfo ile doldurur ve gerçekte doldurulan sayıyı döndürür |
| OpenFromContext | Harici elde edilmiş bir PCCERT_CONTEXT bağlar; sahiplik çağırandadır ve bağlam, imzalama bitene kadar geçerli kalmalıdır |
| OpenEd25519, OpenEd25519FromFile | Bir Ed25519 sertifikasını ve tohumunu bellekten ya da dosyalardan bağlar |
| OpenCNGKey, OpenCNGKeyHandle | Bir CNG destekli anahtarı sağlayıcı ve anahtar adıyla ya da mevcut bir anahtar tanıtıcısıyla bağlar |
| OpenExternalDigestSigner | Yerel özel anahtar yerine TPDFlibExternalDigestSignEvent geri çağrısı üzerinden imzalar |
| GetCertificateDER | Bağlı sertifikanın DER biçimi |
| SetPrivateKeyUI | CryptoAPI özel anahtar istemini sağlar ya da bastırır |
| SetRSAPSSPadding | RSA ayrık imzaları için RSASSA-PSS dolgusunu seçer; eski CryptoAPI anahtarları PKCS#1 v1.5'te kalır |
| CertificateKeyUsage | İki bayt olarak paketlenmiş X.509 anahtar kullanım bitleri; bağlanmış bir bağlam yoksa -1 |
| EstimateSignatureSize, EstimateCertificateChainSize | CMS çıktısı ve sertifika zinciri için üst sınırlar |
| SignData | Seçilen alt filtre ve özet algoritmasıyla verinin ayrık CMS imzasını üretir |
Açıklamalar
Tüm açık metotları TPDFlibSignerResult döndürür; böylece başarısız bir kimlik bağlaması tam olarak raporlanabilir
Facade aynı kimliklere SetSignProcessPFXFromFile, SetSignProcessCertFromStore, SetSignProcessEd25519Identity ve SetSignProcessCNGKey üzerinden ulaşır
Ayrıca bkz
TPDFlibSignerResult, TPDFlibCertificateInfo, TPDFlibSigner, TPDFlibSignDoc, NewSignProcessFromFile