TPDFlibCSCClient
الأمان والتواقيع
الوصف
يوفر عميلًا متزامنًا لنقاط نهاية بيانات اعتماد والتخويل وتوقيع الملخص في Cloud Signature Consortium
يجلب العميل شهادة التوقيع وOIDs الخوارزميات المدعومة من credentials/info ويحصل على بيانات تفعيل التوقيع من credentials/authorize ويرسل ملخصًا واحدًا أو أكثر حُسب سلفًا إلى signatures/signHash
استدعِ Reset على حدة عندما ينبغي التخلص من الحالة والموارد المسجلة معًا
الوحدة
PDFlibCSCConstruction
Constructor TPDFlibCSCClient.Create;
Destructor TPDFlibCSCClient.Destroy;اكتشاف بيانات الاعتماد
Function TPDFlibCSCClient.RefreshCredentialInfo: Boolean;
Function TPDFlibCSCClient.SupportsAlgorithm(DigestAlgorithm, SignatureAlgorithm: Integer): Boolean;
Function TPDFlibCSCClient.GetCertificateChainDER(Index: Integer): AnsiString;
Function TPDFlibCSCClient.GetSupportedAlgorithmOID(Index: Integer): AnsiString;
Procedure TPDFlibCSCClient.ClearCredentialInfo;RefreshCredentialInfo
ResourceType هو Font أو XObject أو ColorSpace أو Pattern أو Shading أو ExtGState أو Properties. ويجب أن يحدد رقم الكائن والجيل كائنًا غير مباشر قائمًا في المستند المحدد
Signing
Function TPDFlibCSCClient.Authorize(NumSignatures: Integer; Const Digests: TPDFlibCSCByteArray; Const PIN, OTP, Description, ClientData: WideString; Out SAD: AnsiString): Boolean;
Function TPDFlibCSCClient.PrefetchAuthorization(NumSignatures: Integer; Const Digests: TPDFlibCSCByteArray; Const PIN, OTP, Description, ClientData: WideString): Boolean;
Function TPDFlibCSCClient.SetPrefetchedSAD(Const SAD: AnsiString; ExpiresInSeconds: Integer; Const PinnedDigests: TPDFlibCSCByteArray): Boolean;
Procedure TPDFlibCSCClient.ClearSAD;
Procedure TPDFlibCSCClient.ClearAuthorizationSecrets;يجب أن يستخدم كل ملخص في دفعة الخوارزمية نفسها وأن يكون بالطول الدقيق الذي يفرضه HashPinningRequired=Trueيدعم NumSignatures
يفحص SAD المجلب مسبقًا من حيث الانتهاء وربط البصمة ويستهلك مرة واحدة بالضبط
التوقيع
Function TPDFlibCSCClient.SignHashes(Const Digests: TPDFlibCSCByteArray; DigestAlgorithm, SignatureAlgorithm: Integer; Const SAD: AnsiString; Out Signatures: TPDFlibCSCByteArray): Boolean;
Function TPDFlibCSCClient.SignAuthorizedHashes(Const Digests: TPDFlibCSCByteArray; DigestAlgorithm, SignatureAlgorithm: Integer; Out Signatures: TPDFlibCSCByteArray): Boolean;
Function TPDFlibCSCClient.SignDigest(Sender: TObject; SignProcessID: Integer; Const Digest: AnsiString; DigestAlgorithm, SignatureAlgorithm: Integer; Var Signature: AnsiString): Boolean;DigestAlgorithm
SignatureAlgorithm and PDF_EXTERNAL_SIGNATURE_RSA_PKCS1PDF_EXTERNAL_SIGNATURE_ECDSA_DER
المعاملات
| ServiceURL | عنوان URL لخدمة الأساس قبل /csc/<version> |
|---|---|
| APIVersion | مقطع إصدار نقطة النهاية، الافتراضي v1 |
| CredentialID | معرف بيانات اعتماد معرف من المورّد |
| OAuthToken | رمز حامل للكتابة فقط يُضاف إلى كل طلب نقل افتراضي |
| TimeoutMS | مهلة الطلب، الافتراضي 300000 مللي ثانية |
| MaxResponseBytes | أقصى حجم استجابة مقبول، الافتراضي 8 MiB |
| ClientData | قيمة معرفة من المورّد اختيارية تُرسل مع طلبات التوقيع |
| AuthorizationPIN | رمز PIN للكتابة فقط يستخدمه تخويل رد النداء التلقائي |
| AuthorizationOTP | كلمة مرور أحادية الاستخدام للكتابة فقط تمسح بعد تخويل رد النداء |
| AuthorizationDescription | وصف اختياري يستخدمه تخويل رد النداء التلقائي |
| OnTransport | رد نداء نقل اختياري لـ mTLS أو وسيط أو تكامل مورّد أو اختبار حتمي |
خصائص الحالة
Associated يساوي 0 أو 1عند الإضافة،
مثال
var
CSC: TPDFlibCSCClient;
ProcessID: Integer;
begin
CSC:= TPDFlibCSCClient.Create;
try
CSC.ServiceURL:= 'https://sign.example.com';
CSC.CredentialID:= 'account/signing-key';
CSC.OAuthToken:= AccessToken;
CSC.AuthorizationPIN:= UserPIN;
CSC.AuthorizationOTP:= CurrentOTP;
if not CSC.RefreshCredentialInfo then
raise Exception.Create(String(CSC.LastError));
PDF.OnExternalDigestSign:= CSC.SignDigest;
ProcessID:= PDF.NewSignProcessFromFile(InputFile, '');
PDF.SetSignProcessField(ProcessID, 'Approval');
PDF.SetSignProcessDigestAlgorithm(ProcessID, 2);
PDF.SetSignProcessExternalDigestSigner(ProcessID,
CSC.SigningCertificateDER, PDF_EXTERNAL_SIGNATURE_RSA_PKCS1, 512);
PDF.EndSignProcessToFile(ProcessID, OutputFile);
finally
CSC.Free;
end;
end;سلوك الفشل
تُرجع التوابع False وتضبط LastError عند فشل التحقق من التهيئة أو النقل أو JSON أو Base64 أو X.509 أو الخوارزمية أو الدفعة أو التفعيل أو عدد الاستجاباتيتحقق مسار توقيع الملخص الخارجي بشكل مستقل كل توقيع خام مُرجع مقابل
ResetAbort قبل عملية أخرى
انظر أيضًا
OnExternalDigestSign, SetSignProcessExternalDigestSigner, SetSignProcessDigestAlgorithm