@matter/general 0.16.0-alpha.0-20250812-285b75d83 → 0.16.0-alpha.0-20250815-ac9fd6eb0

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 (219) hide show
  1. package/dist/cjs/codec/DerCodec.d.ts +15 -14
  2. package/dist/cjs/codec/DerCodec.d.ts.map +1 -1
  3. package/dist/cjs/codec/DerCodec.js +19 -25
  4. package/dist/cjs/codec/DerCodec.js.map +1 -1
  5. package/dist/cjs/codec/DerTypes.d.ts +9 -8
  6. package/dist/cjs/codec/DerTypes.d.ts.map +1 -1
  7. package/dist/cjs/codec/DerTypes.js.map +1 -1
  8. package/dist/cjs/codec/DnsCodec.d.ts +16 -16
  9. package/dist/cjs/codec/DnsCodec.d.ts.map +1 -1
  10. package/dist/cjs/codec/DnsCodec.js +7 -7
  11. package/dist/cjs/codec/DnsCodec.js.map +1 -1
  12. package/dist/cjs/crypto/Crypto.d.ts +11 -10
  13. package/dist/cjs/crypto/Crypto.d.ts.map +1 -1
  14. package/dist/cjs/crypto/Crypto.js +4 -4
  15. package/dist/cjs/crypto/Crypto.js.map +1 -1
  16. package/dist/cjs/crypto/Key.d.ts +22 -21
  17. package/dist/cjs/crypto/Key.d.ts.map +1 -1
  18. package/dist/cjs/crypto/Key.js +17 -16
  19. package/dist/cjs/crypto/Key.js.map +1 -1
  20. package/dist/cjs/crypto/MockCrypto.d.ts.map +1 -1
  21. package/dist/cjs/crypto/MockCrypto.js +2 -1
  22. package/dist/cjs/crypto/MockCrypto.js.map +1 -1
  23. package/dist/cjs/crypto/Spake2p.d.ts +12 -11
  24. package/dist/cjs/crypto/Spake2p.d.ts.map +1 -1
  25. package/dist/cjs/crypto/Spake2p.js +15 -11
  26. package/dist/cjs/crypto/Spake2p.js.map +1 -1
  27. package/dist/cjs/crypto/StandardCrypto.d.ts +12 -11
  28. package/dist/cjs/crypto/StandardCrypto.d.ts.map +1 -1
  29. package/dist/cjs/crypto/StandardCrypto.js +27 -17
  30. package/dist/cjs/crypto/StandardCrypto.js.map +1 -1
  31. package/dist/cjs/crypto/aes/Aes.d.ts +2 -1
  32. package/dist/cjs/crypto/aes/Aes.d.ts.map +1 -1
  33. package/dist/cjs/crypto/aes/Aes.js +3 -1
  34. package/dist/cjs/crypto/aes/Aes.js.map +1 -1
  35. package/dist/cjs/crypto/aes/Ccm.d.ts +4 -3
  36. package/dist/cjs/crypto/aes/Ccm.d.ts.map +1 -1
  37. package/dist/cjs/crypto/aes/Ccm.js.map +1 -1
  38. package/dist/cjs/log/Diagnostic.js +1 -1
  39. package/dist/cjs/log/Diagnostic.js.map +1 -1
  40. package/dist/cjs/log/LogFormat.js +1 -1
  41. package/dist/cjs/log/LogFormat.js.map +1 -1
  42. package/dist/cjs/log/Logger.js +1 -1
  43. package/dist/cjs/log/Logger.js.map +1 -1
  44. package/dist/cjs/net/NetInterface.d.ts +2 -1
  45. package/dist/cjs/net/NetInterface.d.ts.map +1 -1
  46. package/dist/cjs/net/NetInterface.js.map +1 -1
  47. package/dist/cjs/net/TransportInterface.d.ts +2 -1
  48. package/dist/cjs/net/TransportInterface.d.ts.map +1 -1
  49. package/dist/cjs/net/TransportInterface.js.map +1 -1
  50. package/dist/cjs/net/UdpChannel.d.ts +3 -3
  51. package/dist/cjs/net/UdpChannel.d.ts.map +1 -1
  52. package/dist/cjs/net/UdpInterface.d.ts +4 -3
  53. package/dist/cjs/net/UdpInterface.d.ts.map +1 -1
  54. package/dist/cjs/net/UdpInterface.js.map +1 -1
  55. package/dist/cjs/net/UdpMulticastServer.d.ts +3 -2
  56. package/dist/cjs/net/UdpMulticastServer.d.ts.map +1 -1
  57. package/dist/cjs/net/UdpMulticastServer.js.map +1 -1
  58. package/dist/cjs/net/mock/MockRouter.d.ts +1 -1
  59. package/dist/cjs/net/mock/MockRouter.d.ts.map +1 -1
  60. package/dist/cjs/net/mock/MockUdpChannel.d.ts +1 -1
  61. package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
  62. package/dist/cjs/net/mock/MockUdpChannel.js.map +1 -1
  63. package/dist/cjs/net/mock/NetworkSimulator.d.ts +1 -1
  64. package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -1
  65. package/dist/cjs/storage/Storage.d.ts +1 -1
  66. package/dist/cjs/storage/Storage.d.ts.map +1 -1
  67. package/dist/cjs/storage/StorageBackendMemory.d.ts +1 -1
  68. package/dist/cjs/storage/StorageBackendMemory.d.ts.map +1 -1
  69. package/dist/cjs/storage/StorageBackendMemory.js +7 -5
  70. package/dist/cjs/storage/StorageBackendMemory.js.map +1 -1
  71. package/dist/cjs/storage/StorageContext.d.ts +1 -1
  72. package/dist/cjs/storage/StorageContext.d.ts.map +1 -1
  73. package/dist/cjs/storage/StorageContext.js.map +1 -1
  74. package/dist/cjs/storage/StringifyTools.d.ts +2 -1
  75. package/dist/cjs/storage/StringifyTools.d.ts.map +1 -1
  76. package/dist/cjs/storage/StringifyTools.js +1 -1
  77. package/dist/cjs/storage/StringifyTools.js.map +1 -1
  78. package/dist/cjs/transaction/Tx.js +5 -1
  79. package/dist/cjs/transaction/Tx.js.map +1 -1
  80. package/dist/cjs/util/Bytes.d.ts +29 -11
  81. package/dist/cjs/util/Bytes.d.ts.map +1 -1
  82. package/dist/cjs/util/Bytes.js +30 -11
  83. package/dist/cjs/util/Bytes.js.map +1 -1
  84. package/dist/cjs/util/DataReader.d.ts +2 -2
  85. package/dist/cjs/util/DataReader.d.ts.map +1 -1
  86. package/dist/cjs/util/DataReader.js +1 -1
  87. package/dist/cjs/util/DataReader.js.map +1 -1
  88. package/dist/cjs/util/DataWriter.d.ts +3 -3
  89. package/dist/cjs/util/DataWriter.d.ts.map +1 -1
  90. package/dist/cjs/util/DataWriter.js +1 -1
  91. package/dist/cjs/util/DataWriter.js.map +1 -1
  92. package/dist/cjs/util/String.d.ts.map +1 -1
  93. package/dist/cjs/util/String.js +3 -8
  94. package/dist/cjs/util/String.js.map +1 -1
  95. package/dist/esm/codec/DerCodec.d.ts +15 -14
  96. package/dist/esm/codec/DerCodec.d.ts.map +1 -1
  97. package/dist/esm/codec/DerCodec.js +19 -25
  98. package/dist/esm/codec/DerCodec.js.map +1 -1
  99. package/dist/esm/codec/DerTypes.d.ts +9 -8
  100. package/dist/esm/codec/DerTypes.d.ts.map +1 -1
  101. package/dist/esm/codec/DerTypes.js.map +1 -1
  102. package/dist/esm/codec/DnsCodec.d.ts +16 -16
  103. package/dist/esm/codec/DnsCodec.d.ts.map +1 -1
  104. package/dist/esm/codec/DnsCodec.js +7 -7
  105. package/dist/esm/codec/DnsCodec.js.map +1 -1
  106. package/dist/esm/crypto/Crypto.d.ts +11 -10
  107. package/dist/esm/crypto/Crypto.d.ts.map +1 -1
  108. package/dist/esm/crypto/Crypto.js +4 -4
  109. package/dist/esm/crypto/Crypto.js.map +1 -1
  110. package/dist/esm/crypto/Key.d.ts +22 -21
  111. package/dist/esm/crypto/Key.d.ts.map +1 -1
  112. package/dist/esm/crypto/Key.js +17 -16
  113. package/dist/esm/crypto/Key.js.map +1 -1
  114. package/dist/esm/crypto/MockCrypto.d.ts.map +1 -1
  115. package/dist/esm/crypto/MockCrypto.js +2 -1
  116. package/dist/esm/crypto/MockCrypto.js.map +1 -1
  117. package/dist/esm/crypto/Spake2p.d.ts +12 -11
  118. package/dist/esm/crypto/Spake2p.d.ts.map +1 -1
  119. package/dist/esm/crypto/Spake2p.js +15 -11
  120. package/dist/esm/crypto/Spake2p.js.map +1 -1
  121. package/dist/esm/crypto/StandardCrypto.d.ts +12 -11
  122. package/dist/esm/crypto/StandardCrypto.d.ts.map +1 -1
  123. package/dist/esm/crypto/StandardCrypto.js +27 -17
  124. package/dist/esm/crypto/StandardCrypto.js.map +1 -1
  125. package/dist/esm/crypto/aes/Aes.d.ts +2 -1
  126. package/dist/esm/crypto/aes/Aes.d.ts.map +1 -1
  127. package/dist/esm/crypto/aes/Aes.js +3 -1
  128. package/dist/esm/crypto/aes/Aes.js.map +1 -1
  129. package/dist/esm/crypto/aes/Ccm.d.ts +4 -3
  130. package/dist/esm/crypto/aes/Ccm.d.ts.map +1 -1
  131. package/dist/esm/crypto/aes/Ccm.js.map +1 -1
  132. package/dist/esm/log/Diagnostic.js +1 -1
  133. package/dist/esm/log/Diagnostic.js.map +1 -1
  134. package/dist/esm/log/LogFormat.js +1 -1
  135. package/dist/esm/log/LogFormat.js.map +1 -1
  136. package/dist/esm/log/Logger.js +1 -1
  137. package/dist/esm/log/Logger.js.map +1 -1
  138. package/dist/esm/net/NetInterface.d.ts +2 -1
  139. package/dist/esm/net/NetInterface.d.ts.map +1 -1
  140. package/dist/esm/net/NetInterface.js.map +1 -1
  141. package/dist/esm/net/TransportInterface.d.ts +2 -1
  142. package/dist/esm/net/TransportInterface.d.ts.map +1 -1
  143. package/dist/esm/net/TransportInterface.js.map +1 -1
  144. package/dist/esm/net/UdpChannel.d.ts +3 -3
  145. package/dist/esm/net/UdpChannel.d.ts.map +1 -1
  146. package/dist/esm/net/UdpInterface.d.ts +4 -3
  147. package/dist/esm/net/UdpInterface.d.ts.map +1 -1
  148. package/dist/esm/net/UdpInterface.js.map +1 -1
  149. package/dist/esm/net/UdpMulticastServer.d.ts +3 -2
  150. package/dist/esm/net/UdpMulticastServer.d.ts.map +1 -1
  151. package/dist/esm/net/UdpMulticastServer.js.map +1 -1
  152. package/dist/esm/net/mock/MockRouter.d.ts +1 -1
  153. package/dist/esm/net/mock/MockRouter.d.ts.map +1 -1
  154. package/dist/esm/net/mock/MockUdpChannel.d.ts +1 -1
  155. package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
  156. package/dist/esm/net/mock/MockUdpChannel.js.map +1 -1
  157. package/dist/esm/net/mock/NetworkSimulator.d.ts +1 -1
  158. package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -1
  159. package/dist/esm/storage/Storage.d.ts +1 -1
  160. package/dist/esm/storage/Storage.d.ts.map +1 -1
  161. package/dist/esm/storage/StorageBackendMemory.d.ts +1 -1
  162. package/dist/esm/storage/StorageBackendMemory.d.ts.map +1 -1
  163. package/dist/esm/storage/StorageBackendMemory.js +7 -5
  164. package/dist/esm/storage/StorageBackendMemory.js.map +1 -1
  165. package/dist/esm/storage/StorageContext.d.ts +1 -1
  166. package/dist/esm/storage/StorageContext.d.ts.map +1 -1
  167. package/dist/esm/storage/StorageContext.js.map +1 -1
  168. package/dist/esm/storage/StringifyTools.d.ts +2 -1
  169. package/dist/esm/storage/StringifyTools.d.ts.map +1 -1
  170. package/dist/esm/storage/StringifyTools.js +1 -1
  171. package/dist/esm/storage/StringifyTools.js.map +1 -1
  172. package/dist/esm/transaction/Tx.js +5 -1
  173. package/dist/esm/transaction/Tx.js.map +1 -1
  174. package/dist/esm/util/Bytes.d.ts +29 -11
  175. package/dist/esm/util/Bytes.d.ts.map +1 -1
  176. package/dist/esm/util/Bytes.js +31 -12
  177. package/dist/esm/util/Bytes.js.map +1 -1
  178. package/dist/esm/util/DataReader.d.ts +2 -2
  179. package/dist/esm/util/DataReader.d.ts.map +1 -1
  180. package/dist/esm/util/DataReader.js +1 -1
  181. package/dist/esm/util/DataReader.js.map +1 -1
  182. package/dist/esm/util/DataWriter.d.ts +3 -3
  183. package/dist/esm/util/DataWriter.d.ts.map +1 -1
  184. package/dist/esm/util/DataWriter.js +2 -2
  185. package/dist/esm/util/DataWriter.js.map +1 -1
  186. package/dist/esm/util/String.d.ts.map +1 -1
  187. package/dist/esm/util/String.js +3 -8
  188. package/dist/esm/util/String.js.map +1 -1
  189. package/package.json +2 -2
  190. package/src/codec/DerCodec.ts +32 -39
  191. package/src/codec/DerTypes.ts +4 -3
  192. package/src/codec/DnsCodec.ts +21 -21
  193. package/src/crypto/Crypto.ts +16 -26
  194. package/src/crypto/Key.ts +46 -41
  195. package/src/crypto/MockCrypto.ts +2 -1
  196. package/src/crypto/Spake2p.ts +26 -22
  197. package/src/crypto/StandardCrypto.ts +40 -31
  198. package/src/crypto/aes/Aes.ts +4 -2
  199. package/src/crypto/aes/Ccm.ts +4 -3
  200. package/src/log/Diagnostic.ts +1 -1
  201. package/src/log/LogFormat.ts +1 -1
  202. package/src/log/Logger.ts +1 -1
  203. package/src/net/NetInterface.ts +2 -1
  204. package/src/net/TransportInterface.ts +2 -1
  205. package/src/net/UdpChannel.ts +3 -3
  206. package/src/net/UdpInterface.ts +4 -3
  207. package/src/net/UdpMulticastServer.ts +3 -2
  208. package/src/net/mock/MockRouter.ts +1 -1
  209. package/src/net/mock/MockUdpChannel.ts +1 -1
  210. package/src/net/mock/NetworkSimulator.ts +1 -1
  211. package/src/storage/Storage.ts +1 -1
  212. package/src/storage/StorageBackendMemory.ts +8 -6
  213. package/src/storage/StorageContext.ts +1 -1
  214. package/src/storage/StringifyTools.ts +2 -2
  215. package/src/transaction/Tx.ts +5 -1
  216. package/src/util/Bytes.ts +59 -21
  217. package/src/util/DataReader.ts +2 -2
  218. package/src/util/DataWriter.ts +3 -3
  219. package/src/util/String.ts +3 -8
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Endian } from "./Bytes.js";
6
+ import { Bytes, Endian } from "./Bytes.js";
7
7
  /** Writer that auto-increments its offset after each write. */
8
8
  export declare class DataWriter<E extends Endian = Endian.Big> {
9
9
  private readonly littleEndian;
@@ -20,7 +20,7 @@ export declare class DataWriter<E extends Endian = Endian.Big> {
20
20
  writeInt64(value: number | bigint): void;
21
21
  writeFloat(value: number): void;
22
22
  writeDouble(value: number): void;
23
- writeByteArray(value: Uint8Array): void;
24
- toByteArray(): Uint8Array<ArrayBuffer>;
23
+ writeByteArray(value: Bytes): void;
24
+ toByteArray(): Uint8Array<ArrayBufferLike>;
25
25
  }
26
26
  //# sourceMappingURL=DataWriter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataWriter.d.ts","sourceRoot":"","sources":["../../../src/util/DataWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,+DAA+D;AAE/D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GAAG;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,MAAM,CAAC,EAAE,CAAC;IAItB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOhC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM;IAOxB,WAAW,CAAC,KAAK,EAAE,MAAM;IAOzB,cAAc,CAAC,KAAK,EAAE,UAAU;IAKhC,WAAW;CAed"}
1
+ {"version":3,"file":"DataWriter.d.ts","sourceRoot":"","sources":["../../../src/util/DataWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG3C,+DAA+D;AAE/D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GAAG;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,MAAM,CAAC,EAAE,CAAC;IAItB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOhC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM;IAOxB,WAAW,CAAC,KAAK,EAAE,MAAM;IAOzB,cAAc,CAAC,KAAK,EAAE,KAAK;IAK3B,WAAW;CAed"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Endian } from "./Bytes.js";
6
+ import { Bytes, Endian } from "./Bytes.js";
7
7
  import { toNumber } from "./Number.js";
8
8
  class DataWriter {
9
9
  littleEndian;
@@ -71,7 +71,7 @@ class DataWriter {
71
71
  this.length += 8;
72
72
  }
73
73
  writeByteArray(value) {
74
- this.chunks.push(value);
74
+ this.chunks.push(Bytes.of(value));
75
75
  this.length += value.byteLength;
76
76
  }
77
77
  toByteArray() {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/DataWriter.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../src/util/String.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GACE,UAAU,CAAC,CAAC,CAAC,CAClE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,UA8DxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,UAgBvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,sBA8EnC;AAED,yBAAiB,SAAS,CAAC;IACvB;;OAEG;IACI,MAAM,SAAS,eAAsB,CAAC;IAE7C;;;OAGG;IACH,SAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,OAU9B;IAED;;OAEG;IACH,SAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,WAgBrC;CACJ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAkBvE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,UAwD3C"}
1
+ {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../src/util/String.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GACE,UAAU,CAAC,CAAC,CAAC,CAClE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,UA8DxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,UAgBvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,sBAyEnC;AAED,yBAAiB,SAAS,CAAC;IACvB;;OAEG;IACI,MAAM,SAAS,eAAsB,CAAC;IAE7C;;;OAGG;IACH,SAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,OAU9B;IAED;;OAEG;IACH,SAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,WAgBrC;CACJ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAkBvE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,UAwD3C"}
@@ -107,13 +107,8 @@ function serialize(value) {
107
107
  if (typeof value2 === "boolean") {
108
108
  return value2 ? "true" : "false";
109
109
  }
110
- if (ArrayBuffer.isView(value2)) {
111
- const dv = new DataView(value2.buffer, value2.byteOffset, value2.byteLength);
112
- const bytes = Array();
113
- for (let i = 0; i < dv.byteLength; i++) {
114
- bytes.push(dv.getUint8(i).toString(16).padStart(2, "0"));
115
- }
116
- return bytes.join("");
110
+ if (Bytes.isBytes(value2)) {
111
+ return Bytes.toHex(value2);
117
112
  }
118
113
  if (visited.has(value2)) {
119
114
  return;
@@ -203,7 +198,7 @@ function serializeToJs(value) {
203
198
  if (value instanceof Date) {
204
199
  return `new Date(${JSON.stringify(value.toISOString)})`;
205
200
  }
206
- if (value instanceof Uint8Array) {
201
+ if (Bytes.isBytes(value)) {
207
202
  return `b$\`${Bytes.toHex(value)}\``;
208
203
  }
209
204
  if (value === null) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/String.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["value", "serialize", "parts"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/general",
3
- "version": "0.16.0-alpha.0-20250812-285b75d83",
3
+ "version": "0.16.0-alpha.0-20250815-ac9fd6eb0",
4
4
  "description": "Non-Matter support for Matter.js",
5
5
  "keywords": [
6
6
  "iot",
@@ -36,7 +36,7 @@
36
36
  "@noble/curves": "^1.9.5"
37
37
  },
38
38
  "devDependencies": {
39
- "@matter/testing": "0.16.0-alpha.0-20250812-285b75d83"
39
+ "@matter/testing": "0.16.0-alpha.0-20250815-ac9fd6eb0"
40
40
  },
41
41
  "files": [
42
42
  "dist/**/*",
@@ -54,7 +54,7 @@ export const DerObject = (objectId: string, content: any = {}) => ({
54
54
  [DerKey.ObjectId]: ObjectId(objectId),
55
55
  ...content,
56
56
  });
57
- export const DerBitString = (data: Uint8Array, padding = 0) => ({
57
+ export const DerBitString = (data: Bytes, padding = 0) => ({
58
58
  [DerKey.TagId]: DerType.BitString as number,
59
59
  [DerKey.Bytes]: data,
60
60
  [DerKey.BitsPadding]: padding,
@@ -63,7 +63,7 @@ export const ContextTagged = (tagId: number, value?: any) => ({
63
63
  [DerKey.TagId]: tagId | DerClass.ContextSpecific | CONSTRUCTED,
64
64
  [DerKey.Bytes]: value === undefined ? new Uint8Array(0) : DerCodec.encode(value),
65
65
  });
66
- export const ContextTaggedBytes = (tagId: number, value: Uint8Array) => ({
66
+ export const ContextTaggedBytes = (tagId: number, value: Bytes) => ({
67
67
  [DerKey.TagId]: tagId | DerClass.ContextSpecific,
68
68
  [DerKey.Bytes]: value,
69
69
  });
@@ -71,19 +71,17 @@ export const DatatypeOverride = (type: DerType, value: any) => ({
71
71
  [DerKey.TypeOverride]: type,
72
72
  [DerKey.RawData]: value,
73
73
  });
74
- export const RawBytes = (bytes: Uint8Array) => ({
74
+ export const RawBytes = (bytes: Bytes) => ({
75
75
  [DerKey.Bytes]: bytes,
76
76
  });
77
- export const DerBigUint = (number: Uint8Array | ArrayBuffer) => {
77
+ export const DerBigUint = (number: Bytes) => {
78
78
  // We don't need bigint support currently, but we can translate here if we ever do
79
79
 
80
- if (!ArrayBuffer.isView(number)) {
81
- number = new Uint8Array(number);
82
- }
80
+ const numberData = Bytes.of(number);
83
81
 
84
82
  // Ensure value does not encode as negative
85
- if ((number as Uint8Array)[0] & 0x80) {
86
- number = Bytes.concat(new Uint8Array([0]), number as Uint8Array);
83
+ if (numberData[0] & 0x80) {
84
+ number = Bytes.concat(new Uint8Array([0]), numberData);
87
85
  }
88
86
 
89
87
  return {
@@ -94,16 +92,16 @@ export const DerBigUint = (number: Uint8Array | ArrayBuffer) => {
94
92
 
95
93
  export type DerNode = {
96
94
  [DerKey.TagId]: number;
97
- [DerKey.Bytes]: Uint8Array;
95
+ [DerKey.Bytes]: Bytes;
98
96
  [DerKey.Elements]?: DerNode[];
99
97
  [DerKey.BitsPadding]?: number;
100
98
  };
101
99
 
102
100
  export class DerCodec {
103
- static encode(value: unknown): Uint8Array {
101
+ static encode(value: unknown): Bytes {
104
102
  if (Array.isArray(value)) {
105
103
  return this.#encodeArray(value);
106
- } else if (value instanceof Uint8Array) {
104
+ } else if (Bytes.isBytes(value)) {
107
105
  return this.#encodeOctetString(value);
108
106
  } else if (value instanceof Date) {
109
107
  return this.#encodeDate(value);
@@ -124,17 +122,15 @@ export class DerCodec {
124
122
  if (bitsPadding !== undefined && typeof bitsPadding !== "number") {
125
123
  throw new DerError("Bits padding is not a numeric byte value");
126
124
  }
127
- if (bytes === undefined || !ArrayBuffer.isView(bytes)) {
125
+ if (bytes === undefined || !Bytes.isBytes(bytes)) {
128
126
  throw new DerError("DER bytes is not a byte array");
129
127
  }
130
128
  return this.#encodeAsn1(
131
129
  tagId,
132
- bitsPadding === undefined
133
- ? (bytes as Uint8Array)
134
- : Bytes.concat(Uint8Array.of(bitsPadding), bytes as Uint8Array),
130
+ bitsPadding === undefined ? bytes : Bytes.concat(Uint8Array.of(bitsPadding), Bytes.of(bytes)),
135
131
  );
136
132
  } else if (value[DerKey.TypeOverride] !== undefined && value[DerKey.RawData] !== undefined) {
137
- if (value[DerKey.TypeOverride] === DerType.Integer && value[DerKey.RawData] instanceof Uint8Array) {
133
+ if (value[DerKey.TypeOverride] === DerType.Integer && Bytes.isBytes(value[DerKey.RawData])) {
138
134
  return this.#encodeInteger(value[DerKey.RawData]);
139
135
  } else if (
140
136
  value[DerKey.TypeOverride] === DerType.BitString &&
@@ -156,11 +152,11 @@ export class DerCodec {
156
152
  }
157
153
  } else if (
158
154
  value[DerKey.Bytes] !== undefined &&
159
- value[DerKey.Bytes] instanceof Uint8Array &&
155
+ Bytes.isBytes(value[DerKey.Bytes]) &&
160
156
  Object.keys(value).length === 1
161
157
  ) {
162
158
  // Raw Data
163
- return value[DerKey.Bytes];
159
+ return Bytes.of(value[DerKey.Bytes]);
164
160
  } else if (value[DerKey.TypeOverride] === undefined && value[DerKey.Bytes] === undefined) {
165
161
  return this.#encodeObject(value);
166
162
  } else {
@@ -171,7 +167,7 @@ export class DerCodec {
171
167
  }
172
168
  }
173
169
 
174
- static decode(data: Uint8Array): DerNode {
170
+ static decode(data: Bytes): DerNode {
175
171
  return this.#decodeRec(new DataReader(data));
176
172
  }
177
173
 
@@ -187,10 +183,10 @@ export class DerCodec {
187
183
  throw new DerError(`Expected integer but DER tag is ${DerType[value[DerKey.TagId]]}`);
188
184
  }
189
185
 
190
- const bytes = value[DerKey.Bytes];
191
- if (!ArrayBuffer.isView(bytes)) {
186
+ if (!Bytes.isBytes(value[DerKey.Bytes])) {
192
187
  throw new DerError("Incorrect DER object type");
193
188
  }
189
+ const bytes = Bytes.of(value[DerKey.Bytes]);
194
190
 
195
191
  // The common case
196
192
  if (bytes.length === byteLength) {
@@ -244,12 +240,12 @@ export class DerCodec {
244
240
  return this.#encodeAsn1(DerType.Set | CONSTRUCTED, Bytes.concat(...array.map(element => this.encode(element))));
245
241
  }
246
242
 
247
- static #encodeOctetString(value: Uint8Array) {
243
+ static #encodeOctetString(value: Bytes) {
248
244
  return this.#encodeAsn1(DerType.OctetString, value);
249
245
  }
250
246
 
251
247
  static #encodeObject(object: any) {
252
- const attributes = new Array<Uint8Array>();
248
+ const attributes = new Array<Bytes>();
253
249
  for (const key in object) {
254
250
  attributes.push(this.encode(object[key]));
255
251
  }
@@ -275,14 +271,9 @@ export class DerCodec {
275
271
  return this.#encodeAsn1(DerType.IA5String, Bytes.fromString(value));
276
272
  }
277
273
 
278
- static #encodeInteger(value: number | bigint | Uint8Array) {
279
- const isByteArray = ArrayBuffer.isView(value);
280
- let valueBytes: Uint8Array;
281
- if (isByteArray) {
282
- valueBytes = value;
283
- } else {
284
- valueBytes = Bytes.fromHex(toHex(value));
285
- }
274
+ static #encodeInteger(value: number | bigint | Bytes) {
275
+ const valueBytes = Bytes.isBytes(value) ? value : Bytes.fromHex(toHex(value));
276
+
286
277
  const byteArray = Bytes.concat(new Uint8Array(1), valueBytes);
287
278
  const dataView = Bytes.dataViewOf(byteArray);
288
279
  let start = 0;
@@ -290,9 +281,9 @@ export class DerCodec {
290
281
  if (dataView.getUint8(start) !== 0) break;
291
282
  if (dataView.getUint8(start + 1) >= 0x80) break;
292
283
  start++;
293
- if (start === byteArray.length - 1) break;
284
+ if (start === byteArray.byteLength - 1) break;
294
285
  }
295
- return this.#encodeAsn1(DerType.Integer, byteArray.slice(start));
286
+ return this.#encodeAsn1(DerType.Integer, start === 0 ? byteArray : Bytes.of(byteArray).slice(start));
296
287
  }
297
288
 
298
289
  static #encodeBitString(value: number) {
@@ -320,14 +311,16 @@ export class DerCodec {
320
311
  return byteArray.slice(start);
321
312
  }
322
313
 
323
- static #encodeAsn1(tag: number, data: Uint8Array) {
324
- return Bytes.concat(Uint8Array.of(tag), this.#encodeLengthBytes(data.length), data);
314
+ static #encodeAsn1(tag: number, data: Bytes) {
315
+ return Bytes.concat(Uint8Array.of(tag), this.#encodeLengthBytes(data.byteLength), data);
325
316
  }
326
317
 
327
318
  static #decodeRec(reader: DataReader): DerNode {
328
319
  const { tag, bytes } = this.#decodeAsn1(reader);
329
- if (tag === DerType.BitString)
330
- return { [DerKey.TagId]: tag, [DerKey.Bytes]: bytes.slice(1), [DerKey.BitsPadding]: bytes[0] };
320
+ if (tag === DerType.BitString) {
321
+ const data = Bytes.of(bytes);
322
+ return { [DerKey.TagId]: tag, [DerKey.Bytes]: data.slice(1), [DerKey.BitsPadding]: data[0] };
323
+ }
331
324
  if ((tag & CONSTRUCTED) === 0) return { [DerKey.TagId]: tag, [DerKey.Bytes]: bytes };
332
325
  const elementsReader = new DataReader(bytes);
333
326
  const elements: DerNode[] = [];
@@ -337,7 +330,7 @@ export class DerCodec {
337
330
  return { [DerKey.TagId]: tag, [DerKey.Bytes]: bytes, [DerKey.Elements]: elements };
338
331
  }
339
332
 
340
- static #decodeAsn1(reader: DataReader): { tag: number; bytes: Uint8Array } {
333
+ static #decodeAsn1(reader: DataReader): { tag: number; bytes: Bytes } {
341
334
  const tag = reader.readUInt8();
342
335
  let length = reader.readUInt8();
343
336
  if ((length & 0x80) !== 0) {
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import { Bytes } from "#util/Bytes.js";
7
8
  import {
8
9
  ContextTagged,
9
10
  ContextTaggedBytes,
@@ -17,7 +18,7 @@ import {
17
18
  } from "../codec/DerCodec.js";
18
19
 
19
20
  export namespace X962 {
20
- export const PublicKeyEcPrime256v1 = (key: Uint8Array) => ({
21
+ export const PublicKeyEcPrime256v1 = (key: Bytes) => ({
21
22
  type: {
22
23
  algorithm: PublicKeyAlgorithmEcPublicKey /* EC Public Key */,
23
24
  curve: PublicKeyAlgorithmEcPublicKeyP256 /* Curve P256_V1 */,
@@ -32,9 +33,9 @@ export namespace X962 {
32
33
  export const SHA256_CMS = DerObject("608648016503040201"); // 2.16.840.1.101.3.4.2.1
33
34
 
34
35
  export namespace X509 {
35
- export const SubjectKeyIdentifier = (identifier: Uint8Array) =>
36
+ export const SubjectKeyIdentifier = (identifier: Bytes) =>
36
37
  DerObject("551d0e", { value: DerCodec.encode(identifier) });
37
- export const AuthorityKeyIdentifier = (identifier: Uint8Array) =>
38
+ export const AuthorityKeyIdentifier = (identifier: Bytes) =>
38
39
  DerObject("551d23", { value: DerCodec.encode({ id: ContextTaggedBytes(0, identifier) }) });
39
40
  export const BasicConstraints = (constraints: any) => {
40
41
  const toEncode = { ...constraints };
@@ -95,8 +95,8 @@ export type DnsMessage = {
95
95
  };
96
96
 
97
97
  export type DnsMessagePartiallyPreEncoded = Omit<DnsMessage, "answers" | "additionalRecords"> & {
98
- answers: (DnsRecord<any> | Uint8Array)[];
99
- additionalRecords: (DnsRecord<any> | Uint8Array)[];
98
+ answers: (DnsRecord<any> | Bytes)[];
99
+ additionalRecords: (DnsRecord<any> | Bytes)[];
100
100
  };
101
101
 
102
102
  export enum DnsMessageType {
@@ -122,7 +122,7 @@ export enum DnsRecordClass {
122
122
  }
123
123
 
124
124
  export class DnsCodec {
125
- static decode(message: Uint8Array): DnsMessage | undefined {
125
+ static decode(message: Bytes): DnsMessage | undefined {
126
126
  try {
127
127
  const reader = new DataReader(message);
128
128
  const transactionId = reader.readUInt16();
@@ -153,7 +153,7 @@ export class DnsCodec {
153
153
  }
154
154
  }
155
155
 
156
- static decodeQuery(reader: DataReader<Endian.Big>, message: Uint8Array): DnsQuery {
156
+ static decodeQuery(reader: DataReader<Endian.Big>, message: Bytes): DnsQuery {
157
157
  const name = this.decodeQName(reader, message);
158
158
  const recordType = reader.readUInt16();
159
159
  const classInt = reader.readUInt16();
@@ -162,7 +162,7 @@ export class DnsCodec {
162
162
  return { name, recordType, recordClass, uniCastResponse };
163
163
  }
164
164
 
165
- static decodeRecord(reader: DataReader<Endian.Big>, message: Uint8Array): DnsRecord<any> {
165
+ static decodeRecord(reader: DataReader<Endian.Big>, message: Bytes): DnsRecord<any> {
166
166
  const name = this.decodeQName(reader, message);
167
167
  const recordType = reader.readUInt16();
168
168
  const classInt = reader.readUInt16();
@@ -175,7 +175,7 @@ export class DnsCodec {
175
175
  return { name, recordType, recordClass, ttl, value, flushCache };
176
176
  }
177
177
 
178
- static decodeQName(reader: DataReader<Endian.Big>, message: Uint8Array, visited = new Set<number>()): string {
178
+ static decodeQName(reader: DataReader<Endian.Big>, message: Bytes, visited = new Set<number>()): string {
179
179
  if (visited.has(reader.offset)) {
180
180
  throw new UnexpectedDataError(`QNAME pointer loop detected. Index ${reader.offset} visited twice.`);
181
181
  }
@@ -192,7 +192,7 @@ export class DnsCodec {
192
192
  }
193
193
  // Compressed Qname
194
194
  const indexInMessage = reader.readUInt8() | ((itemLength & 0x3f) << 8);
195
- if (indexInMessage >= message.length) {
195
+ if (indexInMessage >= messageReader.length) {
196
196
  throw new UnexpectedDataError("Invalid compressed QNAME pointer pointing to out of bounds index.");
197
197
  }
198
198
  messageReader.offset = indexInMessage;
@@ -207,7 +207,7 @@ export class DnsCodec {
207
207
  return qNameItems.join(".");
208
208
  }
209
209
 
210
- private static decodeRecordValue(valueBytes: Uint8Array, recordType: DnsRecordType, message: Uint8Array) {
210
+ private static decodeRecordValue(valueBytes: Bytes, recordType: DnsRecordType, message: Bytes) {
211
211
  switch (recordType) {
212
212
  case DnsRecordType.PTR:
213
213
  return this.decodeQName(new DataReader(valueBytes), message);
@@ -225,7 +225,7 @@ export class DnsCodec {
225
225
  }
226
226
  }
227
227
 
228
- static decodeSrvRecord(valueBytes: Uint8Array, message: Uint8Array): SrvRecordValue {
228
+ static decodeSrvRecord(valueBytes: Bytes, message: Bytes): SrvRecordValue {
229
229
  const reader = new DataReader(valueBytes);
230
230
  const priority = reader.readUInt16();
231
231
  const weight = reader.readUInt16();
@@ -234,11 +234,11 @@ export class DnsCodec {
234
234
  return { priority, weight, port, target };
235
235
  }
236
236
 
237
- static decodeTxtRecord(valueBytes: Uint8Array): string[] {
237
+ static decodeTxtRecord(valueBytes: Bytes): string[] {
238
238
  const reader = new DataReader(valueBytes);
239
239
  const result = new Array<string>();
240
240
  let bytesRead = 0;
241
- while (bytesRead < valueBytes.length) {
241
+ while (bytesRead < valueBytes.byteLength) {
242
242
  const length = reader.readUInt8();
243
243
  result.push(reader.readUtf8String(length));
244
244
  bytesRead += length + 1;
@@ -246,12 +246,12 @@ export class DnsCodec {
246
246
  return result;
247
247
  }
248
248
 
249
- static decodeAaaaRecord(valueBytes: Uint8Array): string {
249
+ static decodeAaaaRecord(valueBytes: Bytes): string {
250
250
  const reader = new DataReader(valueBytes);
251
251
  return ipv6BytesToString(reader.readByteArray(16));
252
252
  }
253
253
 
254
- static decodeARecord(valueBytes: Uint8Array): string {
254
+ static decodeARecord(valueBytes: Bytes): string {
255
255
  const reader = new DataReader(valueBytes);
256
256
  return ipv4BytesToString(reader.readByteArray(4));
257
257
  }
@@ -263,7 +263,7 @@ export class DnsCodec {
263
263
  answers = [],
264
264
  authorities = [],
265
265
  additionalRecords = [],
266
- }: Partial<DnsMessagePartiallyPreEncoded>): Uint8Array {
266
+ }: Partial<DnsMessagePartiallyPreEncoded>): Bytes {
267
267
  if (messageType === undefined) throw new InternalError("Message type must be specified!");
268
268
  if (queries.length > 0 && messageType !== DnsMessageType.Query && messageType !== DnsMessageType.TruncatedQuery)
269
269
  throw new InternalError("Queries can only be included in query messages!");
@@ -282,7 +282,7 @@ export class DnsCodec {
282
282
  writer.writeUInt16(recordClass | (uniCastResponse ? 0x8000 : 0));
283
283
  });
284
284
  [...answers, ...authorities, ...additionalRecords].forEach(record => {
285
- if (record instanceof Uint8Array) {
285
+ if (Bytes.isBytes(record)) {
286
286
  writer.writeByteArray(record);
287
287
  } else {
288
288
  writer.writeByteArray(this.encodeRecord(record));
@@ -291,7 +291,7 @@ export class DnsCodec {
291
291
  return writer.toByteArray();
292
292
  }
293
293
 
294
- static encodeRecord(record: DnsRecord<any>): Uint8Array {
294
+ static encodeRecord(record: DnsRecord<any>): Bytes {
295
295
  const { name, recordType, recordClass, ttl, value, flushCache = false } = record;
296
296
 
297
297
  const writer = new DataWriter();
@@ -300,12 +300,12 @@ export class DnsCodec {
300
300
  writer.writeUInt16(recordClass | (flushCache ? 0x8000 : 0));
301
301
  writer.writeUInt32(ttl);
302
302
  const encodedValue = this.encodeRecordValue(value, recordType);
303
- writer.writeUInt16(encodedValue.length);
303
+ writer.writeUInt16(encodedValue.byteLength);
304
304
  writer.writeByteArray(encodedValue);
305
305
  return writer.toByteArray();
306
306
  }
307
307
 
308
- private static encodeRecordValue(value: any, recordType: DnsRecordType): Uint8Array {
308
+ private static encodeRecordValue(value: any, recordType: DnsRecordType): Bytes {
309
309
  switch (recordType) {
310
310
  case DnsRecordType.PTR:
311
311
  return this.encodeQName(value as string);
@@ -318,7 +318,7 @@ export class DnsCodec {
318
318
  case DnsRecordType.A:
319
319
  return this.encodeARecord(value as string);
320
320
  default:
321
- if (value instanceof Uint8Array) return value;
321
+ if (Bytes.isBytes(value)) return value;
322
322
  throw new UnexpectedDataError(`Unsupported record type ${recordType}`);
323
323
  }
324
324
  }
@@ -337,7 +337,7 @@ export class DnsCodec {
337
337
  const writer = new DataWriter();
338
338
  entries.forEach(entry => {
339
339
  const entryData = Bytes.fromString(entry);
340
- writer.writeUInt8(entryData.length);
340
+ writer.writeUInt8(entryData.byteLength);
341
341
  writer.writeByteArray(entryData);
342
342
  });
343
343
  return writer.toByteArray();
@@ -358,7 +358,7 @@ export class DnsCodec {
358
358
  // TODO: Implement compression
359
359
  qname.split(".").forEach(label => {
360
360
  const labelData = Bytes.fromString(label);
361
- writer.writeUInt8(labelData.length);
361
+ writer.writeUInt8(labelData.byteLength);
362
362
  writer.writeByteArray(labelData);
363
363
  });
364
364
  }
@@ -50,64 +50,54 @@ export abstract class Crypto {
50
50
  /**
51
51
  * Encrypt using AES-CCM with constants limited to those required by Matter.
52
52
  */
53
- abstract encrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array;
53
+ abstract encrypt(key: Bytes, data: Bytes, nonce: Bytes, aad?: Bytes): Bytes;
54
54
 
55
55
  /**
56
56
  * Decrypt using AES-CCM with constants limited to those required by Matter.
57
57
  */
58
- abstract decrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array;
58
+ abstract decrypt(key: Bytes, data: Bytes, nonce: Bytes, aad?: Bytes): Bytes;
59
59
 
60
60
  /**
61
61
  * Create a random buffer from the most cryptographically-appropriate source available.
62
62
  */
63
- abstract randomBytes(length: number): Uint8Array;
63
+ abstract randomBytes(length: number): Bytes;
64
64
 
65
65
  /**
66
66
  * Compute the SHA-256 hash of a buffer.
67
67
  */
68
- abstract computeSha256(data: Uint8Array | Uint8Array[]): MaybePromise<Uint8Array>;
68
+ abstract computeSha256(data: Bytes | Bytes[]): MaybePromise<Bytes>;
69
69
 
70
70
  /**
71
71
  * Create a key from a secret using PBKDF2.
72
72
  */
73
- abstract createPbkdf2Key(
74
- secret: Uint8Array,
75
- salt: Uint8Array,
76
- iteration: number,
77
- keyLength: number,
78
- ): MaybePromise<Uint8Array>;
73
+ abstract createPbkdf2Key(secret: Bytes, salt: Bytes, iteration: number, keyLength: number): MaybePromise<Bytes>;
79
74
 
80
75
  /**
81
76
  * Create a key from a secret using HKDF.
82
77
  */
83
- abstract createHkdfKey(
84
- secret: Uint8Array,
85
- salt: Uint8Array,
86
- info: Uint8Array,
87
- length?: number,
88
- ): MaybePromise<Uint8Array>;
78
+ abstract createHkdfKey(secret: Bytes, salt: Bytes, info: Bytes, length?: number): MaybePromise<Bytes>;
89
79
 
90
80
  /**
91
81
  * Create an HMAC signature.
92
82
  */
93
- abstract signHmac(key: Uint8Array, data: Uint8Array): MaybePromise<Uint8Array>;
83
+ abstract signHmac(key: Bytes, data: Bytes): MaybePromise<Bytes>;
94
84
 
95
85
  /**
96
86
  * Create an ECDSA signature.
97
87
  */
98
88
  abstract signEcdsa(
99
89
  privateKey: JsonWebKey,
100
- data: Uint8Array | Uint8Array[],
90
+ data: Bytes | Bytes[],
101
91
  dsaEncoding?: CryptoDsaEncoding,
102
- ): MaybePromise<Uint8Array>;
92
+ ): MaybePromise<Bytes>;
103
93
 
104
94
  /**
105
95
  * Authenticate an ECDSA signature.
106
96
  */
107
97
  abstract verifyEcdsa(
108
98
  publicKey: JsonWebKey,
109
- data: Uint8Array,
110
- signature: Uint8Array,
99
+ data: Bytes,
100
+ signature: Bytes,
111
101
  dsaEncoding?: CryptoDsaEncoding,
112
102
  ): MaybePromise<void>;
113
103
 
@@ -119,22 +109,22 @@ export abstract class Crypto {
119
109
  /**
120
110
  * Compute the shared secret for a Diffie-Hellman exchange.
121
111
  */
122
- abstract generateDhSecret(key: PrivateKey, peerKey: PublicKey): MaybePromise<Uint8Array>;
112
+ abstract generateDhSecret(key: PrivateKey, peerKey: PublicKey): MaybePromise<Bytes>;
123
113
 
124
114
  get randomUint8() {
125
- return this.randomBytes(1)[0];
115
+ return Bytes.of(this.randomBytes(1))[0];
126
116
  }
127
117
 
128
118
  get randomUint16() {
129
- return new DataView(this.randomBytes(2).buffer).getUint16(0);
119
+ return Bytes.dataViewOf(this.randomBytes(2)).getUint16(0);
130
120
  }
131
121
 
132
122
  get randomUint32() {
133
- return new DataView(this.randomBytes(4).buffer).getUint32(0);
123
+ return Bytes.dataViewOf(this.randomBytes(4)).getUint32(0);
134
124
  }
135
125
 
136
126
  get randomBigUint64() {
137
- return new DataView(this.randomBytes(8).buffer).getBigUint64(0);
127
+ return Bytes.dataViewOf(this.randomBytes(8)).getBigUint64(0);
138
128
  }
139
129
 
140
130
  randomBigInt(size: number, maxValue?: bigint) {