OverviewFilesCommitsIssuesDocsReleasesPeers

P2P-Hiverelay / packages / blind-ipc / policy.js

187 lines · javascript ref:
export const PRIVATE_IPC_TIMING_MILLIS = Object.freeze({
  ORDINARY_UNARY_ABSOLUTE: 15_000,
  INBOX_UNARY_ABSOLUTE: 35_000,
  STREAM_OPEN_ABSOLUTE: 15_000,
  TLS_HANDSHAKE: 5_000,
  HEADERS_AFTER_HANDSHAKE: 5_000,
  FIRST_BODY_BYTE: 2_000,
  BODY_PROGRESS_IDLE: 2_000,
  COMPLETE_BODY_AFTER_HEADERS: 10_000,
  IPC_CONNECT_AND_WRITE: 2_000,
  DAEMON_RESPONSE_WRITE: 2_000,
  EDGE_RESPONSE_FIRST_BYTE: 2_000,
  PUBLIC_WRITE_IDLE: 5_000,
  READY_PATH_CONNECT: 2_000,
  READY_PROBE_ABSOLUTE: 2_000,
  READY_ACK_MAX_LIFETIME: 5_000,
  READY_ACK_REFRESH_LEAD: 1_000,
  INBOX_WATCH_MARGIN: 5_000,
  INBOX_DAEMON_RESPONSE_RESERVE: 2_000,
  CORS_PREFLIGHT_ABSOLUTE: 5_000,
  CHILD_TICKET_TTL: 2_000
})

export const LOCAL_STREAM_OPEN_KIND = Object.freeze({
  PUBLIC_CONTENT_CHANNEL: 1,
  AUTHORIZED_EGRESS_CHANNEL: 2,
  CORE_RAW_CHILD: 3,
  LOCAL_NOISE_ENDPOINT: 4
})

export const LOCAL_STREAM_MODE = Object.freeze({
  DISPATCH_CONTENT: 1,
  OUTER_ENVELOPE_CONTENT: 2,
  FORWARD_HOP_CONTENT: 3,
  CORE_RAW: 4,
  NOISE_ENDPOINT: 5
})

export const LOCAL_STREAM_CONTEXT_KIND = Object.freeze({
  AUTHENTICATED_CHANNEL: 1,
  ONE_USE_ATTACH: 2
})

export const LOCAL_STREAM_ADJACENT_POLICY = Object.freeze({
  OPTIONAL: 1,
  REQUIRED: 2,
  FORBIDDEN: 3
})

export const LOCAL_STREAM_DIRECTION = Object.freeze({
  EDGE_TO_DAEMON: 1,
  DAEMON_TO_EDGE: 2
})

export const LOCAL_STREAM_FRAME_KIND = Object.freeze({
  CONTENT: 1,
  CORE_RAW: 2,
  CIPHERTEXT: 3,
  CONTROL: 4,
  ABORT: 5
})

export const LOCAL_STREAM_FLAG = Object.freeze({ FIN: 0x01 })

export const LOCAL_CIPHERTEXT_PHASE = Object.freeze({
  FLIGHT_1: 1,
  FLIGHT_2: 2,
  FLIGHT_3: 3,
  TRANSPORT: 4
})

export const LOCAL_CIPHERTEXT_BYTES = Object.freeze({
  FLIGHT_1: 32,
  FLIGHT_2: 96,
  FLIGHT_3: 64
})

export const LOCAL_STREAM_CONTROL_KIND = Object.freeze({
  CHANNEL_ACCEPT: 1,
  CHANNEL_REJECT: 2,
  ATTACH_TICKET: 3,
  EGRESS_DIAL: 4,
  EGRESS_RESULT: 5,
  CORE_CHILD_OPEN: 6,
  NOISE_SESSION_OPEN: 7
})

export const LOCAL_STREAM_CONTROL_BYTES = Object.freeze({
  CHANNEL_ACCEPT: 42,
  CHANNEL_REJECT: 11,
  ATTACH_TICKET: 74,
  EGRESS_DIAL: 167,
  EGRESS_RESULT_FAILURE: 76,
  EGRESS_RESULT_SUCCESS: 108,
  CORE_CHILD_OPEN: 82,
  NOISE_SESSION_OPEN: 139
})

export const LOCAL_ABORT_CODE = Object.freeze({
  PEER_EOF: 1,
  BAD_SEQUENCE: 2,
  CAP_EXCEEDED: 3,
  TIMEOUT: 4,
  DRAINING: 5,
  TRANSPORT_FAILURE: 6,
  INTERNAL_FAILURE: 7
})

export const LOCAL_STREAM_OPEN_COMBINATION = Object.freeze({
  PUBLIC_DISPATCH: 1,
  PUBLIC_OUTER_ENVELOPE: 2,
  AUTHORIZED_EGRESS_FORWARD_HOP: 3,
  CORE_RAW_CHILD: 4,
  LOCAL_NOISE_ENDPOINT: 5
})

export const LOCAL_STREAM_OPEN_TABLE = Object.freeze([
  Object.freeze({
    id: LOCAL_STREAM_OPEN_COMBINATION.PUBLIC_DISPATCH,
    openKind: LOCAL_STREAM_OPEN_KIND.PUBLIC_CONTENT_CHANNEL,
    streamMode: LOCAL_STREAM_MODE.DISPATCH_CONTENT,
    classMinimum: 1,
    classMaximum: 3,
    contextKind: LOCAL_STREAM_CONTEXT_KIND.AUTHENTICATED_CHANNEL,
    adjacentPolicy: LOCAL_STREAM_ADJACENT_POLICY.OPTIONAL
  }),
  Object.freeze({
    id: LOCAL_STREAM_OPEN_COMBINATION.PUBLIC_OUTER_ENVELOPE,
    openKind: LOCAL_STREAM_OPEN_KIND.PUBLIC_CONTENT_CHANNEL,
    streamMode: LOCAL_STREAM_MODE.OUTER_ENVELOPE_CONTENT,
    classMinimum: 1,
    classMaximum: 3,
    contextKind: LOCAL_STREAM_CONTEXT_KIND.AUTHENTICATED_CHANNEL,
    adjacentPolicy: LOCAL_STREAM_ADJACENT_POLICY.OPTIONAL
  }),
  Object.freeze({
    id: LOCAL_STREAM_OPEN_COMBINATION.AUTHORIZED_EGRESS_FORWARD_HOP,
    openKind: LOCAL_STREAM_OPEN_KIND.AUTHORIZED_EGRESS_CHANNEL,
    streamMode: LOCAL_STREAM_MODE.FORWARD_HOP_CONTENT,
    classMinimum: 1,
    classMaximum: 3,
    contextKind: LOCAL_STREAM_CONTEXT_KIND.ONE_USE_ATTACH,
    adjacentPolicy: LOCAL_STREAM_ADJACENT_POLICY.REQUIRED
  }),
  Object.freeze({
    id: LOCAL_STREAM_OPEN_COMBINATION.CORE_RAW_CHILD,
    openKind: LOCAL_STREAM_OPEN_KIND.CORE_RAW_CHILD,
    streamMode: LOCAL_STREAM_MODE.CORE_RAW,
    classMinimum: 0,
    classMaximum: 0,
    contextKind: LOCAL_STREAM_CONTEXT_KIND.ONE_USE_ATTACH,
    adjacentPolicy: LOCAL_STREAM_ADJACENT_POLICY.FORBIDDEN
  }),
  Object.freeze({
    id: LOCAL_STREAM_OPEN_COMBINATION.LOCAL_NOISE_ENDPOINT,
    openKind: LOCAL_STREAM_OPEN_KIND.LOCAL_NOISE_ENDPOINT,
    streamMode: LOCAL_STREAM_MODE.NOISE_ENDPOINT,
    classMinimum: 1,
    classMaximum: 3,
    contextKind: LOCAL_STREAM_CONTEXT_KIND.ONE_USE_ATTACH,
    adjacentPolicy: LOCAL_STREAM_ADJACENT_POLICY.FORBIDDEN
  })
])

export const PRIVATE_IPC_LIMITS = Object.freeze({
  REQUEST_LINE_BYTES: 1_024,
  HEADER_FIELD_COUNT: 32,
  AGGREGATE_HEADER_BYTES: 16_384,
  CONTROL_BODY_BYTES: 16_384,
  UNARY_BASE_HEADER_BYTES: 32,
  UNARY_ADJACENT_HEADER_BYTES: 64,
  UNARY_RESPONSE_HEADER_BYTES: 11,
  STREAM_OPEN_BASE_HEADER_BYTES: 33,
  STREAM_OPEN_ADJACENT_HEADER_BYTES: 65,
  STREAM_FRAME_HEADER_BYTES: 21,
  READY_PROBE_BODY_BYTES: 65,
  READY_ACK_BODY_BYTES: 120,
  AUTHENTICATED_CHANNEL_CONTEXT_BYTES: 225,
  ATTACH_CONTEXT_BYTES: 137,
  MAX_STREAM_CONTEXT_BYTES: 225,
  MAX_STREAM_FRAME_BODY_BYTES: 65_535,
  MAX_CORE_RAW_BYTES: 65_535,
  STREAM_CONTENT_OVERHEAD_BYTES: 23,
  CHILD_TICKET_BYTES: 32,
  MAX_PENDING_CHILD_TICKETS: 1_024
})