ATick for Java#

_images/green_tick.png

Sign PDFs with confidence

ATick for Java is the standalone PDF digital-signature library for the JVM — PAdES & CMS signing, deferred / remote-key signing and a green-tick appearance Adobe shows as valid, in one Maven dependency.

import io.github.aniketc068.atick.Atick;
import java.nio.file.*;

byte[] pdf = Files.readAllBytes(Paths.get("doc.pdf"));
byte[] pfx = Files.readAllBytes(Paths.get("my.pfx"));

byte[] signed = Atick.signPfx(pdf, pfx,
    "{\"password\":\"••••\",\"cn\":\"Aniket Chaturvedi\",\"reason\":\"Approved\","
  + "\"green_tick\":true,\"page\":1,\"rect\":[300,55,575,175],"
  + "\"pades\":true,\"timestamp\":true,\"ltv\":true}");   // PAdES-B-LT

Files.write(Paths.get("signed.pdf"), signed);

Everything you need to sign PDFs#

Sign anywhere

PFX/P12 or PEM files directly, and USB tokens / smart-cards / HSMs / the Windows store via the deferred flow and your own JCA provider — one consistent API.

Full PAdES

B-B, B-T, B-LT, B-LTA with RFC-3161 timestamps and long-term validation — recognised by Adobe Acrobat as “PAdES Signature Level”.

Deferred / eSign

Two-step prepare → external CMS → embed for remote keys (eSign ESP, HSM, token) — the InputHash is just the SHA-256 of the bytes-to-sign.

Rich appearance

Logo or CN-on-the-left, the validity mark (? / green tick), distinguished name, custom text, invisible signatures, any date format.

Trust & control

Certification (DocMDP), field-locking (FieldMDP), pre-sign expiry / CRL / OCSP checks, password protection and metadata.

Built for scale

A revocation cache speeds up batch signing, multi-signatory documents stay valid, and every error is a clean Java exception.


The green tick your readers trust#

ATick draws a verified-signature appearance with a green tick. When the certificate is valid and trusted, Adobe Reader / Acrobat shows “Signed and all signatures are valid.” — the reassurance every signed document needs.

Adobe Reader — signed and all signatures are valid, with the ATick green tick

Why ATick#

ATick for Java

External services

none — the crypto, PKCS#12/PEM, image decode, timestamping and LTV are all built into the engine

Install

one Maven dependency io.github.aniketc068:atick (JNA + native engine included)

Build step

pure Java — no JNI, no C compiler, no native build on your side

Platforms

Windows (64/32-bit), Linux and macOS — one cross-platform artifact

Errors

every failure is a Java Atick.AtickException you can catch