TPDFlibSigner

Security and Signatures

الوصف

TPDFlibSigner هو محرك التوقيع المستقل الذي يقرن هدف TPDFlibSignDoc بهوية TPDFlibPFXFile ويكتب التوقيع المكتمل كإصدار تزايدي جديد

افتح PDF من ملف أو تدفق أو سلسلة، واربط الهوية بإحدى دوال الفتح، واختر الحقل الهدف، واضبط التوقيع، ثم أنهِ بـ AppendToFile أو AppendToStream أو ApplySignature

تغطي الفئة حزمة ميزات التوقيع كاملة: اختيار الخلاصة، وحجز المحتوى وتقديره، ومعلومات الإبطال، وأنواع الالتزام، وسياسات التوقيع، والإثباتات القانونية، ومستويات مصادقة DocMDP، وأقفال الحقول، وأختام وقت المستند، وتوقيعات مرور (passthrough) بطول ثابت

تعرض الواجهة الرابطة الخط نفسه عبر دوال SignProcess الموثقة؛ استخدم هذه الفئة مباشرة عندما يلزم تضمين مسار التوقيع في كاتب إصدارات مخصص أكبر

الصيغة

Delphi

TPDFlibSigner = Class
  Public
    Constructor Create;
    Destructor Destroy; Override;
    Function OpenPDF(Const FileName: WideString; Const Password: WideString): TPDFlibSignerResult;
    Function OpenPDFStream(SourceStream: TStream; Const Password: WideString): TPDFlibSignerResult;
    Function OpenPDFString(Const SourceString: AnsiString; Const Password: WideString): TPDFlibSignerResult;
    Function OpenPFX(Const FileName: WideString; Const Password: AnsiString; UseMachineKeyset: Boolean): TPDFlibSignerResult;
    Function OpenCertStore(Const StoreName, CertName: WideString; UseMachineStore: Boolean): TPDFlibSignerResult;
    Function OpenCertContext(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;
    Procedure SetPrivateKeyUI(AllowUI: Boolean);
    Procedure SetRSAPSSPadding(Enable: Boolean);
    Procedure SetLegalAttestation(Const Value: WideString);
    Procedure SelectField(Const FieldName: WideString; FieldPage: Integer);
    Procedure SetSignatureProperty(SignatureProperty: TPDFlibSignatureProperty; Const NewValue: AnsiString);
    Procedure SetAppearanceText(Const Text: WideString; FontSize, FontRed, FontGreen, FontBlue: Double);
    Procedure SetSignatureBounds(Left, Top, Width, Height: Double);
    Procedure SetPassthrough(SignatureLength: Integer);
    Procedure SetDocTimeStamp(SignatureLength: Integer);
    Procedure SetDigestAlgorithm(Algorithm: TPDFlibDigestAlgorithm);
    Procedure SetContentsReserveBytes(ExtraBytes: Integer);
    Procedure SetContentsEstimate(ChainBytes, CRLBytes, OCSPBytes, TimeStampBytes, SafetyMarginPercent: Integer);
    Procedure SetRevocationInfo(Const RevocationInfoDER: AnsiString);
    Procedure SetCommitmentType(CommitmentType: Integer);
    Procedure SetDocMDP(Level: Integer);
    Function SetFieldLock(Const Action: AnsiString; Const Fields: TArray): Boolean;
    Procedure SetSignaturePolicy(Const PolicyOID: AnsiString; Const PolicyHashBytes: AnsiString; HashAlgorithm: TPDFlibDigestAlgorithm);
    Function AppendToFile(Const FileName: WideString): Boolean;
    Function AppendToStream(TargetStream: TStream): Boolean;
    Function ApplySignature: Boolean;
    Function GetByteRange(Index: Integer): Int64;
    Function GetEstimatedContentsBytes: Integer;
    Procedure SetInPlace;
    Property IsDocTimeStamp: Boolean Read FIsDocTimeStamp;
  End;

الطرق

OpenPDF, OpenPDFStream, OpenPDFStringتفتح المستند المطلوب توقيعه من ملف أو تدفق أو سلسلة ANSI
OpenPFX, OpenCertStore, OpenCertContextتربط ملف PFX أو شهادة من مخزن النظام باسمها الظاهر أو سياق شهادة خارجيًا
OpenEd25519, OpenEd25519FromFileتربط زوج مفاتيح Ed25519 من الذاكرة أو من ملفات
OpenCNGKey, OpenCNGKeyHandleتربط مفتاح CNG بالموفر واسم المفتاح، أو بمقبض المفتاح
OpenExternalDigestSignerتفوّض توقيع الخلاصة إلى نداء خارجي
SelectFieldتختار حقل التوقيع بالاسم المؤهل الكامل والصفحة
SetSignaturePropertyتضبط إحدى قيم spReason وspLocation وspContactInfo وspFieldImage وspSubFilter وspFieldImageOptions
SetAppearanceTextتخزن كتلة النص المرئية المولدة تلقائيًا التي تُكتب في مظهر الحقل وقت الإلحاق
SetSignatureBoundsتضع الحقل بإحداثيات صريحة
SetPassthroughتُنتج توقيع مرور بطول مطابق تمامًا للمعطى للتوقيع الخارجي
SetDocTimeStampتحوّل التوقيع إلى ختم وقت للمستند
SetDigestAlgorithmتختار الخلاصة المستخدمة للتوقيع
SetContentsReserveBytes, SetContentsEstimateتحجز بايتات إضافية أو تحسب الحجز من تقديرات السلسلة وCRL وOCSP والختم الزمني مع هامش أمان
SetRevocationInfoتضمّن بيانات إبطال مجمّعة مسبقًا بصيغة DER
SetCommitmentType, SetSignaturePolicy, SetLegalAttestationتعلن نية التوقيع والسياسة والإثبات القانوني
SetDocMDPتُفعّل توقيع مصادق عند مستوى DocMDP من 1 أو 2 أو 3؛ ويجب استدعاؤها قبل SelectField
SetFieldLockتكتب قاموس قفل حقل بإجراء وقائمة أسماء حقول
AppendToFile, AppendToStreamتكتب الإصدار الموقّع في ملف أو تدفق جديد
ApplySignatureتطبّق التوقيع على المستند في مكانه
GetByteRange, GetEstimatedContentsBytesتقرأ مدخل ByteRange وحجم المحتويات المقدر بعد بناء الإصدار
SetInPlaceتعلّم الإصدار كتحديث في مكان للمستند المفتوح

المعاملات

IsDocTimeStampTrue عندما ينتج الواقِع ختم وقت للمستند

ملاحظات

تُعيد كل دالة فتح قيمة TPDFlibSignerResult

تُساق مستويات DocMDP إلى قيمة التحويل P في ISO 32000: 1 بلا تغييرات، 2 تعبئة نماذج، 3 تعليقات؛ وعندما تكون غير صفريّة يضُبط بت AppendOnly في /SigFlags داخل AcroForm ليفرض العارضون المصادقة

انظر أيضًا

TPDFlibSignDoc, TPDFlibPFXFile, TPDFlibSignerResult, NewSignProcessFromFile, SetSignProcessDocMDP