Block Unpadding
암호학적 블록 패딩을 제거한다 (PKCS#7, ANSI X9.23, ISO/IEC 9797-1 방법 2/3, 없음)
개요
블록 정렬된 바이트 배열(Uint8Array)에서 말미(또는 선두 길이 블록) 패딩 바이트를 검증하고 제거하여 원본 페이로드를 복원한다.
결정론적 패딩 복원이 가능한 스킴(PKCS7, ANSI_X923, ISO9797_M2, ISO9797_M3, None)을 지원하며, 패딩 구조가 손상되었을 때 즉시 INVALID_PADDING 오류를 발생시킨다. 자세한 규칙은 패딩 스킴을 참고한다.
사용 시점
Padding = None으로 복호화한 원시 블록에서 패딩 검증 및 제거 과정을 별도 단계로 분리해 확인하거나 패딩 오라클 동작을 실험할 때 사용한다.
파라미터 설정
| 파라미터 (ID) | 타입 및 기본값 | 노출 조건 | 설명 및 옵션 |
|---|---|---|---|
패딩 표준paddingType |
select기본값: None |
항상 노출 | 이 노드의 패딩 표준 설정을 지정한다. 자세한 내용은 패딩 스킴을 참고한다.
|
블록 크기 (바이트)blockSize |
select기본값: 16 |
항상 노출 | 패딩 시 사용한 블록 크기(16바이트 또는 8바이트)이다.
|
오류 단일화errorUnify |
boolean기본값: false |
항상 노출 | 활성화하면 내장 오류를 지정한 단일 오류 코드·메시지로 대체한다. |
단일화 오류 코드errorUnifyCode |
text기본값: "" (비움) |
errorUnify가 true 일 때 |
오류 통합 활성화 시 사용할 오류 코드이다. |
단일화 오류 메시지errorUnifyMessage |
text기본값: "" (비움) |
errorUnify가 true 일 때 |
오류 통합 활성화 시 사용할 오류 메시지이다. |
포트 입출력 명세
포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.
입력 포트
포트 성격: 고정 입력 포트 (총 1개).
| 포트 이름 | 포트 ID | 데이터 타입 | 필수 여부 | 노출 조건 | 설명 |
|---|---|---|---|---|---|
Padded Data |
data |
Bytes |
필수 | 항상 노출 | 패딩이 제거된 원본 바이트 배열(Uint8Array)이다. |
출력 포트
포트 성격: 고정 출력 포트 (총 1개).
| 포트 이름 | 포트 ID | 데이터 타입 | 노출 조건 | 설명 |
|---|---|---|---|---|
Data |
result |
Bytes |
항상 노출 |
오류 케이스
실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다. 오류 통합(errorUnify)을 활성화하면 아래의 모든 오류 코드가 사용자가 지정한 단일 오류 코드와 메시지로 대체된다.
| 오류 코드 | 기본 엔진 메시지 | 발생 조건 |
|---|---|---|
INVALID_PADDING |
패딩이 올바르지 않는다 | 말미 패딩 바이트(또는 ISO9797_M3의 선두 길이 블록)가 선택한 패딩 규격을 위배할 때 발생한다. |
활용 예시
PKCS#7 패딩 검증 및 제거하기
16바이트 패딩 블록에서 패딩 바이트를 제거해 원본 5바이트를 복원한다.
- Block Padding의
Padded Data출력을 Block Unpadding(PKCS7,16)에 연결하면 원본 바이트가 그대로 복원된다.