Value Comparator
같은 타입(bytes, string, int, bool)의 두 값을 ==, !=, >, >=, <, <=로 비교한다
개요
같은 데이터 타입(Bytes, String, Int, Bool)의 두 입력 A와 B를 선택한 관계 연산자(==, !=, >, >=, <, <=)로 비교하여 불리언 결과(Result)를 내보낸다.
Bytes는 사전식(Lexicographical) 바이트 순서로 비교하며, 판정 오류 프로필(Judgement Error Profile)을 지원하므로 불일치 시 false를 데이터로 흘려보내거나 즉시 워크플로우 오류로 전환할 수 있다.
사용 시점
- 계산된 MAC/해시/암호문이 예상 테스트 벡터(Expected KAT)와 정확히 일치하는지 검증할 때 사용한다.
- 정수 길이, 카운터, 상태 코드가 특정 임계값을 만족하는지 비교할 때 사용한다.
파라미터 설정
| 파라미터 (ID) | 타입 및 기본값 | 노출 조건 | 설명 및 옵션 |
|---|---|---|---|
비교 연산자operator |
select기본값: == |
항상 노출 | 두 피연산자 A와 B 사이에 적용할 비교 연산자이다.
|
오류로 처리errorOnValue |
select기본값: "" (비움) |
항상 노출 | 판정 결과를 오류로 재해석할 조건이다. 예를 들어 false로 설정하면 비교 결과가 false일 때 노드가 오류 상태로 전환된다.
|
오류 코드errorCode |
text기본값: "" (비움) |
errorOnValue가 true 또는 false 일 때 |
오류로 처리 조건이 발동했을 때 사용할 사용자 정의 오류 코드이다. |
오류 메시지errorMessage |
text기본값: "" (비움) |
errorOnValue가 true 또는 false 일 때 |
오류로 처리 조건이 발동했을 때 사용할 사용자 정의 오류 메시지이다. |
포트 입출력 명세
포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.
입력 포트
포트 성격: 고정 입력 포트 (총 2개).
| 포트 이름 | 포트 ID | 데이터 타입 | 필수 여부 | 노출 조건 | 설명 |
|---|---|---|---|---|---|
Value A |
a |
Any |
필수 | 항상 노출 | 첫 번째 비교 피연산자(Any: Bytes, String, Int, Bool)이다. |
Value B |
b |
Any |
필수 | 항상 노출 | 두 번째 비교 피연산자(Any: 반드시 A와 동일한 런타임 타입이어야 함)이다. |
출력 포트
포트 성격: 고정 출력 포트 (총 1개).
| 포트 이름 | 포트 ID | 데이터 타입 | 노출 조건 | 설명 |
|---|---|---|---|---|
Result |
result |
Bool |
항상 노출 | 비교가 성립하면 true |
오류 케이스
이 노드는 불리언 출력 포트 result에 대해 판정 오류 프로필(Judgement Error Profile)을 사용한다:
- 기본 동작 (
오류로 처리 = 안 함): 검증이나 비교가 일치하지 않아도 런타임 오류를 발생시키지 않으며, 정상 완료 상태로result포트에false(또는true)를 내보내어 하위 노드나 스크립트가 불리언 결과를 활용할 수 있게 한다. - 오류로 재해석 (
오류로 처리 = false또는true):result포트의 불리언 판정 값이 설정한errorOnValue와 일치할 때 노드를ERROR상태로 전환하고 지정한 오류 코드와 오류 메시지를 발생시키며 하위 실행을 중단한다.
| 오류 코드 | 발생 조건 |
|---|---|
BYTES_INVALID_ARGUMENT | 연결된 두 입력 A와 B의 데이터 타입이 서로 다르거나 비교할 수 없는 타입(예: Set)일 때 발생한다. |
활용 예시
계산된 다이제스트와 정답 테스트 벡터 비교하기
두 바이트 배열이 완전히 같은지 확인하고 다르면 오류를 발생시킨다.
- 계산된
Digest를 Value Comparator의A에, 정답 Static Value를B에 연결한다. - 연산자를
==로 두고, 불일치 시 파이프라인을 멈추려면 오류로 처리를false로 설정한다.