Some test text!

Hamburger Icon

iOS / Guides / Verify a document

Verify a signature on iOS

Try our web demo for digital signature verification.

We offer a higher-level document-based API for verifying signatures, as well as a lower-level per-signature API.

The simple document API has the following possible return values:

  1. PDFDoc.SignaturesVerificationStatus.e_unsigned: document has no signed signature fields.
  2. PDFDoc.SignaturesVerificationStatus.e_failure: hard failure in verification on at least one signature. This does not include trust issues, because those are flaky due to being network/config-related.
  3. PDFDoc.SignaturesVerificationStatus.e_untrusted: could not verify trust for at least one signature. This code can often be avoided by changing your VerificationOptions (add trusted certificates, enable a different revocation checking mode, etc.).
  4. PDFDoc.SignaturesVerificationStatus.e_unsupported: at least one signature contains features not supported in the current version of the SDK. Please contact us if these features are important to you.
  5. PDFDoc.SignaturesVerificationStatus.e_verified: all signed signatures in document verified. Unsigned signatures get skipped. Parts of the document may be unsigned by any signature.

For further verification-related information, the detailed API, which returns a VerificationResult and is demonstrated in the full code samples, can be used. For example, it is possible to call GetUnsupportedFeatures on VerificationResult to check which unsupported features were encountered (requires verification using 'detailed' APIs). It is also possible to retrieve a DigitalSignatureField object from the VerificationResult for further non-verification-related information. For example, if you would like to make sure that the document is entirely covered by signatures, or to look at a previous revision, the function GetByteRanges is available on DigitalSignatureField for this purpose.

To verify all cryptographic digital signatures in a document using the simple API:

// Open an existing PDF
PTPDFDoc* doc = [[PTPDFDoc alloc] initWithFilepath:in_docpath];

// Choose a security level to use, and change any verification options you wish to change
PTVerificationOptions* opts = [[PTVerificationOptions alloc] initWithLevel:e_ptcompatibility_and_archiving];

// Add trust root to store of trusted certificates contained in VerificationOptions.
[opts AddTrustedCertificate: in_public_key_file_path];
PTSignaturesVerificationStatus result = [doc VerifySignedDigitalSignatures: opts];

Digital signatures
Full code sample which demonstrates using the digital signature API to digitally sign, certify, and/or verify PDF documents.

Get the answers you need: Chat with us