Sertifika İmzaları ve Alan Kilitleri

HotPDF, sertifika imzalarına ve imzalı alan kilitlerine eklenmiş PDF izin yapılarını oluşturabilir, ardından yüklenen bir belgede aynı yapıları inceleyebilir

Üretici API'si

procedure AddCertificationSignatureField(
  const FieldName: AnsiString;
  Rectangle: TRect;
  Permission: THPDFDocMDPPermission;
  ContentsBytes: Integer = 8192;
  const SubFilter: AnsiString = 'adbe.pkcs7.detached';
  const Reason: AnsiString = '';
  const Location: AnsiString = '';
  const ContactName: AnsiString = '';
  Flags: THPDFFormFieldFlags = []);

procedure ConfigureCertificationSignature(
  const FieldName: AnsiString;
  Permission: THPDFDocMDPPermission);

procedure AttachSignatureFieldLock(
  const FieldName: AnsiString;
  Action: THPDFFieldLockAction;
  const Fields: array of AnsiString);

AddCertificationSignatureField, imzalı yer tutucu oluşturmayı sertifika yapılandırması ile birleştirir

ConfigureCertificationSignature, mevcut oluşturulmuş imzalı yer tutucu içindir ve o alanın bir imza sözlüğü taşıyan ilk alan olmasını gerektirir

Bir belge yalnızca bir sertifika imzası içerebilir, bu nedenle ikinci bir yapılandırma isteği nesne grafiği değiştirilmeden önce reddedilir

Bu API'ler PDF 1.5 çıktısını otomatik olarak görüşür

DocMDP izin düzeyleri

Değer Sertifika izni
dmpNoChangesSertifikadan sonra hiçbir değişikliğe izin verilmez
dmpFormFillAndSignForm doldurma, şabron örnekleme ve imzalama izinlidir
dmpFormFillSignAndAnnotateÖnceki değişikliklere ek olarak ek açıklama oluşturma, silme ve değiştirmeye izin verilir

dmpNone, DocMDP dönüşümü olmayan inceleme sonuçları için ayrılmıştır ve üretici yöntemler tarafından reddedilir

Alan kilidi kapsamları

Değer Fields bağımsız değişkeni İmzalamadan sonraki etki
flaAllBoş olmalıdırHer form alanını kilitler
flaIncludeBir veya daha fazla benzersiz alan adıYalnızca listelenen alanları kilitler
flaExcludeBir veya daha fazla benzersiz alan adıListelenen alanlar dışındaki her alanı kilitler

AttachSignatureFieldLock, boş adları, yinelenen adları, geçersiz eylem değerlerini, uyumsuz bir Fields biçimini, imzasız hedef alanı veya zaten bir kilit ya da FieldMDP ilkesi taşıyan bir alanı reddeder

Yayılan yapı

Delphi örneği

var
  LockedFields: THPDFAnsiStringArray;
begin
  HotPDF.CurrentPage.AddTextField(
    'InternalCode', '', Rect(40, 80, 220, 108));

  HotPDF.CurrentPage.AddCertificationSignatureField(
    'CertSig', Rect(40, 140, 260, 190),
    dmpFormFillAndSign, 8192,
    'adbe.pkcs7.detached', 'Document approval');

  SetLength(LockedFields, 1);
  LockedFields[0] := 'InternalCode';
  HotPDF.CurrentPage.AttachSignatureFieldLock(
    'CertSig', flaInclude, LockedFields);
end;

Yüklenmiş inceleme

function GetLoadedSignaturePermissions(
  SigIndex: Integer;
  out Info: THPDFSignaturePermissionInfo): Boolean;

Okuyucu DocMDP iznini, Catalog bağlantısını, SigFieldLock kapsamını, FieldMDP kapsamını, alan adlarını, yapısal geçerliliği ve bir tanılama sorun dizesini raporlar

Gerekli doğrudan ve dolaylı nesne biçimlerini doğrular ve Catalog /Perms /DocMDP öğesinin aynı imza sözlüğünü hedeflediğini onaylar

Hem SigFieldLock hem de FieldMDP mevcutsa, eylemleri ve alan listeleri aynı olmalıdır

Okuyucu sınırlı sözlük ve dizi incelemesi gerçekleştirir ve JavaScript, eylem veya imza içeriği yürütmez

Doğrulama sınırı

GetLoadedSignaturePermissions yalnızca ilke yapısını raporlar

VerifyLoadedSignature, kriptografik bütünlüğü ayrı olarak raporlamaya devam eder

İki yöntemden hiçbiri, bildirilen DocMDP veya FieldMDP iznine sonraki her artımlı sürümün uyduğunu iddia etmez, çünkü bu sürüm sürüm anlamsal değişiklik analizi gerektirir

Performans

Üretici doğrulaması yalnızca oluşturulmuş AcroForm alanlarını ve küçük imza başvuru dizisini tararken, yüklenmiş inceleme yalnızca seçilen imzayı, kilidini, başvurularını ve Catalog izin girişini okur

Hiçbir sayfa içeriği, görüntü akışı, yazı tipi programı veya ilgisiz dolaylı nesne deşifre edilmez

Ayrıca bkz.