@okee-e2ee/protocol 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/crypto-core/model/brand.d.ts +4 -0
  2. package/dist/crypto-core/model/brand.d.ts.map +1 -1
  3. package/dist/crypto-core/signature/codecs/HybridSignatureCodec.d.ts +10 -0
  4. package/dist/crypto-core/signature/codecs/HybridSignatureCodec.d.ts.map +1 -0
  5. package/dist/crypto-core/signature/codecs/HybridSignatureCodec.js +27 -0
  6. package/dist/crypto-core/signature/codecs/HybridSignaturePublicKeyCodec.d.ts +10 -0
  7. package/dist/crypto-core/signature/codecs/HybridSignaturePublicKeyCodec.d.ts.map +1 -0
  8. package/dist/{transport/codecs/RelayIdentityPublicKeyCodec.js → crypto-core/signature/codecs/HybridSignaturePublicKeyCodec.js} +3 -3
  9. package/dist/crypto-core/signature/codecs/index.d.ts +3 -0
  10. package/dist/crypto-core/signature/codecs/index.d.ts.map +1 -0
  11. package/dist/crypto-core/signature/codecs/index.js +2 -0
  12. package/dist/crypto-core/signature/index.d.ts +1 -0
  13. package/dist/crypto-core/signature/index.d.ts.map +1 -1
  14. package/dist/crypto-core/signature/index.js +1 -0
  15. package/dist/transport/codecs/DestinationSendRequestCodec.d.ts +10 -0
  16. package/dist/transport/codecs/DestinationSendRequestCodec.d.ts.map +1 -0
  17. package/dist/transport/codecs/DestinationSendRequestCodec.js +34 -0
  18. package/dist/transport/codecs/DestinationSendResponseCodec.d.ts +10 -0
  19. package/dist/transport/codecs/DestinationSendResponseCodec.d.ts.map +1 -0
  20. package/dist/transport/codecs/DestinationSendResponseCodec.js +65 -0
  21. package/dist/transport/codecs/TransportPacketCodec.d.ts +15 -0
  22. package/dist/transport/codecs/TransportPacketCodec.d.ts.map +1 -0
  23. package/dist/transport/codecs/TransportPacketCodec.js +214 -0
  24. package/dist/transport/codecs/encode-destination-send-authorization-input.d.ts +4 -0
  25. package/dist/transport/codecs/encode-destination-send-authorization-input.d.ts.map +1 -0
  26. package/dist/transport/codecs/encode-destination-send-authorization-input.js +6 -0
  27. package/dist/transport/codecs/encode-relay-key-bundle-signature-input.d.ts.map +1 -0
  28. package/dist/transport/{helpers → codecs}/encode-relay-key-bundle-signature-input.js +1 -1
  29. package/dist/transport/codecs/encode-s2d-associated-data.d.ts +5 -0
  30. package/dist/transport/codecs/encode-s2d-associated-data.d.ts.map +1 -0
  31. package/dist/transport/codecs/encode-s2d-associated-data.js +19 -0
  32. package/dist/transport/codecs/encode-transport-request-authorization-input.d.ts +4 -0
  33. package/dist/transport/codecs/encode-transport-request-authorization-input.d.ts.map +1 -0
  34. package/dist/transport/codecs/encode-transport-request-authorization-input.js +35 -0
  35. package/dist/transport/codecs/index.d.ts +7 -2
  36. package/dist/transport/codecs/index.d.ts.map +1 -1
  37. package/dist/transport/codecs/index.js +7 -2
  38. package/dist/transport/codecs/internal/InternalCodec.d.ts +7 -0
  39. package/dist/transport/codecs/internal/InternalCodec.d.ts.map +1 -0
  40. package/dist/transport/codecs/internal/InternalCodec.js +16 -0
  41. package/dist/transport/codecs/{RelayEncryptionKeyBundleCodec.d.ts → internal/RelayEncryptionKeyBundleCodec.d.ts} +2 -3
  42. package/dist/transport/codecs/internal/RelayEncryptionKeyBundleCodec.d.ts.map +1 -0
  43. package/dist/transport/codecs/{RelayEncryptionKeyBundleCodec.js → internal/RelayEncryptionKeyBundleCodec.js} +4 -5
  44. package/dist/transport/codecs/internal/S2DEncryptedRequestCodec.d.ts +9 -0
  45. package/dist/transport/codecs/internal/S2DEncryptedRequestCodec.d.ts.map +1 -0
  46. package/dist/transport/codecs/internal/S2DEncryptedRequestCodec.js +45 -0
  47. package/dist/transport/codecs/internal/S2DEncryptedResponseCodec.d.ts +9 -0
  48. package/dist/transport/codecs/internal/S2DEncryptedResponseCodec.d.ts.map +1 -0
  49. package/dist/transport/codecs/internal/S2DEncryptedResponseCodec.js +38 -0
  50. package/dist/transport/codecs/internal/SignedRelayEncryptionKeyBundleCodec.d.ts +9 -0
  51. package/dist/transport/codecs/internal/SignedRelayEncryptionKeyBundleCodec.d.ts.map +1 -0
  52. package/dist/transport/codecs/internal/SignedRelayEncryptionKeyBundleCodec.js +35 -0
  53. package/dist/transport/codecs/internal/destination-send-codec-helpers.d.ts +5 -0
  54. package/dist/transport/codecs/internal/destination-send-codec-helpers.d.ts.map +1 -0
  55. package/dist/transport/codecs/internal/destination-send-codec-helpers.js +58 -0
  56. package/dist/transport/codecs/internal/transport-payload-codecs.d.ts +7 -0
  57. package/dist/transport/codecs/internal/transport-payload-codecs.d.ts.map +1 -0
  58. package/dist/transport/codecs/internal/transport-payload-codecs.js +128 -0
  59. package/dist/transport/constants/index.d.ts +1 -0
  60. package/dist/transport/constants/index.d.ts.map +1 -1
  61. package/dist/transport/constants/index.js +1 -0
  62. package/dist/transport/constants/relay-constants.d.ts +5 -0
  63. package/dist/transport/constants/relay-constants.d.ts.map +1 -1
  64. package/dist/transport/constants/relay-constants.js +5 -0
  65. package/dist/transport/constants/transport-packet-constants.d.ts +5 -0
  66. package/dist/transport/constants/transport-packet-constants.d.ts.map +1 -0
  67. package/dist/transport/constants/transport-packet-constants.js +4 -0
  68. package/dist/transport/helpers/derive-relay-identity-fingerprint.d.ts.map +1 -1
  69. package/dist/transport/helpers/derive-relay-identity-fingerprint.js +2 -3
  70. package/dist/transport/helpers/derive-s2d-key-material.d.ts +4 -0
  71. package/dist/transport/helpers/derive-s2d-key-material.d.ts.map +1 -0
  72. package/dist/transport/helpers/derive-s2d-key-material.js +25 -0
  73. package/dist/transport/helpers/index.d.ts +1 -1
  74. package/dist/transport/helpers/index.d.ts.map +1 -1
  75. package/dist/transport/helpers/index.js +1 -1
  76. package/dist/transport/model/destination-send.d.ts +44 -0
  77. package/dist/transport/model/destination-send.d.ts.map +1 -0
  78. package/dist/transport/model/destination-send.js +14 -0
  79. package/dist/transport/model/index.d.ts +4 -0
  80. package/dist/transport/model/index.d.ts.map +1 -1
  81. package/dist/transport/model/index.js +4 -0
  82. package/dist/transport/model/queue-model.d.ts +11 -4
  83. package/dist/transport/model/queue-model.d.ts.map +1 -1
  84. package/dist/transport/model/relay-key-bundle.d.ts +2 -2
  85. package/dist/transport/model/relay-key-bundle.d.ts.map +1 -1
  86. package/dist/transport/model/s2d-envelope.d.ts +28 -0
  87. package/dist/transport/model/s2d-envelope.d.ts.map +1 -0
  88. package/dist/transport/model/s2d-envelope.js +1 -0
  89. package/dist/transport/model/transport-command.d.ts +94 -0
  90. package/dist/transport/model/transport-command.d.ts.map +1 -0
  91. package/dist/transport/model/transport-command.js +19 -0
  92. package/dist/transport/model/transport-packet.d.ts +73 -0
  93. package/dist/transport/model/transport-packet.d.ts.map +1 -0
  94. package/dist/transport/model/transport-packet.js +11 -0
  95. package/package.json +1 -1
  96. package/dist/transport/codecs/RelayEncryptionKeyBundleCodec.d.ts.map +0 -1
  97. package/dist/transport/codecs/RelayIdentityPublicKeyCodec.d.ts +0 -10
  98. package/dist/transport/codecs/RelayIdentityPublicKeyCodec.d.ts.map +0 -1
  99. package/dist/transport/helpers/encode-relay-key-bundle-signature-input.d.ts.map +0 -1
  100. /package/dist/transport/{helpers → codecs}/encode-relay-key-bundle-signature-input.d.ts +0 -0
@@ -7,5 +7,9 @@ declare const encodedPayloadType: unique symbol;
7
7
  export type EncodedPayload<T = unknown> = Bytes & {
8
8
  readonly [encodedPayloadType]?: T;
9
9
  };
10
+ declare const encryptedPayloadType: unique symbol;
11
+ export type EncryptedPayload<T = unknown> = Bytes & {
12
+ readonly [encryptedPayloadType]?: T;
13
+ };
10
14
  export {};
11
15
  //# sourceMappingURL=brand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../../src/crypto-core/model/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAC;AAEnC,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,GAAG;IAClD,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB,CAAC;AAEF,OAAO,CAAC,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG;IACjD,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../../src/crypto-core/model/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAC;AAEnC,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,IAAI,CAAC,GAAG;IAClD,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB,CAAC;AAEF,OAAO,CAAC,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG;IACjD,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;CAClC,CAAC;AAEF,OAAO,CAAC,MAAM,oBAAoB,EAAE,OAAO,MAAM,CAAC;AAElD,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG;IACnD,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;CACpC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Result } from "@okee-e2ee/core";
2
+ import { DecodeError } from "@okee-e2ee/core/errors";
3
+ import { CodecContract } from "../../../crypto-core/contracts";
4
+ import { Bytes } from "../../../crypto-core/model";
5
+ import { HybridSignature } from "../model";
6
+ export declare class HybridSignatureCodec implements CodecContract<HybridSignature> {
7
+ encode(value: HybridSignature): Bytes;
8
+ decode(bytes: Bytes): Result<HybridSignature, DecodeError>;
9
+ }
10
+ //# sourceMappingURL=HybridSignatureCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HybridSignatureCodec.d.ts","sourceRoot":"","sources":["../../../../src/crypto-core/signature/codecs/HybridSignatureCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAE9D,OAAO,EAAoB,eAAe,EAAkB,MAAM,UAAU,CAAC;AAE7E,qBAAa,oBAAqB,YAAW,aAAa,CAAC,eAAe,CAAC;IACnE,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CAK3C;IAEM,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,CAgBhE;CACD"}
@@ -0,0 +1,27 @@
1
+ import { DecodeError } from "@okee-e2ee/core/errors";
2
+ import { CRYPTO_SIZES_BYTES } from "../../../crypto-core/constants";
3
+ import { ByteReader, ByteWriter } from "../../../crypto-core/encoding";
4
+ export class HybridSignatureCodec {
5
+ encode(value) {
6
+ return new ByteWriter()
7
+ .writeFixedBytes(value.ed25519, CRYPTO_SIZES_BYTES.ed25519Signature)
8
+ .writeFixedBytes(value.mlDsa, CRYPTO_SIZES_BYTES.mlDsaSignature)
9
+ .toBytes();
10
+ }
11
+ decode(bytes) {
12
+ const reader = new ByteReader(bytes);
13
+ try {
14
+ const value = {
15
+ ed25519: reader.readFixedBytes(CRYPTO_SIZES_BYTES.ed25519Signature),
16
+ mlDsa: reader.readFixedBytes(CRYPTO_SIZES_BYTES.mlDsaSignature)
17
+ };
18
+ reader.assertEnd();
19
+ return { ok: true, value };
20
+ }
21
+ catch (error) {
22
+ if (error instanceof DecodeError)
23
+ return { ok: false, error };
24
+ throw error;
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,10 @@
1
+ import { Result } from "@okee-e2ee/core";
2
+ import { DecodeError } from "@okee-e2ee/core/errors";
3
+ import { CodecContract } from "../../../crypto-core/contracts";
4
+ import { Bytes } from "../../../crypto-core/model";
5
+ import { HybridSignaturePublicKey } from "../model";
6
+ export declare class HybridSignaturePublicKeyCodec implements CodecContract<HybridSignaturePublicKey> {
7
+ encode(value: HybridSignaturePublicKey): Bytes;
8
+ decode(bytes: Bytes): Result<HybridSignaturePublicKey, DecodeError>;
9
+ }
10
+ //# sourceMappingURL=HybridSignaturePublicKeyCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HybridSignaturePublicKeyCodec.d.ts","sourceRoot":"","sources":["../../../../src/crypto-core/signature/codecs/HybridSignaturePublicKeyCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAE9D,OAAO,EAAoB,wBAAwB,EAAkB,MAAM,UAAU,CAAC;AAEtF,qBAAa,6BAA8B,YAAW,aAAa,CAAC,wBAAwB,CAAC;IACrF,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,KAAK,CAKpD;IAEM,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAgBzE;CACD"}
@@ -1,7 +1,7 @@
1
1
  import { DecodeError } from "@okee-e2ee/core/errors";
2
- import { CRYPTO_SIZES_BYTES } from "../../crypto-core/constants";
3
- import { ByteReader, ByteWriter } from "../../crypto-core/encoding";
4
- export class RelayIdentityPublicKeyCodec {
2
+ import { CRYPTO_SIZES_BYTES } from "../../../crypto-core/constants";
3
+ import { ByteReader, ByteWriter } from "../../../crypto-core/encoding";
4
+ export class HybridSignaturePublicKeyCodec {
5
5
  encode(value) {
6
6
  return new ByteWriter()
7
7
  .writeFixedBytes(value.ed25519, CRYPTO_SIZES_BYTES.ed25519PublicKey)
@@ -0,0 +1,3 @@
1
+ export * from "./HybridSignatureCodec";
2
+ export * from "./HybridSignaturePublicKeyCodec";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto-core/signature/codecs/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./HybridSignatureCodec";
2
+ export * from "./HybridSignaturePublicKeyCodec";
@@ -1,3 +1,4 @@
1
+ export * from "./codecs";
1
2
  export * from "./contracts";
2
3
  export * from "./model";
3
4
  export * from "./SignatureFacade";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto-core/signature/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto-core/signature/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from "./codecs";
1
2
  export * from "./contracts";
2
3
  export * from "./model";
3
4
  export * from "./SignatureFacade";
@@ -0,0 +1,10 @@
1
+ import { Result } from "@okee-e2ee/core";
2
+ import { DecodeError } from "@okee-e2ee/core/errors";
3
+ import { CodecContract } from "../../crypto-core";
4
+ import { Bytes } from "../../crypto-core/model";
5
+ import { DestinationSendRequest } from "../model";
6
+ export declare class DestinationSendRequestCodec implements CodecContract<DestinationSendRequest> {
7
+ encode(value: DestinationSendRequest): Bytes;
8
+ decode(bytes: Bytes): Result<DestinationSendRequest, DecodeError>;
9
+ }
10
+ //# sourceMappingURL=DestinationSendRequestCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DestinationSendRequestCodec.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/DestinationSendRequestCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAGN,aAAa,EAGb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAWlD,qBAAa,2BAA4B,YAAW,aAAa,CAAC,sBAAsB,CAAC;IACjF,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,KAAK,CAQlD;IAEM,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAsBvE;CACD"}
@@ -0,0 +1,34 @@
1
+ import { DecodeError } from "@okee-e2ee/core/errors";
2
+ import { ByteReader, ByteWriter, CRYPTO_SIZES_BYTES, HybridSignatureCodec } from "../../crypto-core";
3
+ import { decodeDestinationSendRequestPayload, encodeDestinationSendRequestPayload } from "./internal/destination-send-codec-helpers";
4
+ const hybridSignatureCodec = new HybridSignatureCodec();
5
+ const HYBRID_SIGNATURE_SIZE_BYTES = CRYPTO_SIZES_BYTES.ed25519Signature + CRYPTO_SIZES_BYTES.mlDsaSignature;
6
+ export class DestinationSendRequestCodec {
7
+ encode(value) {
8
+ return new ByteWriter()
9
+ .writeBytes(encodeDestinationSendRequestPayload(value.payload))
10
+ .writeFixedBytes(hybridSignatureCodec.encode(value.authorization), HYBRID_SIGNATURE_SIZE_BYTES)
11
+ .toBytes();
12
+ }
13
+ decode(bytes) {
14
+ const reader = new ByteReader(bytes);
15
+ try {
16
+ const payloadReader = new ByteReader(reader.readBytes());
17
+ const payload = decodeDestinationSendRequestPayload(payloadReader);
18
+ payloadReader.assertEnd();
19
+ const authorizationResult = hybridSignatureCodec.decode(reader.readFixedBytes(HYBRID_SIGNATURE_SIZE_BYTES));
20
+ if (!authorizationResult.ok)
21
+ throw authorizationResult.error;
22
+ reader.assertEnd();
23
+ return {
24
+ ok: true,
25
+ value: { payload, authorization: authorizationResult.value }
26
+ };
27
+ }
28
+ catch (error) {
29
+ if (error instanceof DecodeError)
30
+ return { ok: false, error };
31
+ throw error;
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,10 @@
1
+ import { Result } from "@okee-e2ee/core";
2
+ import { DecodeError } from "@okee-e2ee/core/errors";
3
+ import { CodecContract } from "../../crypto-core";
4
+ import { Bytes } from "../../crypto-core/model";
5
+ import { DestinationSendResponse } from "../model";
6
+ export declare class DestinationSendResponseCodec implements CodecContract<DestinationSendResponse> {
7
+ encode(value: DestinationSendResponse): Bytes;
8
+ decode(bytes: Bytes): Result<DestinationSendResponse, DecodeError>;
9
+ }
10
+ //# sourceMappingURL=DestinationSendResponseCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DestinationSendResponseCodec.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/DestinationSendResponseCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAA0B,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAG9D,OAAO,EAGN,uBAAuB,EAEvB,MAAM,UAAU,CAAC;AAElB,qBAAa,4BAA6B,YAAW,aAAa,CAAC,uBAAuB,CAAC;IACnF,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,KAAK,CAqBnD;IAEM,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAsCxE;CACD"}
@@ -0,0 +1,65 @@
1
+ import { DecodeError } from "@okee-e2ee/core/errors";
2
+ import { ByteReader, ByteWriter } from "../../crypto-core";
3
+ import { DESTINATION_SEND_FORMAT_VERSION } from "../constants";
4
+ import { DestinationSendErrorCode, DestinationSendResponseStatus } from "../model";
5
+ export class DestinationSendResponseCodec {
6
+ encode(value) {
7
+ if (value.formatVersion !== DESTINATION_SEND_FORMAT_VERSION) {
8
+ throw new RangeError(`formatVersion must be ${DESTINATION_SEND_FORMAT_VERSION}`);
9
+ }
10
+ const status = value.status;
11
+ const writer = new ByteWriter()
12
+ .writeU8(value.formatVersion)
13
+ .writeU8(status)
14
+ .writeString(value.deliveryId);
15
+ if (value.status === DestinationSendResponseStatus.ERROR) {
16
+ if (!isDestinationSendErrorCode(value.errorCode)) {
17
+ throw new RangeError(`unsupported error code ${value.errorCode}`);
18
+ }
19
+ writer.writeU8(value.errorCode);
20
+ }
21
+ else if (status !== DestinationSendResponseStatus.SUCCESS) {
22
+ throw new RangeError(`unsupported response status ${status}`);
23
+ }
24
+ return writer.toBytes();
25
+ }
26
+ decode(bytes) {
27
+ const reader = new ByteReader(bytes);
28
+ try {
29
+ const versionOffset = reader.offset;
30
+ const formatVersion = reader.readU8();
31
+ if (formatVersion !== DESTINATION_SEND_FORMAT_VERSION) {
32
+ throw new DecodeError(`unsupported formatVersion ${formatVersion}`, versionOffset);
33
+ }
34
+ const statusOffset = reader.offset;
35
+ const status = reader.readU8();
36
+ const deliveryId = reader.readString();
37
+ if (status === DestinationSendResponseStatus.SUCCESS) {
38
+ reader.assertEnd();
39
+ return { ok: true, value: { formatVersion, status, deliveryId } };
40
+ }
41
+ if (status !== DestinationSendResponseStatus.ERROR) {
42
+ throw new DecodeError(`unsupported response status ${status}`, statusOffset);
43
+ }
44
+ const errorOffset = reader.offset;
45
+ const errorCode = reader.readU8();
46
+ if (!isDestinationSendErrorCode(errorCode)) {
47
+ throw new DecodeError(`unsupported error code ${errorCode}`, errorOffset);
48
+ }
49
+ reader.assertEnd();
50
+ return {
51
+ ok: true,
52
+ value: { formatVersion, status, deliveryId, errorCode }
53
+ };
54
+ }
55
+ catch (error) {
56
+ if (error instanceof DecodeError)
57
+ return { ok: false, error };
58
+ throw error;
59
+ }
60
+ }
61
+ }
62
+ function isDestinationSendErrorCode(value) {
63
+ return (value >= DestinationSendErrorCode.QUEUE_NOT_FOUND &&
64
+ value <= DestinationSendErrorCode.PAYLOAD_TOO_LARGE);
65
+ }
@@ -0,0 +1,15 @@
1
+ import { Result } from "@okee-e2ee/core";
2
+ import { DecodeError } from "@okee-e2ee/core/errors";
3
+ import { type Bytes, CodecContract } from "../../crypto-core";
4
+ import { type TransportPacket } from "../model";
5
+ export declare class TransportPacketCodec implements CodecContract<TransportPacket> {
6
+ encode(value: TransportPacket): Bytes;
7
+ decode(bytes: Bytes): Result<TransportPacket, DecodeError>;
8
+ private _encodeRequest;
9
+ private _decodeRequest;
10
+ private _encodeResponse;
11
+ private _decodeResponse;
12
+ private _encodeDelivery;
13
+ private _decodeDelivery;
14
+ }
15
+ //# sourceMappingURL=TransportPacketCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransportPacketCodec.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/TransportPacketCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAEN,KAAK,KAAK,EAEV,aAAa,EAIb,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAMN,KAAK,eAAe,EAKpB,MAAM,UAAU,CAAC;AAalB,qBAAa,oBAAqB,YAAW,aAAa,CAAC,eAAe,CAAC;IACnE,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,CAwB3C;IAEM,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,CAoChE;IAED,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,eAAe;CAqBvB"}
@@ -0,0 +1,214 @@
1
+ import { DecodeError } from "@okee-e2ee/core/errors";
2
+ import { ByteReader, ByteWriter, CRYPTO_SIZES_BYTES, HybridSignatureCodec } from "../../crypto-core";
3
+ import { TRANSPORT_PACKET_FORMAT_VERSION } from "../constants";
4
+ import { TransportCommandType, TransportErrorCode, TransportPacketType, TransportResponseStatus } from "../model";
5
+ import { decodeTransportRequestPayload, decodeTransportResponsePayload, encodeTransportRequestPayload, encodeTransportResponsePayload } from "./internal/transport-payload-codecs";
6
+ const authorizationCodec = new HybridSignatureCodec();
7
+ const HYBRID_SIGNATURE_SIZE_BYTES = CRYPTO_SIZES_BYTES.ed25519Signature + CRYPTO_SIZES_BYTES.mlDsaSignature;
8
+ export class TransportPacketCodec {
9
+ encode(value) {
10
+ if (value.formatVersion !== TRANSPORT_PACKET_FORMAT_VERSION) {
11
+ throw new RangeError(`formatVersion must be ${TRANSPORT_PACKET_FORMAT_VERSION}`);
12
+ }
13
+ const writer = new ByteWriter().writeU8(value.formatVersion).writeU8(value.type);
14
+ switch (value.type) {
15
+ case TransportPacketType.REQUEST:
16
+ this._encodeRequest(writer, value);
17
+ break;
18
+ case TransportPacketType.RESPONSE:
19
+ this._encodeResponse(writer, value);
20
+ break;
21
+ case TransportPacketType.DELIVERY:
22
+ this._encodeDelivery(writer, value);
23
+ break;
24
+ default:
25
+ throw new RangeError("unsupported packet type");
26
+ }
27
+ return writer.toBytes();
28
+ }
29
+ decode(bytes) {
30
+ const reader = new ByteReader(bytes);
31
+ try {
32
+ const versionOffset = reader.offset;
33
+ const formatVersion = reader.readU8();
34
+ if (formatVersion !== TRANSPORT_PACKET_FORMAT_VERSION) {
35
+ throw new DecodeError(`unsupported formatVersion ${formatVersion}`, versionOffset);
36
+ }
37
+ const typeOffset = reader.offset;
38
+ const type = reader.readU8();
39
+ let value;
40
+ switch (type) {
41
+ case TransportPacketType.REQUEST:
42
+ value = this._decodeRequest(reader);
43
+ break;
44
+ case TransportPacketType.RESPONSE:
45
+ value = this._decodeResponse(reader);
46
+ break;
47
+ case TransportPacketType.DELIVERY:
48
+ value = this._decodeDelivery(reader);
49
+ break;
50
+ default:
51
+ throw new DecodeError(`unsupported packet type ${type}`, typeOffset);
52
+ }
53
+ reader.assertEnd();
54
+ return { ok: true, value };
55
+ }
56
+ catch (error) {
57
+ if (error instanceof DecodeError)
58
+ return { ok: false, error };
59
+ throw error;
60
+ }
61
+ }
62
+ _encodeRequest(writer, value) {
63
+ if (!isTransportCommandType(value.command)) {
64
+ throw new RangeError(`unsupported command ${value.command}`);
65
+ }
66
+ writer
67
+ .writeString(value.requestId)
68
+ .writeU8(value.command)
69
+ .writeBytes(encodeTransportRequestPayload(value.command, value.payload));
70
+ const authorization = value.authorization;
71
+ if (!requiresPacketAuthorization(value.command)) {
72
+ if (authorization !== undefined) {
73
+ throw new RangeError(`command ${value.command} must not contain packet authorization`);
74
+ }
75
+ return;
76
+ }
77
+ if (authorization === undefined) {
78
+ throw new RangeError(`command ${value.command} requires packet authorization`);
79
+ }
80
+ writer.writeFixedBytes(authorizationCodec.encode(authorization), HYBRID_SIGNATURE_SIZE_BYTES);
81
+ }
82
+ _decodeRequest(reader) {
83
+ const requestId = reader.readString();
84
+ const command = readTransportCommand(reader);
85
+ const payload = decodeTransportRequestPayload(command, reader.readBytes());
86
+ const base = {
87
+ formatVersion: TRANSPORT_PACKET_FORMAT_VERSION,
88
+ type: TransportPacketType.REQUEST,
89
+ requestId,
90
+ command,
91
+ payload
92
+ };
93
+ if (!requiresPacketAuthorization(command))
94
+ return base;
95
+ return {
96
+ ...base,
97
+ authorization: decodeAuthorization(reader)
98
+ };
99
+ }
100
+ _encodeResponse(writer, value) {
101
+ if (!isTransportCommandType(value.command)) {
102
+ throw new RangeError(`unsupported command ${value.command}`);
103
+ }
104
+ writer.writeString(value.requestId).writeU8(value.command).writeU8(value.status);
105
+ if (value.status === TransportResponseStatus.SUCCESS) {
106
+ writer.writeBytes(encodeTransportResponsePayload(value.command, value.payload));
107
+ return;
108
+ }
109
+ if (value.status !== TransportResponseStatus.ERROR) {
110
+ throw new RangeError("unsupported response status");
111
+ }
112
+ if (!isTransportErrorCode(value.errorCode)) {
113
+ throw new RangeError(`unsupported transport error code ${value.errorCode}`);
114
+ }
115
+ writer.writeU8(value.errorCode);
116
+ }
117
+ _decodeResponse(reader) {
118
+ const requestId = reader.readString();
119
+ const command = readTransportCommand(reader);
120
+ const statusOffset = reader.offset;
121
+ const status = reader.readU8();
122
+ const base = {
123
+ formatVersion: TRANSPORT_PACKET_FORMAT_VERSION,
124
+ type: TransportPacketType.RESPONSE,
125
+ requestId,
126
+ command
127
+ };
128
+ if (status === TransportResponseStatus.SUCCESS) {
129
+ return {
130
+ ...base,
131
+ status,
132
+ payload: decodeTransportResponsePayload(command, reader.readBytes())
133
+ };
134
+ }
135
+ if (status !== TransportResponseStatus.ERROR) {
136
+ throw new DecodeError(`unsupported response status ${status}`, statusOffset);
137
+ }
138
+ const errorOffset = reader.offset;
139
+ const errorCode = reader.readU8();
140
+ if (!isTransportErrorCode(errorCode)) {
141
+ throw new DecodeError(`unsupported transport error code ${errorCode}`, errorOffset);
142
+ }
143
+ return { ...base, status, errorCode };
144
+ }
145
+ _encodeDelivery(writer, value) {
146
+ writer.writeString(value.recipientQueueId).writeU32(value.deliveries.length);
147
+ for (const delivery of value.deliveries) {
148
+ writer.writeString(delivery.deliveryId).writeBytes(delivery.payload);
149
+ }
150
+ }
151
+ _decodeDelivery(reader) {
152
+ const recipientQueueId = reader.readString();
153
+ const deliveryCount = reader.readU32();
154
+ const deliveries = [];
155
+ for (let index = 0; index < deliveryCount; index += 1) {
156
+ deliveries.push({
157
+ deliveryId: reader.readString(),
158
+ payload: reader.readBytes()
159
+ });
160
+ }
161
+ return {
162
+ formatVersion: TRANSPORT_PACKET_FORMAT_VERSION,
163
+ type: TransportPacketType.DELIVERY,
164
+ recipientQueueId,
165
+ deliveries
166
+ };
167
+ }
168
+ }
169
+ function readTransportCommand(reader) {
170
+ const offset = reader.offset;
171
+ const command = reader.readU8();
172
+ if (!isTransportCommandType(command)) {
173
+ throw new DecodeError(`unsupported command ${command}`, offset);
174
+ }
175
+ return command;
176
+ }
177
+ function decodeAuthorization(reader) {
178
+ const result = authorizationCodec.decode(reader.readFixedBytes(HYBRID_SIGNATURE_SIZE_BYTES));
179
+ if (!result.ok)
180
+ throw result.error;
181
+ return result.value;
182
+ }
183
+ function requiresPacketAuthorization(command) {
184
+ return (command !== TransportCommandType.HEALTH &&
185
+ command !== TransportCommandType.SEND &&
186
+ command !== TransportCommandType.GET_DESTINATION_BUNDLE);
187
+ }
188
+ function isTransportCommandType(value) {
189
+ switch (value) {
190
+ case TransportCommandType.HEALTH:
191
+ case TransportCommandType.CREATE_QUEUE:
192
+ case TransportCommandType.REMOVE_QUEUE:
193
+ case TransportCommandType.SUBSCRIBE_QUEUE:
194
+ case TransportCommandType.UNSUBSCRIBE_QUEUE:
195
+ case TransportCommandType.SEND:
196
+ case TransportCommandType.ACK:
197
+ case TransportCommandType.GET_DESTINATION_BUNDLE:
198
+ return true;
199
+ default:
200
+ return false;
201
+ }
202
+ }
203
+ function isTransportErrorCode(value) {
204
+ switch (value) {
205
+ case TransportErrorCode.UNAVAILABLE:
206
+ case TransportErrorCode.TIMEOUT:
207
+ case TransportErrorCode.KEY_UNKNOWN:
208
+ case TransportErrorCode.KEY_EXPIRED:
209
+ case TransportErrorCode.RESPONSE_INVALID:
210
+ return true;
211
+ default:
212
+ return false;
213
+ }
214
+ }
@@ -0,0 +1,4 @@
1
+ import { Bytes } from "../../crypto-core";
2
+ import { DestinationSendRequestPayload } from "../model";
3
+ export declare function encodeDestinationSendAuthorizationInput(payload: DestinationSendRequestPayload): Bytes;
4
+ //# sourceMappingURL=encode-destination-send-authorization-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-destination-send-authorization-input.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/encode-destination-send-authorization-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAwB,MAAM,iCAAiC,CAAC;AAG9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAIzD,wBAAgB,uCAAuC,CACtD,OAAO,EAAE,6BAA6B,GACpC,KAAK,CAKP"}
@@ -0,0 +1,6 @@
1
+ import { encodeSignatureInput } from "../../crypto-core";
2
+ import { DESTINATION_SEND_AUTHORIZATION_CONTEXT } from "../constants";
3
+ import { encodeDestinationSendRequestPayload } from "./internal/destination-send-codec-helpers";
4
+ export function encodeDestinationSendAuthorizationInput(payload) {
5
+ return encodeSignatureInput(DESTINATION_SEND_AUTHORIZATION_CONTEXT, encodeDestinationSendRequestPayload(payload));
6
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-relay-key-bundle-signature-input.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/encode-relay-key-bundle-signature-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAwB,MAAM,iCAAiC,CAAC;AAG9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAMpD,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,wBAAwB,GAAG,KAAK,CAE1F"}
@@ -1,6 +1,6 @@
1
1
  import { encodeSignatureInput } from "../../crypto-core";
2
- import { RelayEncryptionKeyBundleCodec } from "../codecs";
3
2
  import { RELAY_KEY_BUNDLE_SIGNATURE_CONTEXT } from "../constants";
3
+ import { RelayEncryptionKeyBundleCodec } from "./internal/RelayEncryptionKeyBundleCodec";
4
4
  const keyBundleCodec = new RelayEncryptionKeyBundleCodec();
5
5
  export function encodeRelayKeyBundleSignatureInput(bundle) {
6
6
  return encodeSignatureInput(RELAY_KEY_BUNDLE_SIGNATURE_CONTEXT, keyBundleCodec.encode(bundle));
@@ -0,0 +1,5 @@
1
+ import { Bytes } from "../../crypto-core";
2
+ import { S2DAssociatedDataInput } from "../model";
3
+ export declare function encodeS2DRequestAssociatedData(input: S2DAssociatedDataInput): Bytes;
4
+ export declare function encodeS2DResponseAssociatedData(input: S2DAssociatedDataInput): Bytes;
5
+ //# sourceMappingURL=encode-s2d-associated-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-s2d-associated-data.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/encode-s2d-associated-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkC,MAAM,iCAAiC,CAAC;AAOxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,sBAAsB,GAAG,KAAK,CAEnF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,sBAAsB,GAAG,KAAK,CAEpF"}
@@ -0,0 +1,19 @@
1
+ import { ByteWriter, CRYPTO_SIZES_BYTES } from "../../crypto-core";
2
+ import { S2D_ENVELOPE_FORMAT_VERSION, S2D_REQUEST_ASSOCIATED_DATA_CONTEXT, S2D_RESPONSE_ASSOCIATED_DATA_CONTEXT } from "../constants";
3
+ export function encodeS2DRequestAssociatedData(input) {
4
+ return encodeS2DAssociatedData(S2D_REQUEST_ASSOCIATED_DATA_CONTEXT, input);
5
+ }
6
+ export function encodeS2DResponseAssociatedData(input) {
7
+ return encodeS2DAssociatedData(S2D_RESPONSE_ASSOCIATED_DATA_CONTEXT, input);
8
+ }
9
+ function encodeS2DAssociatedData(context, input) {
10
+ return new ByteWriter()
11
+ .writeString(context)
12
+ .writeU8(S2D_ENVELOPE_FORMAT_VERSION)
13
+ .writeString(input.requestId)
14
+ .writeString(input.destination.address)
15
+ .writeFixedBytes(input.destination.fingerprint, CRYPTO_SIZES_BYTES.sha256)
16
+ .writeU64(input.epoch)
17
+ .writeFixedBytes(input.encapsulation, CRYPTO_SIZES_BYTES.xWingCiphertext)
18
+ .toBytes();
19
+ }
@@ -0,0 +1,4 @@
1
+ import { Bytes } from "../../crypto-core";
2
+ import { TransportRequestAuthorizationInput } from "../model";
3
+ export declare function encodeTransportRequestAuthorizationInput(input: TransportRequestAuthorizationInput): Bytes;
4
+ //# sourceMappingURL=encode-transport-request-authorization-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-transport-request-authorization-input.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/encode-transport-request-authorization-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAoC,MAAM,iCAAiC,CAAC;AAM1F,OAAO,EAGN,kCAAkC,EAClC,MAAM,UAAU,CAAC;AAIlB,wBAAgB,wCAAwC,CACvD,KAAK,EAAE,kCAAkC,GACvC,KAAK,CAoBP"}
@@ -0,0 +1,35 @@
1
+ import { ByteWriter, encodeSignatureInput } from "../../crypto-core";
2
+ import { TRANSPORT_PACKET_FORMAT_VERSION, TRANSPORT_REQUEST_AUTHORIZATION_CONTEXT } from "../constants";
3
+ import { TransportCommandType, TransportPacketType } from "../model";
4
+ import { encodeTransportRequestPayload } from "./internal/transport-payload-codecs";
5
+ export function encodeTransportRequestAuthorizationInput(input) {
6
+ if (input.formatVersion !== TRANSPORT_PACKET_FORMAT_VERSION) {
7
+ throw new RangeError(`formatVersion must be ${TRANSPORT_PACKET_FORMAT_VERSION}`);
8
+ }
9
+ if (input.type !== TransportPacketType.REQUEST) {
10
+ throw new RangeError("type must be REQUEST");
11
+ }
12
+ if (!isAuthorizedCommand(input.command)) {
13
+ throw new RangeError(`command ${input.command} does not use packet authorization`);
14
+ }
15
+ const payload = new ByteWriter()
16
+ .writeU8(input.formatVersion)
17
+ .writeU8(input.type)
18
+ .writeString(input.requestId)
19
+ .writeU8(input.command)
20
+ .writeBytes(encodeTransportRequestPayload(input.command, input.payload))
21
+ .toBytes();
22
+ return encodeSignatureInput(TRANSPORT_REQUEST_AUTHORIZATION_CONTEXT, payload);
23
+ }
24
+ function isAuthorizedCommand(command) {
25
+ switch (command) {
26
+ case TransportCommandType.CREATE_QUEUE:
27
+ case TransportCommandType.REMOVE_QUEUE:
28
+ case TransportCommandType.SUBSCRIBE_QUEUE:
29
+ case TransportCommandType.UNSUBSCRIBE_QUEUE:
30
+ case TransportCommandType.ACK:
31
+ return true;
32
+ default:
33
+ return false;
34
+ }
35
+ }
@@ -1,3 +1,8 @@
1
- export * from "./RelayEncryptionKeyBundleCodec";
2
- export * from "./RelayIdentityPublicKeyCodec";
1
+ export * from "./DestinationSendRequestCodec";
2
+ export * from "./DestinationSendResponseCodec";
3
+ export * from "./TransportPacketCodec";
4
+ export * from "./encode-destination-send-authorization-input";
5
+ export * from "./encode-relay-key-bundle-signature-input";
6
+ export * from "./encode-s2d-associated-data";
7
+ export * from "./encode-transport-request-authorization-input";
3
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gDAAgD,CAAC"}
@@ -1,2 +1,7 @@
1
- export * from "./RelayEncryptionKeyBundleCodec";
2
- export * from "./RelayIdentityPublicKeyCodec";
1
+ export * from "./DestinationSendRequestCodec";
2
+ export * from "./DestinationSendResponseCodec";
3
+ export * from "./TransportPacketCodec";
4
+ export * from "./encode-destination-send-authorization-input";
5
+ export * from "./encode-relay-key-bundle-signature-input";
6
+ export * from "./encode-s2d-associated-data";
7
+ export * from "./encode-transport-request-authorization-input";
@@ -0,0 +1,7 @@
1
+ import { ByteReader, Bytes, ByteWriter } from "../../../crypto-core";
2
+ export type InternalCodec<T> = {
3
+ encode(value: T): Bytes;
4
+ decode(bytes: Bytes): T;
5
+ };
6
+ export declare function createInternalCodec<T>(write: (writer: ByteWriter, value: T) => void, read: (reader: ByteReader) => T): InternalCodec<T>;
7
+ //# sourceMappingURL=InternalCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalCodec.d.ts","sourceRoot":"","sources":["../../../../src/transport/codecs/internal/InternalCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC9B,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACxB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,EACpC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,EAC7C,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,CAAC,GAC7B,aAAa,CAAC,CAAC,CAAC,CAclB"}