NodeCrypto 도움말

Byte Slicer

카테고리: 유틸리티 · 노드 타입 ID: utility-slicer

스크립트의 슬라이스 b[offset, length]처럼 바이트를 잘라 낸다. 길이를 비우면 끝까지, 음수이면 뒤에서부터 센 끝 위치(그 위치는 제외)이다

개요

내장 스크립트의 슬라이스 문법(b[offset, length])과 동일한 규칙으로 바이트 배열에서 부분 구간(Sub-array)을 추출한다.

양수·음수 오프셋(뒤에서부터 계산)과 양수 길이·빈 길이(끝까지)·음수 길이(뒤에서부터 센 끝 위치 제외)를 모두 지원한다.

사용 시점

파라미터 설정

파라미터 (ID)타입 및 기본값노출 조건설명 및 옵션
오프셋 (시작)
offset
number
기본값: 0
변수 참조 지원 ($var: int)
항상 노출 시작 바이트 인덱스이다(0 이상이면 앞에서부터, 음수이면 버퍼 끝 len + offset에서부터 계산). 외부 Offset 포트가 연결되면 포트 값이 우선한다.
길이
length
text
기본값: "" (비움)
변수 참조 지원 ($var: string)
항상 노출 추출할 길이 또는 끝 위치 규칙이다. 비워 두면 끝까지 추출하고, 0 이상이면 해당 바이트 개수만큼 추출하며, 음수(-k)이면 끝에서 k바이트 앞(len - k)까지 추출한다. 외부 Length 포트가 연결되면 포트 값이 우선한다.

포트 입출력 명세

포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.

입력 포트

포트 성격: 고정 입력 포트 (총 1개).

포트 이름포트 ID데이터 타입필수 여부노출 조건설명
Data data Bytes 필수 항상 노출

출력 포트

포트 성격: 고정 출력 포트 (총 1개).

포트 이름포트 ID데이터 타입노출 조건설명
Sliced Bytes sliced Bytes 항상 노출

오류 케이스

실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다.

오류 코드기본 엔진 메시지발생 조건
BYTES_OUT_OF_RANGE 인덱스 또는 구간이 값의 범위를 벗어났다 계산된 시작 위치나 끝 위치가 입력 바이트 배열 범위(0 .. len)를 벗어나거나 시작 위치가 끝 위치보다 클 때 발생한다.
BYTES_INVALID_ARGUMENT 인자 값이 올바르지 않는다 오프셋이나 길이가 유효한 정수가 아닐 때 발생한다.

활용 예시

패킷에서 앞 12바이트 Nonce와 마지막 16바이트 Tag 분리하기

양수/음수 인덱싱으로 결합된 AEAD 패킷을 분할한다.

  1. 첫 번째 Byte Slicer는 offset = 0, length = 12로 설정해 앞 12바이트 Nonce를 추출한다.
  2. 두 번째 Byte Slicer는 offset = 12, length = -16으로 설정해 마지막 16바이트를 제외한 중간 암호문을 추출한다.
  3. 세 번째 Byte Slicer는 offset = -16, length = (비움)으로 설정해 마지막 16바이트 태그를 추출한다.