CSC Remote Signature Provider

THPDFCSCSignatureProvider는 기존 THPDFSignatureProvider 계약 위에서 CSC API v2 credentials/info, credentials/authorize, credentials/authorizeCheck, signatures/signHash, signatures/signPolling, signatures/timestamp를 구현합니다

전송과 인가

provider는 HTTP 스택을 직접 고르지 않고 refresh token, client secret, PIN, OTP를 저장하지 않습니다

THPDFCSCTransport은 정확한 메서드, URL, bearer 인가, JSON 본문, 안정 idempotency 키, 시도 번호, operation 식별자, 응답 예산을 받고, THPDFCSCAccessTokenCallback은 수명 짧은 OAuth access token을 공급·갱신합니다

SAD가 필요하면 provider가 자격 증명 메타데이터와 완전한 상한 인증서 체인을 가져오고, THPDFCSCAuthenticationCallback에 검토된 인증 값을 요청하며, SAD를 얻고, 필요하면 비동기 인가 handle을 폴링합니다

서명과 replay 안전

Sign은 CMS 파이프라인의 다이제스트 입력을 받아 다이제스트·서명 OID를 signatures/signHash로 전달하고, 필요하면 DER 인코딩 RSA-PSS 파라미터를 출력합니다

SignHashBatch는 하나의 인가 아래 순서화된 동일 알고리즘 다이제스트 배치를 보내고, 결과 SAD를 정확한 개수, 알고리즘, 파라미터, 다이제스트 바이트에 고정하며, 동기/비동기 결과에서 요청 순서를 유지합니다

다중 다이제스트 호출은 개수가 MaxBatchSignatures와 자격 증명 multisign 값 모두에 맞을 때만 받아들여지고, 응답은 요청한 다이제스트마다 정확히 하나의 서명을 담아야 합니다

일회성 요청은 고정 길이 SHA-256 content-addressed Idempotency-Key를 재사용하고, 상한 operation 캐시는 같은 operation, 자격 증명, 파라미터, 순서화된 다이제스트가 다시 제출되면 이미 완료된 배치의 방어적 사본을 반환합니다

전송 시도가 실패하면 자동 인가된 SAD가 정확한 재시도를 위해 유지되지만, 다른 배치는 그 SAD를 소비할 수 없고 새 인가를 받아야 합니다

예산과 취소

THPDFCSCOptions.Default는 배치 서명, 응답 바이트, 개별 서명, timestamp, 인증서 체인 수·바이트, 재시도, Retry-After 지연, 폴링 시도, 캐시 operation에 상한을 둡니다

Cancel은 transport 호출 전, 재시도 사이, 짧게 나눈 폴링 대기 중에 관찰되고, operation 식별자도 transport에 전달되어 애플리케이션이 자기 in-flight HTTP 요청을 취소할 수 있습니다

인증서 체인과 timestamp

RefreshCredentialInfo는 서명 없이 키, 알고리즘, 인가, SCAL, 다중 서명, 인증서 체인 메타데이터를 검증·캐시합니다

GetCertificateChain은 CMS 인증서 입력에 맞는 방어적 바이트 사본을 반환하고, TimestampDigest는 선택적 nonce와 함께 RFC 3161 token 하나를 요청·디코딩합니다

Modern Signature Providers