PLBuildModernDetachedCMS
التشفير، التواقيع الرقمية
الوصف
يبني SignedData منفصلًا في CMS حول تواقيع RSA أو ECDSA أو Ed25519 للخوارزميات التي لا تستطيع طبقة رسائل CryptoAPI في Windows التعبير عنها
تدخل شهادة الموقّع وسياق سلسلتها، وخوارزمية الملخص، وتشفيرات DER لنوع الالتزام وسياسة التواقيع، ومواد الإبطال، وسياسة الحشو، كلها عبر المعاملات، بينما توفر CNG NCrypt أو callback توقيع ملخص خارجي أو مسار Ed25519 بـ Pascal الخالص التوقيع الخام
الصيغة
Delphi
Function PLBuildModernDetachedCMS(CertContext: Pointer;
Const CertificateDER, Ed25519Seed, Data, SubFilter: AnsiString;
DigestAlgorithm: Integer; Const CommitmentTypeDER,
SignaturePolicyDER: AnsiString; NCryptKeyHandle: TPLIntPtr= 0;
AllowPrivateKeyUI: Boolean= False;
ExternalSigner: TPDFlibExternalDigestSignEvent= Nil;
ExternalSender: TObject= Nil; ExternalSignProcessID: Integer= 0;
ExternalSignatureAlgorithm: Integer= 0;
RSAPSSPadding: Boolean= False;
Const RevocationInfoDER: AnsiString= ''): AnsiString;المعاملات
| CertContext | مقبض CERT_CONTEXT في Windows لشهادة التوقيع؛ وNil لمسار الموقّع الخارجي الخالص |
|---|---|
| CertificateDER | شهادة التوقيع بترميز DER، تُستخدم للشهادة المضمّنة ومراجع المُصدر/الرقم التسلسلي |
| Ed25519Seed | بذرة 32 بايت عند توقيع Ed25519 دون CNG، وإلا فسلسلة فارغة |
| Data | بايتات المدى المجزَّأ مسبقًا التي يغطيها التوقيع المنفصل |
| SubFilter | /SubFilter الهدف مثل /ETSI.CAdES.detached الذي يقود اختيار السمات |
| DigestAlgorithm | رقم خوارزمية الملخص المطابق لـ Ord(TPDFlibDigestAlgorithm): و2 لـ SHA-256، و3 لـ SHA-384، و4 لـ SHA-512، ومن 5 إلى 7 لعائلة SHA-3 |
| CommitmentTypeDER | سمة نوع الالتزام بترميز DER، وفارغة عند غيابها |
| SignaturePolicyDER | معرّف سياسة التواقيع بترميز DER، وفارغ عند غيابه |
| NCryptKeyHandle | مقبض مفتاح CNG مفتوح؛ القيمة 0 تدع الدالة تفتح مفتاح الشهادة الخاص بنفسها مع إمكانية عرض واجهة المستخدم |
| AllowPrivateKeyUI | يسمح بحوار اكتساب مفتاح CNG حين يتطلب المفتاح حضور المستخدم |
| ExternalSigner | callback يستقبل الملخص ويعيد التوقيع الخام، لأجل HSM أو التوقيع البعيد |
| ExternalSender | المرسِل الذي يمرَّر عائدًا إلى callback الموقّع الخارجي |
| ExternalSignProcessID | معرّف عملية التوقيع الذي يمرَّر عائدًا إلى الـ callback |
| ExternalSignatureAlgorithm | إحدى القيم PL_EXTERNAL_SIGNATURE_RSA_PKCS1 أو PL_EXTERNAL_SIGNATURE_ECDSA_DER أو PL_EXTERNAL_SIGNATURE_ECDSA_P1363 |
| RSAPSSPadding | يختار حشو RSASSA-PSS لتواقيع RSA |
| RevocationInfoDER | معلومات إبطال مجموعة مسبقًا تُضمَّن بصفتها RevocationInfoChoices |
قيمة الإرجاع
CMS المنفصل بترميز DER، أو سلسلة فارغة عند فشل أي خطوة توقيع
ملاحظات
هذه الدالة هي المحرك خلف مسارات التواقيع الحديثة لعملية التوقيع؛ واستدعاؤها مباشرة يبقي السيطرة الكاملة على سمات الالتزام والسياسة، بينما تنزل البايتات العائدة في حفرة /Contents في PDF كما هو الحال مع بيانات يتحقق منها PLIsModernDetachedCMS
انظر أيضًا
PLVerifyModernDetachedCMS, PLIsModernDetachedCMS, PLModernSignatureSizeEstimate, TPDFlibExternalDigestSignEvent, SetSignProcessExternalDigestSigner