GetSignatureModificationVerdict

Цифровые подписи

Описание

Сообщает, были ли дописки после подписи из числа разрешённых уровнем сертификации документа

Синтаксис

Delphi

Function TPDFlib.GetSignatureModificationVerdict(Const InputFile, Password, FieldName: WideString): Integer;

Параметры

InputFileThe signed document.
PasswordПароль для открытия документа или пустая строка
FieldNameОцениваемое поле подписи

Возвращаемые значения

1После подписи ничего не дописано
2Дописаны только изменения, которые разрешает уровень сертификации
3Дописано то, что уровень не разрешает
4Ответ определить не удалось
5Подпись не заканчивается на границе ревизии — байты лежат внутри заявленного ею диапазона
0Файл или поле не удалось прочитать

Примечания

ISO 32000-1 §12.8.2.2 дает сертифицирующей подписи уровень прав: 1 не разрешает никаких последующих изменений, 2 дополнительно разрешает заполнение полей форм и подписание, 3 также разрешает аннотации. Материал валидации и метки времени документа разрешены на каждом уровне, поэтому перевод подписи на долгосрочную валидацию никогда не выглядит как порча

A result of 4 is not approval. It is returned when a certification's own structure could not be verified, when a field lock is present and which fields the later updates touched cannot be traced, when a later revision holds something that could not be read, and when the file carries bytes past the signed range that form no recognisable revision. In each of those cases something material is unknown, and treating it as permitted would be the wrong way to be wrong.

GetSignatureModificationDetail называет ревизию и тип изменения за ответом, а GetSignatureEffectiveMDPLevel сообщает примененный уровень

Пример

case PDF.GetSignatureModificationVerdict('signed.pdf', '', 'Signature1') of
  1, 2: ShowMessage('the signature still covers the document');
  3:    ShowMessage('not allowed: '+ PDF.GetSignatureModificationDetail);
else
  ShowMessage('undetermined: '+ PDF.GetSignatureModificationDetail);
end;

См. также

GetSignatureEffectiveMDPLevel, GetSignatureModificationDetail, GetSignatureRevisionIndex, GetDocumentRevisionKind