@okee-e2ee/protocol 0.1.0 → 0.1.1

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 (163) hide show
  1. package/dist/constants/index.d.ts +2 -0
  2. package/dist/constants/index.d.ts.map +1 -0
  3. package/dist/constants/index.js +1 -0
  4. package/dist/constants/protocol.d.ts +2 -0
  5. package/dist/constants/protocol.d.ts.map +1 -0
  6. package/dist/constants/protocol.js +1 -0
  7. package/dist/crypto-core/constants/algorithms.d.ts +27 -0
  8. package/dist/crypto-core/constants/algorithms.d.ts.map +1 -0
  9. package/dist/crypto-core/constants/algorithms.js +26 -0
  10. package/dist/crypto-core/constants/context.d.ts +2 -0
  11. package/dist/crypto-core/constants/context.d.ts.map +1 -0
  12. package/dist/crypto-core/constants/context.js +5 -0
  13. package/dist/crypto-core/constants/index.d.ts +4 -0
  14. package/dist/crypto-core/constants/index.d.ts.map +1 -0
  15. package/dist/crypto-core/constants/index.js +3 -0
  16. package/dist/crypto-core/constants/protocol.d.ts +3 -0
  17. package/dist/crypto-core/constants/protocol.d.ts.map +1 -0
  18. package/dist/crypto-core/constants/protocol.js +2 -0
  19. package/dist/crypto-core/contracts/CodecContract.d.ts +7 -0
  20. package/dist/crypto-core/contracts/CodecContract.d.ts.map +1 -0
  21. package/dist/crypto-core/contracts/CodecContract.js +1 -0
  22. package/dist/crypto-core/contracts/index.d.ts +2 -0
  23. package/dist/crypto-core/contracts/index.d.ts.map +1 -0
  24. package/dist/crypto-core/contracts/index.js +1 -0
  25. package/dist/crypto-core/encoding/ByteReader.d.ts +20 -0
  26. package/dist/crypto-core/encoding/ByteReader.d.ts.map +1 -0
  27. package/dist/crypto-core/encoding/ByteReader.js +79 -0
  28. package/dist/crypto-core/encoding/ByteWriter.d.ts +20 -0
  29. package/dist/crypto-core/encoding/ByteWriter.d.ts.map +1 -0
  30. package/dist/crypto-core/encoding/ByteWriter.js +95 -0
  31. package/dist/crypto-core/encoding/helpers/encode-signature-input.d.ts +3 -0
  32. package/dist/crypto-core/encoding/helpers/encode-signature-input.d.ts.map +1 -0
  33. package/dist/crypto-core/encoding/helpers/encode-signature-input.js +7 -0
  34. package/dist/crypto-core/encoding/helpers/index.d.ts +2 -0
  35. package/dist/crypto-core/encoding/helpers/index.d.ts.map +1 -0
  36. package/dist/crypto-core/encoding/helpers/index.js +1 -0
  37. package/dist/crypto-core/encoding/index.d.ts +4 -0
  38. package/dist/crypto-core/encoding/index.d.ts.map +1 -0
  39. package/dist/crypto-core/encoding/index.js +3 -0
  40. package/dist/crypto-core/errors/CryptoCoreError.d.ts +11 -0
  41. package/dist/crypto-core/errors/CryptoCoreError.d.ts.map +1 -0
  42. package/dist/crypto-core/errors/CryptoCoreError.js +10 -0
  43. package/dist/crypto-core/errors/error-codes.d.ts +7 -0
  44. package/dist/crypto-core/errors/error-codes.d.ts.map +1 -0
  45. package/dist/crypto-core/errors/error-codes.js +5 -0
  46. package/dist/crypto-core/errors/error-messages.d.ts +3 -0
  47. package/dist/crypto-core/errors/error-messages.d.ts.map +1 -0
  48. package/dist/crypto-core/errors/error-messages.js +6 -0
  49. package/dist/crypto-core/errors/helpers/execute-crypto-core-or-throw.d.ts +13 -0
  50. package/dist/crypto-core/errors/helpers/execute-crypto-core-or-throw.d.ts.map +1 -0
  51. package/dist/crypto-core/errors/helpers/execute-crypto-core-or-throw.js +22 -0
  52. package/dist/crypto-core/errors/helpers/index.d.ts +2 -0
  53. package/dist/crypto-core/errors/helpers/index.d.ts.map +1 -0
  54. package/dist/crypto-core/errors/helpers/index.js +1 -0
  55. package/dist/crypto-core/errors/index.d.ts +5 -0
  56. package/dist/crypto-core/errors/index.d.ts.map +1 -0
  57. package/dist/crypto-core/errors/index.js +4 -0
  58. package/dist/crypto-core/index.d.ts +8 -0
  59. package/dist/crypto-core/index.d.ts.map +1 -0
  60. package/dist/crypto-core/index.js +7 -0
  61. package/dist/crypto-core/model/brand.d.ts +11 -0
  62. package/dist/crypto-core/model/brand.d.ts.map +1 -0
  63. package/dist/crypto-core/model/brand.js +1 -0
  64. package/dist/crypto-core/model/crypto-inputs.d.ts +20 -0
  65. package/dist/crypto-core/model/crypto-inputs.d.ts.map +1 -0
  66. package/dist/crypto-core/model/crypto-inputs.js +1 -0
  67. package/dist/crypto-core/model/index.d.ts +5 -0
  68. package/dist/crypto-core/model/index.d.ts.map +1 -0
  69. package/dist/crypto-core/model/index.js +4 -0
  70. package/dist/crypto-core/model/keys.d.ts +15 -0
  71. package/dist/crypto-core/model/keys.d.ts.map +1 -0
  72. package/dist/crypto-core/model/keys.js +1 -0
  73. package/dist/crypto-core/model/x-wing.d.ts +10 -0
  74. package/dist/crypto-core/model/x-wing.d.ts.map +1 -0
  75. package/dist/crypto-core/model/x-wing.js +1 -0
  76. package/dist/crypto-core/primitives/CryptoPrimitivesFacade.d.ts +19 -0
  77. package/dist/crypto-core/primitives/CryptoPrimitivesFacade.d.ts.map +1 -0
  78. package/dist/crypto-core/primitives/CryptoPrimitivesFacade.js +145 -0
  79. package/dist/crypto-core/primitives/contracts/CryptoPrimitivesFacadeContract.d.ts +16 -0
  80. package/dist/crypto-core/primitives/contracts/CryptoPrimitivesFacadeContract.d.ts.map +1 -0
  81. package/dist/crypto-core/primitives/contracts/CryptoPrimitivesFacadeContract.js +1 -0
  82. package/dist/crypto-core/primitives/contracts/CryptoPrimitivesPort.d.ts +18 -0
  83. package/dist/crypto-core/primitives/contracts/CryptoPrimitivesPort.d.ts.map +1 -0
  84. package/dist/crypto-core/primitives/contracts/CryptoPrimitivesPort.js +1 -0
  85. package/dist/crypto-core/primitives/contracts/XWingPort.d.ts +8 -0
  86. package/dist/crypto-core/primitives/contracts/XWingPort.d.ts.map +1 -0
  87. package/dist/crypto-core/primitives/contracts/XWingPort.js +1 -0
  88. package/dist/crypto-core/primitives/contracts/index.d.ts +4 -0
  89. package/dist/crypto-core/primitives/contracts/index.d.ts.map +1 -0
  90. package/dist/crypto-core/primitives/contracts/index.js +3 -0
  91. package/dist/crypto-core/primitives/index.d.ts +3 -0
  92. package/dist/crypto-core/primitives/index.d.ts.map +1 -0
  93. package/dist/crypto-core/primitives/index.js +2 -0
  94. package/dist/crypto-core/signature/SignatureFacade.d.ts +23 -0
  95. package/dist/crypto-core/signature/SignatureFacade.d.ts.map +1 -0
  96. package/dist/crypto-core/signature/SignatureFacade.js +112 -0
  97. package/dist/crypto-core/signature/contracts/Ed25519Port.d.ts +9 -0
  98. package/dist/crypto-core/signature/contracts/Ed25519Port.d.ts.map +1 -0
  99. package/dist/crypto-core/signature/contracts/Ed25519Port.js +1 -0
  100. package/dist/crypto-core/signature/contracts/MlDsaPort.d.ts +9 -0
  101. package/dist/crypto-core/signature/contracts/MlDsaPort.d.ts.map +1 -0
  102. package/dist/crypto-core/signature/contracts/MlDsaPort.js +1 -0
  103. package/dist/crypto-core/signature/contracts/SignatureFacadeContract.d.ts +12 -0
  104. package/dist/crypto-core/signature/contracts/SignatureFacadeContract.d.ts.map +1 -0
  105. package/dist/crypto-core/signature/contracts/SignatureFacadeContract.js +1 -0
  106. package/dist/crypto-core/signature/contracts/index.d.ts +4 -0
  107. package/dist/crypto-core/signature/contracts/index.d.ts.map +1 -0
  108. package/dist/crypto-core/signature/contracts/index.js +3 -0
  109. package/dist/crypto-core/signature/index.d.ts +4 -0
  110. package/dist/crypto-core/signature/index.d.ts.map +1 -0
  111. package/dist/crypto-core/signature/index.js +3 -0
  112. package/dist/crypto-core/signature/model/index.d.ts +2 -0
  113. package/dist/crypto-core/signature/model/index.d.ts.map +1 -0
  114. package/dist/crypto-core/signature/model/index.js +1 -0
  115. package/dist/crypto-core/signature/model/signature-model.d.ts +18 -0
  116. package/dist/crypto-core/signature/model/signature-model.d.ts.map +1 -0
  117. package/dist/crypto-core/signature/model/signature-model.js +1 -0
  118. package/dist/index.d.ts +4 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +3 -0
  121. package/dist/transport/codecs/RelayEncryptionKeyBundleCodec.d.ts +10 -0
  122. package/dist/transport/codecs/RelayEncryptionKeyBundleCodec.d.ts.map +1 -0
  123. package/dist/transport/codecs/RelayEncryptionKeyBundleCodec.js +42 -0
  124. package/dist/transport/codecs/RelayIdentityPublicKeyCodec.d.ts +10 -0
  125. package/dist/transport/codecs/RelayIdentityPublicKeyCodec.d.ts.map +1 -0
  126. package/dist/transport/codecs/RelayIdentityPublicKeyCodec.js +27 -0
  127. package/dist/transport/codecs/index.d.ts +3 -0
  128. package/dist/transport/codecs/index.d.ts.map +1 -0
  129. package/dist/transport/codecs/index.js +2 -0
  130. package/dist/transport/constants/index.d.ts +3 -0
  131. package/dist/transport/constants/index.d.ts.map +1 -0
  132. package/dist/transport/constants/index.js +2 -0
  133. package/dist/transport/constants/relay-constants.d.ts +4 -0
  134. package/dist/transport/constants/relay-constants.d.ts.map +1 -0
  135. package/dist/transport/constants/relay-constants.js +4 -0
  136. package/dist/transport/constants/transport-context.d.ts +3 -0
  137. package/dist/transport/constants/transport-context.d.ts.map +1 -0
  138. package/dist/transport/constants/transport-context.js +5 -0
  139. package/dist/transport/helpers/derive-relay-identity-fingerprint.d.ts +4 -0
  140. package/dist/transport/helpers/derive-relay-identity-fingerprint.d.ts.map +1 -0
  141. package/dist/transport/helpers/derive-relay-identity-fingerprint.js +7 -0
  142. package/dist/transport/helpers/encode-relay-key-bundle-signature-input.d.ts +4 -0
  143. package/dist/transport/helpers/encode-relay-key-bundle-signature-input.d.ts.map +1 -0
  144. package/dist/transport/helpers/encode-relay-key-bundle-signature-input.js +7 -0
  145. package/dist/transport/helpers/index.d.ts +3 -0
  146. package/dist/transport/helpers/index.d.ts.map +1 -0
  147. package/dist/transport/helpers/index.js +2 -0
  148. package/dist/transport/index.d.ts +5 -0
  149. package/dist/transport/index.d.ts.map +1 -0
  150. package/dist/transport/index.js +4 -0
  151. package/dist/transport/model/index.d.ts +4 -0
  152. package/dist/transport/model/index.d.ts.map +1 -0
  153. package/dist/transport/model/index.js +3 -0
  154. package/dist/transport/model/queue-model.d.ts +16 -0
  155. package/dist/transport/model/queue-model.d.ts.map +1 -0
  156. package/dist/transport/model/queue-model.js +1 -0
  157. package/dist/transport/model/relay-address.d.ts +7 -0
  158. package/dist/transport/model/relay-address.d.ts.map +1 -0
  159. package/dist/transport/model/relay-address.js +1 -0
  160. package/dist/transport/model/relay-key-bundle.d.ts +15 -0
  161. package/dist/transport/model/relay-key-bundle.d.ts.map +1 -0
  162. package/dist/transport/model/relay-key-bundle.js +1 -0
  163. package/package.json +1 -1
@@ -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 { RelayEncryptionKeyBundle } from "../model";
6
+ export declare class RelayEncryptionKeyBundleCodec implements CodecContract<RelayEncryptionKeyBundle> {
7
+ encode(value: RelayEncryptionKeyBundle): Bytes;
8
+ decode(bytes: Bytes): Result<RelayEncryptionKeyBundle, DecodeError>;
9
+ }
10
+ //# sourceMappingURL=RelayEncryptionKeyBundleCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelayEncryptionKeyBundleCodec.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/RelayEncryptionKeyBundleCodec.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,EAAkB,MAAM,uCAAuC,CAAC;AAG9E,OAAO,EAAE,wBAAwB,EAAwB,MAAM,UAAU,CAAC;AAE1E,qBAAa,6BAA8B,YAAW,aAAa,CAAC,wBAAwB,CAAC;IACrF,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,KAAK,CAYpD;IAEM,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAyBzE;CACD"}
@@ -0,0 +1,42 @@
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
+ import { RELAY_KEY_BUNDLE_FORMAT_VERSION } from "../constants";
5
+ export class RelayEncryptionKeyBundleCodec {
6
+ encode(value) {
7
+ if (value.formatVersion !== RELAY_KEY_BUNDLE_FORMAT_VERSION) {
8
+ throw new RangeError(`formatVersion must be ${RELAY_KEY_BUNDLE_FORMAT_VERSION}`);
9
+ }
10
+ return new ByteWriter()
11
+ .writeU8(value.formatVersion)
12
+ .writeU64(value.keyId)
13
+ .writeFixedBytes(value.publicKey, CRYPTO_SIZES_BYTES.xWingPublicKey)
14
+ .writeU64(value.validFrom)
15
+ .writeU64(value.expiresAt)
16
+ .toBytes();
17
+ }
18
+ decode(bytes) {
19
+ const reader = new ByteReader(bytes);
20
+ try {
21
+ const versionOffset = reader.offset;
22
+ const formatVersion = reader.readU8();
23
+ if (formatVersion !== RELAY_KEY_BUNDLE_FORMAT_VERSION) {
24
+ throw new DecodeError(`unsupported formatVersion ${formatVersion}`, versionOffset);
25
+ }
26
+ const value = {
27
+ formatVersion,
28
+ keyId: reader.readU64(),
29
+ publicKey: reader.readFixedBytes(CRYPTO_SIZES_BYTES.xWingPublicKey),
30
+ validFrom: reader.readU64(),
31
+ expiresAt: reader.readU64()
32
+ };
33
+ reader.assertEnd();
34
+ return { ok: true, value };
35
+ }
36
+ catch (error) {
37
+ if (error instanceof DecodeError)
38
+ return { ok: false, error };
39
+ throw error;
40
+ }
41
+ }
42
+ }
@@ -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 "../../crypto-core/signature/model";
6
+ export declare class RelayIdentityPublicKeyCodec implements CodecContract<HybridSignaturePublicKey> {
7
+ encode(value: HybridSignaturePublicKey): Bytes;
8
+ decode(bytes: Bytes): Result<HybridSignaturePublicKey, DecodeError>;
9
+ }
10
+ //# sourceMappingURL=RelayIdentityPublicKeyCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelayIdentityPublicKeyCodec.d.ts","sourceRoot":"","sources":["../../../src/transport/codecs/RelayIdentityPublicKeyCodec.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;AAC9D,OAAO,EAEN,wBAAwB,EAExB,MAAM,iDAAiD,CAAC;AAEzD,qBAAa,2BAA4B,YAAW,aAAa,CAAC,wBAAwB,CAAC;IACnF,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,KAAK,CAKpD;IAEM,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAgBzE;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 RelayIdentityPublicKeyCodec {
5
+ encode(value) {
6
+ return new ByteWriter()
7
+ .writeFixedBytes(value.ed25519, CRYPTO_SIZES_BYTES.ed25519PublicKey)
8
+ .writeFixedBytes(value.mlDsa, CRYPTO_SIZES_BYTES.mlDsaPublicKey)
9
+ .toBytes();
10
+ }
11
+ decode(bytes) {
12
+ const reader = new ByteReader(bytes);
13
+ try {
14
+ const value = {
15
+ ed25519: reader.readFixedBytes(CRYPTO_SIZES_BYTES.ed25519PublicKey),
16
+ mlDsa: reader.readFixedBytes(CRYPTO_SIZES_BYTES.mlDsaPublicKey)
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,3 @@
1
+ export * from "./RelayEncryptionKeyBundleCodec";
2
+ export * from "./RelayIdentityPublicKeyCodec";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export * from "./RelayEncryptionKeyBundleCodec";
2
+ export * from "./RelayIdentityPublicKeyCodec";
@@ -0,0 +1,3 @@
1
+ export * from "./relay-constants";
2
+ export * from "./transport-context";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./relay-constants";
2
+ export * from "./transport-context";
@@ -0,0 +1,4 @@
1
+ export declare const RELAY_KEY_BUNDLE_FORMAT_VERSION = 1;
2
+ export declare const RELAY_IDENTITY_FINGERPRINT_CONTEXT: string;
3
+ export declare const RELAY_KEY_BUNDLE_SIGNATURE_CONTEXT: string;
4
+ //# sourceMappingURL=relay-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-constants.d.ts","sourceRoot":"","sources":["../../../src/transport/constants/relay-constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,eAAO,MAAM,kCAAkC,QAE9C,CAAC;AACF,eAAO,MAAM,kCAAkC,QAE9C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { createTransportCryptoContext } from "./transport-context";
2
+ export const RELAY_KEY_BUNDLE_FORMAT_VERSION = 1;
3
+ export const RELAY_IDENTITY_FINGERPRINT_CONTEXT = createTransportCryptoContext("relay/identity-fingerprint");
4
+ export const RELAY_KEY_BUNDLE_SIGNATURE_CONTEXT = createTransportCryptoContext("relay/encryption-key-bundle-signature");
@@ -0,0 +1,3 @@
1
+ export declare const TRANSPORT_CRYPTO_SUITE_ID: "x-wing-ed25519-ml-dsa-65-aes-256-gcm-hkdf-sha-256";
2
+ export declare function createTransportCryptoContext(purpose: string): string;
3
+ //# sourceMappingURL=transport-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-context.d.ts","sourceRoot":"","sources":["../../../src/transport/constants/transport-context.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,EACrC,mDAA4D,CAAC;AAE9D,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE"}
@@ -0,0 +1,5 @@
1
+ import { OKEE_PROTOCOL_ID } from "../../constants";
2
+ export const TRANSPORT_CRYPTO_SUITE_ID = "x-wing-ed25519-ml-dsa-65-aes-256-gcm-hkdf-sha-256";
3
+ export function createTransportCryptoContext(purpose) {
4
+ return `${OKEE_PROTOCOL_ID}/${TRANSPORT_CRYPTO_SUITE_ID}/${purpose}`;
5
+ }
@@ -0,0 +1,4 @@
1
+ import { type CryptoPrimitivesFacadeContract, type HybridSignaturePublicKey } from "../../crypto-core";
2
+ import { RelayIdentityFingerprint } from "../model";
3
+ export declare function deriveRelayIdentityFingerprint(crypto: CryptoPrimitivesFacadeContract, publicKey: HybridSignaturePublicKey): Promise<RelayIdentityFingerprint>;
4
+ //# sourceMappingURL=derive-relay-identity-fingerprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive-relay-identity-fingerprint.d.ts","sourceRoot":"","sources":["../../../src/transport/helpers/derive-relay-identity-fingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,8BAA8B,EAEnC,KAAK,wBAAwB,EAC7B,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAIpD,wBAAsB,8BAA8B,CACnD,MAAM,EAAE,8BAA8B,EACtC,SAAS,EAAE,wBAAwB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CAInC"}
@@ -0,0 +1,7 @@
1
+ import { encodeSignatureInput } from "../../crypto-core";
2
+ import { RelayIdentityPublicKeyCodec } from "../codecs";
3
+ import { RELAY_IDENTITY_FINGERPRINT_CONTEXT } from "../constants";
4
+ const identityCodec = new RelayIdentityPublicKeyCodec();
5
+ export async function deriveRelayIdentityFingerprint(crypto, publicKey) {
6
+ return (await crypto.sha256(encodeSignatureInput(RELAY_IDENTITY_FINGERPRINT_CONTEXT, identityCodec.encode(publicKey))));
7
+ }
@@ -0,0 +1,4 @@
1
+ import { Bytes } from "../../crypto-core";
2
+ import { RelayEncryptionKeyBundle } from "../model";
3
+ export declare function encodeRelayKeyBundleSignatureInput(bundle: RelayEncryptionKeyBundle): Bytes;
4
+ //# sourceMappingURL=encode-relay-key-bundle-signature-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-relay-key-bundle-signature-input.d.ts","sourceRoot":"","sources":["../../../src/transport/helpers/encode-relay-key-bundle-signature-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAwB,MAAM,iCAAiC,CAAC;AAI9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAIpD,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,wBAAwB,GAAG,KAAK,CAE1F"}
@@ -0,0 +1,7 @@
1
+ import { encodeSignatureInput } from "../../crypto-core";
2
+ import { RelayEncryptionKeyBundleCodec } from "../codecs";
3
+ import { RELAY_KEY_BUNDLE_SIGNATURE_CONTEXT } from "../constants";
4
+ const keyBundleCodec = new RelayEncryptionKeyBundleCodec();
5
+ export function encodeRelayKeyBundleSignatureInput(bundle) {
6
+ return encodeSignatureInput(RELAY_KEY_BUNDLE_SIGNATURE_CONTEXT, keyBundleCodec.encode(bundle));
7
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./derive-relay-identity-fingerprint";
2
+ export * from "./encode-relay-key-bundle-signature-input";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./derive-relay-identity-fingerprint";
2
+ export * from "./encode-relay-key-bundle-signature-input";
@@ -0,0 +1,5 @@
1
+ export * from "./codecs";
2
+ export * from "./constants";
3
+ export * from "./helpers";
4
+ export * from "./model";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./codecs";
2
+ export * from "./constants";
3
+ export * from "./helpers";
4
+ export * from "./model";
@@ -0,0 +1,4 @@
1
+ export * from "./queue-model";
2
+ export * from "./relay-address";
3
+ export * from "./relay-key-bundle";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transport/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./queue-model";
2
+ export * from "./relay-address";
3
+ export * from "./relay-key-bundle";
@@ -0,0 +1,16 @@
1
+ import { Branded, Bytes, PublicKey } from "../../crypto-core";
2
+ import { RelayAddress } from "./relay-address";
3
+ export type RecipientQueueId = Branded<string, "TransportRecipientQueueId">;
4
+ export type SenderQueueId = Branded<string, "TransportSenderQueueId">;
5
+ export type TransportOperationId = Branded<string, "TransportOperationId">;
6
+ export type DeliveryId = Branded<string, "TransportDeliveryId">;
7
+ export type RecipientHybridAuthPublicKey = PublicKey<Bytes, "TransportRecipientHybridAuth">;
8
+ export type SenderHybridAuthPublicKey = PublicKey<Bytes, "TransportSenderHybridAuth">;
9
+ export type QueueSetupCapability = Branded<Bytes, "TransportQueueSetupCapability">;
10
+ export type QueueSetupVerifier = Branded<Bytes, "TransportQueueSetupVerifier">;
11
+ export type SendQueueAddress = {
12
+ readonly senderQueueId: SenderQueueId;
13
+ readonly relay: RelayAddress;
14
+ readonly setupCapability: QueueSetupCapability;
15
+ };
16
+ //# sourceMappingURL=queue-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-model.d.ts","sourceRoot":"","sources":["../../../src/transport/model/queue-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAEhE,MAAM,MAAM,4BAA4B,GAAG,SAAS,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;AAC5F,MAAM,MAAM,yBAAyB,GAAG,SAAS,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;AAEtF,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC;AACnF,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;AAE/E,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;CAC/C,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Branded, Bytes } from "../../crypto-core";
2
+ export type RelayIdentityFingerprint = Branded<Bytes, "TransportRelayIdentityFingerprint">;
3
+ export type RelayAddress = {
4
+ readonly address: string;
5
+ readonly fingerprint: RelayIdentityFingerprint;
6
+ };
7
+ //# sourceMappingURL=relay-address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-address.d.ts","sourceRoot":"","sources":["../../../src/transport/model/relay-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;AAE3F,MAAM,MAAM,YAAY,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;CAC/C,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Branded, XWingPublicKey } from "../../crypto-core";
2
+ import { HybridSignature } from "../../crypto-core/signature/model";
3
+ import { RELAY_KEY_BUNDLE_FORMAT_VERSION } from "../constants";
4
+ export type RelayEncryptionKeyId = Branded<bigint, "TransportRelayEncryptionKeyId">;
5
+ export type RelayEncryptionKeyBundle = {
6
+ readonly formatVersion: typeof RELAY_KEY_BUNDLE_FORMAT_VERSION;
7
+ readonly keyId: RelayEncryptionKeyId;
8
+ readonly publicKey: XWingPublicKey;
9
+ readonly validFrom: bigint;
10
+ readonly expiresAt: bigint;
11
+ };
12
+ export type SignedRelayEncryptionKeyBundle = RelayEncryptionKeyBundle & {
13
+ readonly signature: HybridSignature;
14
+ };
15
+ //# sourceMappingURL=relay-key-bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-key-bundle.d.ts","sourceRoot":"","sources":["../../../src/transport/model/relay-key-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAElF,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;AAEpF,MAAM,MAAM,wBAAwB,GAAG;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,+BAA+B,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,wBAAwB,GAAG;IACvE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACpC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@okee-e2ee/protocol",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Shared cryptographic and wire protocol definitions for Okee clients and relays",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",