Byte Concatenator
bytes, string, int, bool 입력을 입력 포트 순서대로 이어 붙인다 (A || B || C ...)
개요
연결된 여러 입력 포트의 값을 포트 순서대로 하나의 연속된 바이트 배열(A || B || C ...)로 이어 붙인다.
각 입력 포트는 다형성(Any)을 지원하여 Bytes는 그대로, String은 UTF-8 바이트로, Int는 최소 길이 빅엔디안 부호 없는 바이트(0은 0x00)로, Bool은 1바이트(true = 0x01, false = 0x00)로 자동 변환해 연결한다.
사용 시점
- 프로토콜 헤더, Nonce/IV, 암호문, 인증 태그(
IV || Ciphertext || Tag)를 하나의 전송 페이로드로 합칠 때 사용한다. - 해시나 MAC에 넣기 전에 여러 필드를 순서대로 결합할 때 사용한다.
파라미터 설정
Byte Concatenator는 별도의 정적 파라미터 없이 입력 포트에 와이어를 연결하는 순서에 따라 동작한다.
포트 입출력 명세
포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.
입력 포트
| 항목 | 명세 |
|---|---|
| 포트 성격 | 가변 다형성 입력 포트(자동 확장 슬롯 포함) |
| 캔버스 초기 기본값 | 다형성 입력 포트 2개(Part 1 [in_1], Part 2 [in_2], 타입 Any). |
| 포트 개수 범위 | 입력 포트 2개 이상(마지막 빈 포트에 연결하면 Part N+1 슬롯이 자동 추가됨). |
| 허용 데이터 타입 | Any(Bytes, String, Int, Bool 지원). |
| 포트 추가 및 관리 | 마지막 열려 있는 Part N 포트에 와이어를 연결하면 다음 슬롯이 자동으로 늘어나고, 연결을 해제하면 여분의 빈 슬롯이 정리된다. |
| 평가 및 순서 규칙 | 위에서 아래 포트 번호 순서(in_1 || in_2 || ...)대로 바이트를 이어 붙인다. 연결되지 않은 빈 슬롯은 무시한다. |
출력 포트
포트 성격: 고정 출력 포트 (총 2개).
| 포트 이름 | 포트 ID | 데이터 타입 | 노출 조건 | 설명 |
|---|---|---|---|---|
Combined |
combined |
Bytes |
항상 노출 | 연결된 모든 입력 버퍼를 포트 순서대로 이어 붙인 값. |
Total Length |
length |
Int |
항상 노출 |
오류 케이스
실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다.
| 오류 코드 | 기본 엔진 메시지 | 발생 조건 |
|---|---|---|
BYTES_INVALID_ARGUMENT |
인자 값이 올바르지 않는다 | 정수 입력이 음수이거나 안전하지 않은 부동소수점 값이어서 바이트로 변환할 수 없을 때 발생한다. |
BYTES_INT_OVERFLOW |
정수가 지정한 길이·부호로 표현되지 않는다 | 정수 값이 지정한 고정 또는 포트 바이트 길이 안에 표현될 수 없을 때 발생한다. |
BYTES_SIZE_LIMIT |
결과 길이가 한도를 넘는다 | 이어 붙인 전체 바이트 길이가 최대 허용 크기(1,048,576바이트)를 초과할 때 발생한다. |
활용 예시
Nonce || Ciphertext || Auth Tag 패킷 조립하기
AEAD 암호화 출력들을 하나의 바이트열로 결합한다.
- Byte Concatenator의
Part 1에 12바이트Nonce를,Part 2에Ciphertext를, 자동 생성된Part 3에 16바이트Auth Tag를 연결한다.