@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
@@ -23,16 +23,16 @@ const CRYPTO_SYMMETRIC_KEY_LENGTH = 16;
23
23
  const logger = Logger.get("Crypto");
24
24
  class Crypto {
25
25
  get randomUint8() {
26
- return this.randomBytes(1)[0];
26
+ return Bytes.of(this.randomBytes(1))[0];
27
27
  }
28
28
  get randomUint16() {
29
- return new DataView(this.randomBytes(2).buffer).getUint16(0);
29
+ return Bytes.dataViewOf(this.randomBytes(2)).getUint16(0);
30
30
  }
31
31
  get randomUint32() {
32
- return new DataView(this.randomBytes(4).buffer).getUint32(0);
32
+ return Bytes.dataViewOf(this.randomBytes(4)).getUint32(0);
33
33
  }
34
34
  get randomBigUint64() {
35
- return new DataView(this.randomBytes(8).buffer).getBigUint64(0);
35
+ return Bytes.dataViewOf(this.randomBytes(8)).getBigUint64(0);
36
36
  }
37
37
  randomBigInt(size, maxValue) {
38
38
  if (maxValue === void 0) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/crypto/Crypto.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AACvB,SAAS,aAAa;AAEtB,YAAY,SAAS;AACrB,YAAY,WAAW;AACvB,SAAS,YAAY;AAGd,MAAM,KAAK;AAAA,EACd;AAAA,EACA,GAAG;AAAA,EACH,GAAG;AACP;AAEO,MAAM,2BAA2B;AACjC,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAC/B,MAAM,8BAA8B;AAG3C,MAAM,SAAS,OAAO,IAAI,QAAQ;AAa3B,MAAe,OAAO;AAAA,EAgFzB,IAAI,cAAc;AACd,WAAO,KAAK,YAAY,CAAC,EAAE,CAAC;AAAA,EAChC;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,IAAI,SAAS,KAAK,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC;AAAA,EAC/D;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,IAAI,SAAS,KAAK,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC;AAAA,EAC/D;AAAA,EAEA,IAAI,kBAAkB;AAClB,WAAO,IAAI,SAAS,KAAK,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC;AAAA,EAClE;AAAA,EAEA,aAAa,MAAc,UAAmB;AAC1C,QAAI,aAAa,QAAW;AACxB,aAAO,MAAM,SAAS,KAAK,YAAY,IAAI,CAAC;AAAA,IAChD;AAEA,WAAO,MAAM;AACT,YAAM,SAAS,MAAM,SAAS,KAAK,YAAY,IAAI,CAAC;AACpD,UAAI,SAAS,SAAU,QAAO;AAAA,IAClC;AAAA,EACJ;AAAA,EAEA,YAAY,WAAoB;AAC5B,UAAM,UAAU,CAAC,SAAS,WAAW,OAAO,KAAK,kBAAkB,GAAG,uBAAuB;AAC7F,QAAI,WAAW;AACX,cAAQ,KAAK,OAAO,SAAS;AAAA,IACjC;AACA,WAAO,MAAM,GAAG,OAAO;AAAA,EAC3B;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AACvB,SAAS,aAAa;AAEtB,YAAY,SAAS;AACrB,YAAY,WAAW;AACvB,SAAS,YAAY;AAGd,MAAM,KAAK;AAAA,EACd;AAAA,EACA,GAAG;AAAA,EACH,GAAG;AACP;AAEO,MAAM,2BAA2B;AACjC,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAC/B,MAAM,8BAA8B;AAG3C,MAAM,SAAS,OAAO,IAAI,QAAQ;AAa3B,MAAe,OAAO;AAAA,EAsEzB,IAAI,cAAc;AACd,WAAO,MAAM,GAAG,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC;AAAA,EAC1C;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,MAAM,WAAW,KAAK,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC;AAAA,EAC5D;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,MAAM,WAAW,KAAK,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC;AAAA,EAC5D;AAAA,EAEA,IAAI,kBAAkB;AAClB,WAAO,MAAM,WAAW,KAAK,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC;AAAA,EAC/D;AAAA,EAEA,aAAa,MAAc,UAAmB;AAC1C,QAAI,aAAa,QAAW;AACxB,aAAO,MAAM,SAAS,KAAK,YAAY,IAAI,CAAC;AAAA,IAChD;AAEA,WAAO,MAAM;AACT,YAAM,SAAS,MAAM,SAAS,KAAK,YAAY,IAAI,CAAC;AACpD,UAAI,SAAS,SAAU,QAAO;AAAA,IAClC;AAAA,EACJ;AAAA,EAEA,YAAY,WAAoB;AAC5B,UAAM,UAAU,CAAC,SAAS,WAAW,OAAO,KAAK,kBAAkB,GAAG,uBAAuB;AAC7F,QAAI,WAAW;AACX,cAAQ,KAAK,OAAO,SAAS;AAAA,IACjC;AACA,WAAO,MAAM,GAAG,OAAO;AAAA,EAC3B;AACJ;",
5
5
  "names": []
6
6
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Bytes } from "../util/Bytes.js";
6
7
  export declare enum KeyType {
7
8
  EC = "EC",
8
9
  RSA = "RSA",
@@ -14,8 +15,8 @@ export declare enum CurveType {
14
15
  p521 = "P-521"
15
16
  }
16
17
  export type BinaryKeyPair = {
17
- publicKey: Uint8Array;
18
- privateKey: Uint8Array;
18
+ publicKey: Bytes;
19
+ privateKey: Bytes;
19
20
  };
20
21
  /**
21
22
  * Represents a cryptographic key.
@@ -75,34 +76,34 @@ export interface Key extends JsonWebKey {
75
76
  * Binary alias to private key field. Automatically encodes/decodes the
76
77
  * base-64 private key.
77
78
  */
78
- privateBits?: Uint8Array;
79
+ privateBits?: Bytes;
79
80
  /**
80
81
  * Binary alias to the x field. Automatically encodes/decodes the base-64
81
82
  * x-point on EC public keys.
82
83
  */
83
- xBits?: Uint8Array;
84
+ xBits?: Bytes;
84
85
  /**
85
86
  * Binary alias to the y field. Automatically encodes/decodes the base-64
86
87
  * y-point on EC public keys.
87
88
  */
88
- yBits?: Uint8Array;
89
+ yBits?: Bytes;
89
90
  /**
90
91
  * Import (write-only) of private keys encoded in SEC1 format.
91
92
  */
92
- sec1?: Uint8Array;
93
+ sec1?: Bytes;
93
94
  /**
94
95
  * Import (write-only) of private keys encoded in PKCS #8 format.
95
96
  */
96
- pkcs8?: Uint8Array;
97
+ pkcs8?: Bytes;
97
98
  /**
98
99
  * Import (write-only) of public keys encoded in SPKI format.
99
100
  */
100
- spki?: Uint8Array;
101
+ spki?: Bytes;
101
102
  /**
102
103
  * Import/export of EC public key in SEC1/SPKI format. Maps to x & y
103
104
  * fields internally.
104
105
  */
105
- publicBits?: Uint8Array;
106
+ publicBits?: Bytes;
106
107
  /**
107
108
  * Import/export of BinaryKeyPair structure used as an alternate
108
109
  * serialization format for legacy reasons.
@@ -111,11 +112,11 @@ export interface Key extends JsonWebKey {
111
112
  /**
112
113
  * Alias for publicBits that throws if no public key is present.
113
114
  */
114
- publicKey: Uint8Array;
115
+ publicKey: Bytes;
115
116
  /**
116
117
  * Alias for privateBits that throws if no private key is present.
117
118
  */
118
- privateKey: Uint8Array;
119
+ privateKey: Bytes;
119
120
  /**
120
121
  * Alias for keyPairBits that throws if a complete key pair is not present.
121
122
  */
@@ -129,9 +130,9 @@ export interface PublicKey extends Key {
129
130
  curve: CurveType;
130
131
  x: string;
131
132
  y: string;
132
- xBits: Uint8Array;
133
- yBits: Uint8Array;
134
- publicBits: Uint8Array;
133
+ xBits: Bytes;
134
+ yBits: Bytes;
135
+ publicBits: Bytes;
135
136
  }
136
137
  /**
137
138
  * EC key with extractable private fields.
@@ -139,11 +140,11 @@ export interface PublicKey extends Key {
139
140
  export interface PrivateKey extends PublicKey {
140
141
  private: string;
141
142
  d: string;
142
- privateBits: Uint8Array;
143
- privateKey: Uint8Array;
143
+ privateBits: Bytes;
144
+ privateKey: Bytes;
144
145
  keyPair: BinaryKeyPair;
145
146
  keyPairBits: BinaryKeyPair;
146
- sharedSecretFor(peerKey: PublicKey): Uint8Array;
147
+ sharedSecretFor(peerKey: PublicKey): Bytes;
147
148
  }
148
149
  /**
149
150
  * Symmetric key.
@@ -160,19 +161,19 @@ export declare function Key(properties: Partial<Key>): Key;
160
161
  /**
161
162
  * EC private key factory.
162
163
  */
163
- export declare function PrivateKey(privateKey: Uint8Array | BinaryKeyPair, options?: Partial<Key>): PrivateKey;
164
+ export declare function PrivateKey(privateKey: Bytes | BinaryKeyPair, options?: Partial<Key>): PrivateKey;
164
165
  /**
165
166
  * EC public key factory.
166
167
  */
167
- export declare function PublicKey(publicKey: Uint8Array, options?: Partial<Key>): PublicKey;
168
+ export declare function PublicKey(publicKey: Bytes, options?: Partial<Key>): PublicKey;
168
169
  /**
169
170
  * Symmetric key factory.
170
171
  */
171
- export declare function SymmetricKey(privateKey: Uint8Array, options?: Partial<Key>): Key;
172
+ export declare function SymmetricKey(privateKey: Bytes, options?: Partial<Key>): Key;
172
173
  /**
173
174
  * Diffie-Hellman shared secret computation.
174
175
  *
175
176
  * We provide this for platforms without a native implementation.
176
177
  */
177
- export declare function sharedSecretFor(this: PrivateKey, peerKey: PublicKey): Uint8Array;
178
+ export declare function sharedSecretFor(this: PrivateKey, peerKey: PublicKey): Bytes;
178
179
  //# sourceMappingURL=Key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/crypto/Key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/crypto/Key.ts"],"names":[],"mappings":"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"}
@@ -57,13 +57,13 @@ const CurveLookup = {
57
57
  ["0103840023" /* prime521r1 */]: "P-521" /* p521 */
58
58
  };
59
59
  function checkDerVersion(type, node, version) {
60
- const derVersion = node && node._tag === DerType.Integer && node._bytes && node._bytes.length === 1 && node._bytes[0];
60
+ const derVersion = node && node._tag === DerType.Integer && node._bytes && node._bytes.byteLength === 1 && Bytes.of(node._bytes)[0];
61
61
  if (derVersion !== version) {
62
62
  throw new KeyInputError(`${type} key version mismatch`);
63
63
  }
64
64
  }
65
65
  function getDerObjectID(type, node) {
66
- const id = node && node._tag === DerType.ObjectIdentifier && node._bytes?.length > 1 && node._bytes;
66
+ const id = node && node._tag === DerType.ObjectIdentifier && node._bytes?.byteLength > 1 && node._bytes;
67
67
  if (id) return id;
68
68
  throw new KeyInputError(`Missing object in ${type} key`);
69
69
  }
@@ -74,7 +74,7 @@ function getDerCurve(type, node) {
74
74
  throw new KeyInputError(`Unsupported ${type} EC curve`);
75
75
  }
76
76
  function getDerKey(type, node, derType = DerType.OctetString) {
77
- const key = node && node._tag === derType && node._bytes?.length > 1 && node._bytes;
77
+ const key = node && node._tag === derType && node._bytes?.byteLength > 1 && node._bytes;
78
78
  if (key) return key;
79
79
  throw new MatterError(`Missing ${type} key node`);
80
80
  }
@@ -142,10 +142,11 @@ var Translators;
142
142
  };
143
143
  Translators2.publicBits = {
144
144
  set: function(input) {
145
- if (!(input.length % 2)) {
145
+ const data = Bytes.of(input);
146
+ if (!(data.length % 2)) {
146
147
  throw new KeyInputError("Invalid public key encoding");
147
148
  }
148
- switch (input[0]) {
149
+ switch (data[0]) {
149
150
  case 2:
150
151
  case 3:
151
152
  throw new KeyInputError("Unsupported public key compression");
@@ -154,17 +155,17 @@ var Translators;
154
155
  case 5:
155
156
  throw new KeyInputError("Illegal public key format specifier");
156
157
  }
157
- const coordinateLength = (input.length - 1) / 2;
158
+ const coordinateLength = (data.length - 1) / 2;
158
159
  inferCurve(this, coordinateLength);
159
160
  this.type = "EC" /* EC */;
160
- this.xBits = input.slice(1, coordinateLength + 1);
161
- this.yBits = input.slice(coordinateLength + 1);
161
+ this.xBits = data.slice(1, coordinateLength + 1);
162
+ this.yBits = data.slice(coordinateLength + 1);
162
163
  },
163
164
  get: function() {
164
165
  if (this.xBits === void 0 || this.yBits === void 0) {
165
166
  return void 0;
166
167
  }
167
- return new Uint8Array([4, ...this.xBits, ...this.yBits]);
168
+ return Bytes.concat(new Uint8Array([4]), this.xBits, this.yBits);
168
169
  }
169
170
  };
170
171
  Translators2.keyPairBits = {
@@ -179,8 +180,8 @@ var Translators;
179
180
  return;
180
181
  }
181
182
  return {
182
- publicKey: publicBits2,
183
- privateKey: privateBits
183
+ publicKey: Bytes.of(publicBits2),
184
+ privateKey: Bytes.of(privateBits)
184
185
  };
185
186
  }
186
187
  };
@@ -279,15 +280,15 @@ function Key(properties) {
279
280
  default:
280
281
  throw new KeyInputError(`Unsupported elliptic curve ${crv}`);
281
282
  }
282
- const ecKey = Point.fromPrivateKey(that.privateKey);
283
+ const ecKey = Point.fromPrivateKey(Bytes.of(that.privateKey));
283
284
  that.xBits = numberToBytesBE(ecKey.x, keyLength);
284
285
  that.yBits = numberToBytesBE(ecKey.y, keyLength);
285
286
  }
286
287
  if (that.type === "EC" /* EC */) {
287
288
  if (that.d) {
288
- inferCurve(that, that.privateKey.length);
289
+ inferCurve(that, that.privateKey.byteLength);
289
290
  } else if (that.xBits) {
290
- inferCurve(that, that.xBits.length);
291
+ inferCurve(that, that.xBits.byteLength);
291
292
  }
292
293
  if (that.d && (!that.x || !that.y)) {
293
294
  derivePublicFromPrivate();
@@ -297,7 +298,7 @@ function Key(properties) {
297
298
  }
298
299
  function PrivateKey(privateKey, options) {
299
300
  let priv, pub;
300
- if (ArrayBuffer.isView(privateKey)) {
301
+ if (Bytes.isBytes(privateKey)) {
301
302
  priv = privateKey;
302
303
  } else {
303
304
  priv = privateKey.privateKey;
@@ -326,7 +327,7 @@ function SymmetricKey(privateKey, options) {
326
327
  });
327
328
  }
328
329
  function sharedSecretFor(peerKey) {
329
- return getSharedSecret(this.privateBits, peerKey.publicBits);
330
+ return Bytes.of(getSharedSecret(Bytes.of(this.privateBits), Bytes.of(peerKey.publicBits)));
330
331
  }
331
332
  export {
332
333
  CurveType,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/crypto/Key.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["KeyType", "CurveType", "Asn1ObjectID", "Translators", "publicBits", "Aliases", "Base64Codecs", "AssertedAliases"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MockCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/MockCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAM,MAAM,aAAa,CAAC;AAIzC;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM;IACtC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,KAAK,GAAE,MAAa,EAAE,cAAc,GAAE,UAAU,MAAuB,GAsC7E,UAAU,CAoB9B"}
1
+ {"version":3,"file":"MockCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/MockCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,MAAM,EAAM,MAAM,aAAa,CAAC;AAIzC;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM;IACtC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,KAAK,GAAE,MAAa,EAAE,cAAc,GAAE,UAAU,MAAuB,GAsC7E,UAAU,CAoB9B"}
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { ImplementationError } from "#MatterError.js";
7
+ import { Bytes } from "#util/Bytes.js";
7
8
  import { ec } from "./Crypto.js";
8
9
  import { CurveType, Key, KeyType } from "./Key.js";
9
10
  import { StandardCrypto } from "./StandardCrypto.js";
@@ -45,7 +46,7 @@ function MockCrypto(index = 128, implementation = StandardCrypto) {
45
46
  return result;
46
47
  };
47
48
  crypto.createKeyPair = function getRandomDataNONENTROPIC() {
48
- const privateBits = ec.mapHashToField(new Uint8Array(crypto.randomBytes(48)), ec.p256.CURVE.n);
49
+ const privateBits = ec.mapHashToField(Bytes.of(crypto.randomBytes(48)), ec.p256.CURVE.n);
49
50
  return Key({
50
51
  kty: KeyType.EC,
51
52
  crv: CurveType.p256,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/crypto/MockCrypto.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AACpC,SAAiB,UAAU;AAC3B,SAAS,WAAW,KAAK,eAA2B;AACpD,SAAS,sBAAsB;AAwBxB,SAAS,WAAW,QAAgB,KAAM,iBAAmC,gBAAgB;AAChG,MAAI,QAAQ,KAAK,QAAQ,KAAK;AAC1B,UAAM,IAAI,oBAAoB,uCAAuC;AAAA,EACzE;AAEA,QAAM,SAAS,IAAI,eAAe;AAElC,QAAM,EAAE,aAAa,cAAc,IAAI;AAEvC,SAAO,iBAAiB,QAAQ;AAAA,IAC5B,OAAO;AAAA,MACH,MAAM;AACF,eAAO;AAAA,MACX;AAAA,MAEA,IAAI,UAAkB;AAClB,gBAAQ,WAAW;AAAA,MACvB;AAAA,IACJ;AAAA,IAEA,UAAU;AAAA,MACN,MAAM;AACF,eAAO,OAAO,gBAAgB;AAAA,MAClC;AAAA,MAEA,IAAI,UAAmB;AACnB,YAAI,UAAU;AACV,iBAAO,cAAc;AACrB,iBAAO,gBAAgB;AAAA,QAC3B,OAAO;AACH,yBAAe;AAAA,QACnB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,iBAAe;AAEf,SAAO;AAEP,WAAS,iBAAiB;AAEtB,WAAO,cAAc,SAAS,yBAAyB,QAAQ;AAC3D,YAAM,SAAS,IAAI,WAAW,MAAM;AACpC,aAAO,KAAK,KAAK;AACjB,aAAO;AAAA,IACX;AAGA,WAAO,gBAAgB,SAAS,2BAA2B;AACvD,YAAM,cAAc,GAAG,eAAe,IAAI,WAAW,OAAO,YAAY,EAAE,CAAC,GAAG,GAAG,KAAK,MAAM,CAAC;AAC7F,aAAO,IAAI;AAAA,QACP,KAAK,QAAQ;AAAA,QACb,KAAK,UAAU;AAAA,QACf;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AACpC,SAAS,aAAa;AACtB,SAAiB,UAAU;AAC3B,SAAS,WAAW,KAAK,eAA2B;AACpD,SAAS,sBAAsB;AAwBxB,SAAS,WAAW,QAAgB,KAAM,iBAAmC,gBAAgB;AAChG,MAAI,QAAQ,KAAK,QAAQ,KAAK;AAC1B,UAAM,IAAI,oBAAoB,uCAAuC;AAAA,EACzE;AAEA,QAAM,SAAS,IAAI,eAAe;AAElC,QAAM,EAAE,aAAa,cAAc,IAAI;AAEvC,SAAO,iBAAiB,QAAQ;AAAA,IAC5B,OAAO;AAAA,MACH,MAAM;AACF,eAAO;AAAA,MACX;AAAA,MAEA,IAAI,UAAkB;AAClB,gBAAQ,WAAW;AAAA,MACvB;AAAA,IACJ;AAAA,IAEA,UAAU;AAAA,MACN,MAAM;AACF,eAAO,OAAO,gBAAgB;AAAA,MAClC;AAAA,MAEA,IAAI,UAAmB;AACnB,YAAI,UAAU;AACV,iBAAO,cAAc;AACrB,iBAAO,gBAAgB;AAAA,QAC3B,OAAO;AACH,yBAAe;AAAA,QACnB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,iBAAe;AAEf,SAAO;AAEP,WAAS,iBAAiB;AAEtB,WAAO,cAAc,SAAS,yBAAyB,QAAQ;AAC3D,YAAM,SAAS,IAAI,WAAW,MAAM;AACpC,aAAO,KAAK,KAAK;AACjB,aAAO;AAAA,IACX;AAGA,WAAO,gBAAgB,SAAS,2BAA2B;AACvD,YAAM,cAAc,GAAG,eAAe,MAAM,GAAG,OAAO,YAAY,EAAE,CAAC,GAAG,GAAG,KAAK,MAAM,CAAC;AACvF,aAAO,IAAI;AAAA,QACP,KAAK,QAAQ;AAAA,QACb,KAAK,UAAU;AAAA,QACf;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;",
5
5
  "names": []
6
6
  }
@@ -3,10 +3,11 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Bytes } from "../util/Bytes.js";
6
7
  import { Crypto } from "./Crypto.js";
7
8
  export interface PbkdfParameters {
8
9
  iterations: number;
9
- salt: Uint8Array;
10
+ salt: Bytes;
10
11
  }
11
12
  export declare class Spake2p {
12
13
  #private;
@@ -18,19 +19,19 @@ export declare class Spake2p {
18
19
  w0: bigint;
19
20
  L: Uint8Array<ArrayBufferLike>;
20
21
  }>;
21
- static create(crypto: Crypto, context: Uint8Array, w0: bigint): Spake2p;
22
- constructor(crypto: Crypto, context: Uint8Array, random: bigint, w0: bigint);
23
- computeX(): Uint8Array;
24
- computeY(): Uint8Array;
25
- computeSecretAndVerifiersFromY(w1: bigint, X: Uint8Array, Y: Uint8Array): Promise<{
22
+ static create(crypto: Crypto, context: Bytes, w0: bigint): Spake2p;
23
+ constructor(crypto: Crypto, context: Bytes, random: bigint, w0: bigint);
24
+ computeX(): Bytes;
25
+ computeY(): Bytes;
26
+ computeSecretAndVerifiersFromY(w1: bigint, X: Bytes, Y: Bytes): Promise<{
26
27
  Ke: Uint8Array<ArrayBuffer>;
27
- hAY: Uint8Array<ArrayBufferLike>;
28
- hBX: Uint8Array<ArrayBufferLike>;
28
+ hAY: AllowSharedBufferSource;
29
+ hBX: AllowSharedBufferSource;
29
30
  }>;
30
- computeSecretAndVerifiersFromX(L: Uint8Array, X: Uint8Array, Y: Uint8Array): Promise<{
31
+ computeSecretAndVerifiersFromX(L: Bytes, X: Bytes, Y: Bytes): Promise<{
31
32
  Ke: Uint8Array<ArrayBuffer>;
32
- hAY: Uint8Array<ArrayBufferLike>;
33
- hBX: Uint8Array<ArrayBufferLike>;
33
+ hAY: AllowSharedBufferSource;
34
+ hBX: AllowSharedBufferSource;
34
35
  }>;
35
36
  private computeSecretAndVerifiers;
36
37
  private computeTranscriptHash;
@@ -1 +1 @@
1
- {"version":3,"file":"Spake2p.d.ts","sourceRoot":"","sources":["../../../src/crypto/Spake2p.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,MAAM,EAAM,MAAM,aAAa,CAAC;AAgBzC,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,qBAAa,OAAO;;WAMH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM;;;;WAS9E,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM;;;;IAMrF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM;gBAKjD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAO3E,QAAQ,IAAI,UAAU;IAKtB,QAAQ,IAAI,UAAU;IAKhB,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU;;;;;IAavE,8BAA8B,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU;;;;;YAalE,yBAAyB;IAevC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,YAAY;CAIvB"}
1
+ {"version":3,"file":"Spake2p.d.ts","sourceRoot":"","sources":["../../../src/crypto/Spake2p.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAU,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAM,MAAM,aAAa,CAAC;AAgBzC,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,OAAO;;WAMH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM;;;;WAW9E,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM;;;;IAMrF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM;gBAK5C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAOtE,QAAQ,IAAI,KAAK;IAKjB,QAAQ,IAAI,KAAK;IAKX,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;;;;;IAa7D,8BAA8B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;;;;;YAanD,yBAAyB;IAiBvC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,YAAY;CAIvB"}
@@ -25,7 +25,9 @@ class Spake2p {
25
25
  static async computeW0W1(crypto, { iterations, salt }, pin) {
26
26
  const pinWriter = new DataWriter(Endian.Little);
27
27
  pinWriter.writeUInt32(pin);
28
- const ws = await crypto.createPbkdf2Key(pinWriter.toByteArray(), salt, iterations, CRYPTO_W_SIZE_BYTES * 2);
28
+ const ws = Bytes.of(
29
+ await crypto.createPbkdf2Key(pinWriter.toByteArray(), salt, iterations, CRYPTO_W_SIZE_BYTES * 2)
30
+ );
29
31
  const w0 = mod(bytesToNumberBE(ws.slice(0, 40)), P256_CURVE.n);
30
32
  const w1 = mod(bytesToNumberBE(ws.slice(40, 80)), P256_CURVE.n);
31
33
  return { w0, w1 };
@@ -54,7 +56,7 @@ class Spake2p {
54
56
  return Y.toRawBytes(false);
55
57
  }
56
58
  async computeSecretAndVerifiersFromY(w1, X, Y) {
57
- const YPoint = ProjectivePoint.fromHex(Y);
59
+ const YPoint = ProjectivePoint.fromHex(Bytes.of(Y));
58
60
  try {
59
61
  YPoint.assertValidity();
60
62
  } catch (error) {
@@ -63,11 +65,11 @@ class Spake2p {
63
65
  const yNwo = YPoint.add(N.multiply(this.#w0).negate());
64
66
  const Z = yNwo.multiply(this.#random);
65
67
  const V = yNwo.multiply(w1);
66
- return this.computeSecretAndVerifiers(X, Y, Z.toRawBytes(false), V.toRawBytes(false));
68
+ return this.computeSecretAndVerifiers(X, Y, Bytes.of(Z.toRawBytes(false)), Bytes.of(V.toRawBytes(false)));
67
69
  }
68
70
  async computeSecretAndVerifiersFromX(L, X, Y) {
69
- const XPoint = ProjectivePoint.fromHex(X);
70
- const LPoint = ProjectivePoint.fromHex(L);
71
+ const XPoint = ProjectivePoint.fromHex(Bytes.of(X));
72
+ const LPoint = ProjectivePoint.fromHex(Bytes.of(L));
71
73
  try {
72
74
  XPoint.assertValidity();
73
75
  } catch (error) {
@@ -75,13 +77,15 @@ class Spake2p {
75
77
  }
76
78
  const Z = XPoint.add(M.multiply(this.#w0).negate()).multiply(this.#random);
77
79
  const V = LPoint.multiply(this.#random);
78
- return this.computeSecretAndVerifiers(X, Y, Z.toRawBytes(false), V.toRawBytes(false));
80
+ return this.computeSecretAndVerifiers(X, Y, Bytes.of(Z.toRawBytes(false)), Bytes.of(V.toRawBytes(false)));
79
81
  }
80
82
  async computeSecretAndVerifiers(X, Y, Z, V) {
81
- const TT_HASH = await this.computeTranscriptHash(X, Y, Z, V);
83
+ const TT_HASH = Bytes.of(await this.computeTranscriptHash(X, Y, Z, V));
82
84
  const Ka = TT_HASH.slice(0, 16);
83
85
  const Ke = TT_HASH.slice(16, 32);
84
- const KcAB = await this.#crypto.createHkdfKey(Ka, new Uint8Array(0), Bytes.fromString("ConfirmationKeys"), 32);
86
+ const KcAB = Bytes.of(
87
+ await this.#crypto.createHkdfKey(Ka, new Uint8Array(0), Bytes.fromString("ConfirmationKeys"), 32)
88
+ );
85
89
  const KcA = KcAB.slice(0, 16);
86
90
  const KcB = KcAB.slice(16, 32);
87
91
  const hAY = await this.#crypto.signHmac(KcA, Y);
@@ -93,8 +97,8 @@ class Spake2p {
93
97
  this.addToContext(TTwriter, this.#context);
94
98
  this.addToContext(TTwriter, Bytes.fromString(""));
95
99
  this.addToContext(TTwriter, Bytes.fromString(""));
96
- this.addToContext(TTwriter, M.toRawBytes(false));
97
- this.addToContext(TTwriter, N.toRawBytes(false));
100
+ this.addToContext(TTwriter, Bytes.of(M.toRawBytes(false)));
101
+ this.addToContext(TTwriter, Bytes.of(N.toRawBytes(false)));
98
102
  this.addToContext(TTwriter, X);
99
103
  this.addToContext(TTwriter, Y);
100
104
  this.addToContext(TTwriter, Z);
@@ -103,7 +107,7 @@ class Spake2p {
103
107
  return this.#crypto.computeSha256(TTwriter.toByteArray());
104
108
  }
105
109
  addToContext(TTwriter, data) {
106
- TTwriter.writeUInt64(data.length);
110
+ TTwriter.writeUInt64(data.byteLength);
107
111
  TTwriter.writeByteArray(data);
108
112
  }
109
113
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/crypto/Spake2p.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -4,6 +4,7 @@
4
4
  * Portions copyright 2022-2023 Project CHIP Authors
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
+ import { Bytes } from "#util/Bytes.js";
7
8
  import { Crypto, CryptoDsaEncoding } from "./Crypto.js";
8
9
  import { PrivateKey, PublicKey } from "./Key.js";
9
10
  import { WebCrypto } from "./WebCrypto.js";
@@ -22,18 +23,18 @@ export declare class StandardCrypto extends Crypto {
22
23
  constructor(crypto?: WebCrypto);
23
24
  protected get subtle(): SubtleCrypto;
24
25
  static provider(): StandardCrypto;
25
- randomBytes(length: number): Uint8Array;
26
- encrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, associatedData?: Uint8Array): Uint8Array<ArrayBufferLike>;
27
- decrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, associatedData?: Uint8Array): Uint8Array<ArrayBufferLike>;
28
- computeSha256(buffer: Uint8Array | Uint8Array[]): Promise<Uint8Array<ArrayBuffer>>;
29
- createPbkdf2Key(secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number): Promise<Uint8Array<ArrayBuffer>>;
30
- createHkdfKey(secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number): Promise<Uint8Array<ArrayBuffer>>;
31
- signHmac(secret: Uint8Array, data: Uint8Array): Promise<Uint8Array<ArrayBuffer>>;
32
- signEcdsa(key: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): Promise<Uint8Array<ArrayBuffer>>;
33
- verifyEcdsa(key: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): Promise<void>;
26
+ randomBytes(length: number): Bytes;
27
+ encrypt(key: Bytes, data: Bytes, nonce: Bytes, associatedData?: Bytes): AllowSharedBufferSource;
28
+ decrypt(key: Bytes, data: Bytes, nonce: Bytes, associatedData?: Bytes): AllowSharedBufferSource;
29
+ computeSha256(buffer: Bytes | Bytes[]): Promise<ArrayBuffer>;
30
+ createPbkdf2Key(secret: Bytes, salt: Bytes, iteration: number, keyLength: number): Promise<ArrayBuffer>;
31
+ createHkdfKey(secret: Bytes, salt: Bytes, info: Bytes, length?: number): Promise<Bytes>;
32
+ signHmac(secret: Bytes, data: Bytes): Promise<Bytes>;
33
+ signEcdsa(key: JsonWebKey, data: Bytes | Bytes[], dsaEncoding?: CryptoDsaEncoding): Promise<AllowSharedBufferSource>;
34
+ verifyEcdsa(key: JsonWebKey, data: Bytes, signature: Bytes, dsaEncoding?: CryptoDsaEncoding): Promise<void>;
34
35
  createKeyPair(): Promise<PrivateKey>;
35
36
  protected generateJwk(): Promise<JsonWebKey>;
36
- generateDhSecret(key: PrivateKey, peerKey: PublicKey): Promise<Uint8Array<ArrayBuffer>>;
37
- protected importKey(format: KeyFormat, keyData: JsonWebKey | BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
37
+ generateDhSecret(key: PrivateKey, peerKey: PublicKey): Promise<Bytes>;
38
+ protected importKey(format: KeyFormat, keyData: JsonWebKey | Bytes, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
38
39
  }
39
40
  //# sourceMappingURL=StandardCrypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StandardCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/StandardCrypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,MAAM,EAA+B,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAA2B,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuB3C;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,MAAM;;IACtC,kBAAkB,SAAQ;gBAId,MAAM,GAAE,SAA6B;IAYjD,SAAS,KAAK,MAAM,iBAEnB;IAED,MAAM,CAAC,QAAQ;IAIf,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAMvC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,UAAU;IAKzF,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,UAAU;IAKnF,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE;IAO/C,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAe1F,aAAa,CACf,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,MAAM,GAAE,MAAoC;IAgB1C,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;IAK7C,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA+B3F,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA2BrG,aAAa;cAaH,WAAW;IAkBrB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS;cAmC1C,SAAS,CACrB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,GAAG,YAAY,EAClC,SAAS,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,EAC/G,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;CAQzC"}
1
+ {"version":3,"file":"StandardCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/StandardCrypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAE,MAAM,EAA+B,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAA2B,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuB3C;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,MAAM;;IACtC,kBAAkB,SAAQ;gBAId,MAAM,GAAE,SAA6B;IAYjD,SAAS,KAAK,MAAM,iBAEnB;IAED,MAAM,CAAC,QAAQ;IAIf,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAMlC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK;IASrE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK;IASrE,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE;IAO/B,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAchF,aAAa,CACf,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,MAAoC,GAC7C,OAAO,CAAC,KAAK,CAAC;IAcX,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAKpD,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA+BjF,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,iBAAiB;IAgC3F,aAAa;cAaH,WAAW;IAkBrB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;cAiC3D,SAAS,CACrB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,GAAG,KAAK,EAC3B,SAAS,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,EAC/G,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;CAQzC"}