Skip to content

Configuration

bash
php artisan vendor:publish --tag=a1-pdf-sign-config

Every key is a scalar and every one has an env variable or a sensible default. Config\SignetConfigFactory turns them into the engine's own configuration when the container boots, which is where a bad value fails:

a1-pdf-sign.signature.profile is [pades-b-xx], and has to be one of:
legacy, pades-b-b, pades-b-t, pades-b-lt, pades-b-lta

The file holds no objects, so config:cache keeps working. That is an invariant rather than a detail: a config file carrying an enum instance fails to cache, and it fails in your application rather than here, on a command nobody runs until deployment.

Signing

KeyEnvDefault
signature.profileA1_PDF_SIGN_PROFILEpades-b-b
signature.digest_algorithmA1_PDF_SIGN_DIGESTsha256
signature.policyA1_PDF_SIGN_POLICYnone

profile is what a signature is: legacy, pades-b-b, pades-b-t, pades-b-lt, pades-b-lta. What each requires and what it buys is signet-pdf's profile reference.

policy declares an ICP-Brasil signature policy. Naming a family resolves to the version in force, which is the point of naming a family at all:

php
'policy' => 'ad-rt',                      // whichever AD-RT is current
'policy' => '2.16.76.1.7.1.12.1.2',       // that version, specifically
'policy' => [                             // a policy from anywhere else
    'oid' => '…',
    'digest_algorithm' => 'sha256',
    'digest' => '…',
    'uri' => 'https://…',
],

The timestamp authority

KeyEnvDefault
signature.timestamp.urlA1_TSA_URLnone
signature.timestamp.usernameA1_TSA_USERNAMEnone
signature.timestamp.passwordA1_TSA_PASSWORDnone
signature.timestamp.timeout20
signature.timestamp.attempts3
signature.timestamp.backoff200

Required by every profile above pades-b-b. Signing refuses rather than silently producing a lower profile than you asked for.

signature.ltv.* carries the same three numbers for revocation material, and they are deliberately smaller: a timestamp authority failing fails the signature, and a revocation responder failing only means less material is embedded.

Certificates

KeyEnvDefault
certificate.use_path_envA1_PDF_SIGN_USE_PATH_ENVfalse
certificate.legacyA1_PDF_SIGN_LEGACY_CERTIFICATEfalse
certificate.chain_paths[]

legacy adds openssl's -legacy flag, needed to read old PFX files under OpenSSL 3. chain_paths is a set of intermediate certificates, not a sequence: the engine builds the chain from what the files contain rather than trusting the order they are listed in.

The seal

seal.driver, seal.transparent, seal.background, seal.text.x, seal.text.rows, seal.font.path, seal.font.size, seal.font.color.

What each does to the rendered image is signet-pdf's seal reference.

Temporary files

temp_path, A1_PDF_SIGN_TEMP_PATH. Null uses the system temporary directory. A1PdfSign::tempPath() creates it if it is not there, which is what a queued job on a fresh container needs.

Version undefined. Released under the MIT License.