PDFium Delphi Component Docs

Метод ValidatePades

Компонент: TPdf  ·  Модул: PDFium
Проверява PAdES структурите в оригиналните байтове на PDF източника и докладва структурна съответност, целостност на detached CMS, обвързване на сертификата и независими състояния на доверие

Синтаксис

function ValidatePades: TPadesValidationResult;

Описание

Анализира вградените подписващи речници от оригиналните заредени байтове, проверява структурата им за съответствие с PAdES baseline и държи офсетите на подписите отделно от разширения object-stream изглед, използван за справка в каталога и DSS

Задължителните записи на подписа се броят само на най-горното ниво на речника, така че дублирани ключове Contents, ByteRange, SubFilter, Filter или Type не могат да бъдат скрити от избрани от парсера стойности, докато едноименни ключове във вложени речници и масиви остават независими

Откриването на подписи използва линеално лексикално сканиране, което прескача телата на потоци, низове, шестнадесетични стойности и коментари, декодира name екейпванията #xx и не зависи от това дали вложен речник се появява преди или след записите на подписа

Изключваният интервал на /ByteRange трябва да съвпада с пълния директен шестнадесетичен токен /Contents, включително разделителите му, а всяко покрито издание трябва да завършва на пълна граница на PDF ревизия

На Windows обикновените detached CMS подписи се проверяват директно срещу двата оригинални сегмента на /ByteRange, включително CMS signed атрибутите, криптографската стойност на подписа и обвързването SHA-256 signing-certificate-v2

Всеки подписващ получава и профил на алгоритмите, анализиран от CMS и X.509 идентификатори, с проверки по ISO/TS 32002 за поддържаните NIST и Brainpool криви, Ed25519, Ed448, съответствие на digest стойностите, параметри на именувани криви и дължина на изхода на SHAKE256

Забележки

Пример

var
  Res: TPadesValidationResult;
begin
  if not Pdf1.Active then Exit;
  Res := Pdf1.ValidatePades;
  if Res.IsCryptographicallyValid then
    ShowMessage('PAdES signature integrity passed');
end;

Виж също

SignPades PadesCryptoAvailable