네이티브 Linux 서명 워크플로
버전 지정 콜백 ABI는 로드된 문서나 명시적 입력 콜백에 대해 schemaVersion 1 sign 잡을 실행합니다. 원본 소스 리비전, 문서 ID, 인증된 AES-256 R5/R6 정책이 유지됩니다
서명 신원
certificatePEM과 privateKeyPEM을 공급하거나, 정규 패딩된 pfxBase64와 pfxPassword를 공급하세요. 두 신원 형태를 섞는 것은 무효입니다
password는 명시적 PDF 입력을 인증합니다. 로드된 컨텍스트는 자기 PDF 비밀번호를 유지하고, 별도의 PFX 비밀번호가 서명 컨테이너를 인증합니다
PFX 디코딩은 OpenSSL이 제한된 컨테이너를 파싱하기 전에 알파벳, 패딩, 미사용 비트를 검사합니다. 개인 신원 버퍼는 연산 후 지워집니다
서명 필드와 appearance
field는 기존의 서명되지 않은 서명 필드를 선택합니다. createField: true를 설정하면 0 기반 page에 완전한 자격의 새 필드 이름을 만듭니다
새 필드 좌표는 PDF 사용자 공간을 씁니다. left, bottom, right, top 기본값은 36, 36, 240, 108입니다. 기존 이름은 다시 만들 수 없습니다
선택적 caption은 임베드된 TrueType 폰트, ToUnicode 매핑, 네이티브 복잡 스크립트 셰이핑으로 명시적 Unicode appearance를 만듭니다. fontFamily 기본값은 DejaVu Sans, fontSize 기본값은 12입니다
프로파일과 인증
cades는 ETSI.CAdES.detached를 선택합니다. trustedCAFile은 서명 시점 신뢰 검증을 위한 명시적 CA 정책을 공급하고, reservedCMSBytes 기본값은 16384입니다
certificationPermission은 승인 서명이면 0, 첫 문서 인증 서명이면 1, 2, 3입니다. 라이터는 매칭되는 DocMDP transform과 카탈로그 권한 바인딩을 만듭니다
사용자 비밀번호 권한 제한, 읽기 전용 필드, 기존 서명, 인증 제약은 네이티브 문서 서명 정책으로 계속 강제됩니다
트랜잭션 발행
이식 가능한 Pascal TimestampToFile API는 PDF ByteRange 위에 ETSI.RFC3161로 독립적인 DocTimeStamp를 만듭니다. ESIC 선언, 명시적 TSA 신뢰와 CRL 정책, 인증된 DocMDP/FieldMDP 타임스탬프 예외를 포함합니다
이 문서 타임스탬프 진입점은 Pascal API입니다. 아래의 ABI 타임스탬프 콜백은 기존 sign 잡에 서명 타임스탬프를 공급합니다
확장 ABI 타임스탬프 전송은 동기적인 호출자 소유 콜백으로 실제 RFC 3161 응답을 공급합니다. 제한된 응답 바이트, 공유 취소, 명시적 TSA 신뢰/폐기 정책을 씁니다
출력과 결과 콜백은 완전히 준비된 서명을 받습니다. 콜백 발행 전에 ABI는 후보를 다시 로드해 서명된 문서 컨텍스트를 검증합니다
성공적인 발행만 로드된 컨텍스트를 교체합니다. 무효한 신원, 필드 생성, 예산, 취소, 콜백 실패는 이전 문서와 그 필드 트리를 보존합니다
출력 콜백은 호출자 소유이므로 이후 콜백이 실패할 때 이미 바이트를 소비했을 수 있습니다. 외부 롤백이 필요한 호출자는 그 바이트를 직접 스테이징해야 합니다
인수 검증
Linux FPC 3.2.2와 3.3.1은 각각 270개의 실제 ctypes 검증, 228개의 독립적인 PDF/이미지/보안/CMS 검사, 33개의 C ABI 검증, 80개의 동시 공유 핸들 연산을 통과합니다
독립 검사는 AES ID/보안 정책을 인증하고, OpenSSL로 CMS와 CAdES를 검증하고, 변조된 콘텐츠를 거부하고, 인증 transform과 임베드된 appearance 폰트를 검사하며, 실제 보이는 서명 픽셀을 확인합니다