@did-btcr2/keypair 0.5.1 → 0.7.0

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.
@@ -4,15 +4,16 @@ import { getRandomValues } from 'crypto';
4
4
  import { base58btc } from 'multiformats/bases/base58';
5
5
  import * as tinysecp from 'tiny-secp256k1';
6
6
  import { SchnorrKeyPair } from './pair.js';
7
+ import { CompressedSecp256k1PublicKey } from './public.js';
7
8
  /**
8
9
  * Encapsulates a secp256k1 secret key
9
10
  * Provides get methods for different formats (raw, secret, point).
10
11
  * Provides helpers methods for comparison, serialization and publicKey generation.
11
- * @class SecretKey
12
- * @type {SecretKey}
13
- *
12
+ * @class Secp256k1SecretKey
13
+ * @type {Secp256k1SecretKey}
14
+ * @implements {SecretKey}
14
15
  */
15
- export class SecretKey {
16
+ export class Secp256k1SecretKey {
16
17
  /** @type {KeyBytes} The entropy for the secret key as a byte array */
17
18
  _bytes;
18
19
  /** @type {bigint} The entropy for the secret key as a bigint */
@@ -20,7 +21,7 @@ export class SecretKey {
20
21
  /** @type {string} The secret key as a secretKeyMultibase */
21
22
  _multibase;
22
23
  /**
23
- * Instantiates an instance of SecretKey.
24
+ * Instantiates an instance of Secp256k1SecretKey.
24
25
  * @param {Entropy} entropy bytes (Uint8Array) or secret (bigint)
25
26
  * @throws {SecretKeyError} If entropy is not provided, not a valid 32-byte secret key or not a valid bigint seed
26
27
  */
@@ -34,11 +35,11 @@ export class SecretKey {
34
35
  // If bytes and bytes are not length 32
35
36
  if (isBytes && entropy.length === 32) {
36
37
  this._bytes = entropy;
37
- this._seed = SecretKey.toSecret(entropy);
38
+ this._seed = Secp256k1SecretKey.toSecret(entropy);
38
39
  }
39
40
  // If secret and secret is not a valid bigint, throw error
40
41
  if (isSecret && !(entropy < 1n || entropy >= CURVE.n)) {
41
- this._bytes = SecretKey.toBytes(entropy);
42
+ this._bytes = Secp256k1SecretKey.toBytes(entropy);
42
43
  this._seed = entropy;
43
44
  }
44
45
  if (!this._bytes || this._bytes.length !== 32) {
@@ -103,7 +104,7 @@ export class SecretKey {
103
104
  }
104
105
  /**
105
106
  * Checks if this secret key is equal to another.
106
- * @param {SecretKey} other The other secret key
107
+ * @param {Secp256k1SecretKey} other The other secret key
107
108
  * @returns {boolean} True if the private keys are equal, false otherwise
108
109
  */
109
110
  equals(other) {
@@ -112,7 +113,7 @@ export class SecretKey {
112
113
  }
113
114
  /**
114
115
  * Computes the public key from the secret key bytes.
115
- * @returns {KeyBytes} The computed public key
116
+ * @returns {CompressedSecp256k1PublicKey} The computed public key
116
117
  */
117
118
  computePublicKey() {
118
119
  // Derive the public key from the secret key
@@ -125,7 +126,7 @@ export class SecretKey {
125
126
  if (publicKeyBytes.length !== 33) {
126
127
  throw new SecretKeyError('Invalid compute: public key not compressed format', 'COMPUTE_PUBLIC_KEY_ERROR');
127
128
  }
128
- return publicKeyBytes;
129
+ return new CompressedSecp256k1PublicKey(publicKeyBytes);
129
130
  }
130
131
  /**
131
132
  * Converts the secret key to a JSON object.
@@ -147,15 +148,16 @@ export class SecretKey {
147
148
  }
148
149
  /**
149
150
  * Checks if the public key is a valid secp256k1 point.
150
- * @param {PublicKey} pk The public key to validate
151
151
  * @returns {boolean} True if the public key is valid, false otherwise
152
152
  */
153
- isValidPair(pk) {
153
+ hasValidPublicKey() {
154
+ // Compute the public key from the secret key and compress it
155
+ const pk = this.computePublicKey();
154
156
  // If the public key is not valid, return false
155
157
  if (!tinysecp.isPoint(pk.compressed)) {
156
158
  return false;
157
159
  }
158
- // Else return true
160
+ // Return true if the computed public key equals the provided public key
159
161
  return true;
160
162
  }
161
163
  /**
@@ -182,22 +184,22 @@ export class SecretKey {
182
184
  return decoded;
183
185
  }
184
186
  /**
185
- * Creates a SecretKey object from a JSON object.
187
+ * Creates a Secp256k1SecretKey object from a JSON object.
186
188
  * @param {SecretKeyObject} json The JSON object containing the secret key bytes
187
- * @returns {SecretKey} A new SecretKey object
189
+ * @returns {Secp256k1SecretKey} A new Secp256k1SecretKey object
188
190
  */
189
191
  static fromJSON(json) {
190
- return new SecretKey(new Uint8Array(json.bytes));
192
+ return new Secp256k1SecretKey(new Uint8Array(json.bytes));
191
193
  }
192
194
  /**
193
- * Converts a SecretKey or KeyBytes to a Pair.
194
- * @param {KeyBytes} bytes
195
+ * Converts a Secp256k1SecretKey or KeyBytes to a SchnorrKeyPair.
196
+ * @param {KeyBytes} bytes The secret key bytes
195
197
  * @returns {SchnorrKeyPair} The SchnorrKeyPair object containing the public and private keys
196
198
  * @throws {SecretKeyError} If the secret key is not valid
197
199
  */
198
200
  static toKeyPair(bytes) {
199
- // Create a new SecretKey from the bytes
200
- const secretKey = new SecretKey(bytes);
201
+ // Create a new Secp256k1SecretKey from the bytes
202
+ const secretKey = new Secp256k1SecretKey(bytes);
201
203
  // Compute the public key from the secret key
202
204
  const publicKey = secretKey.computePublicKey();
203
205
  // Create a new Pair from the public key and secret key
@@ -226,17 +228,17 @@ export class SecretKey {
226
228
  return new Uint8Array(bytes);
227
229
  }
228
230
  /**
229
- * Creates a new SecretKey object from a bigint secret.
230
- * @param {bigint} secret The secret bigint
231
- * @returns {SecretKey} A new SecretKey object
231
+ * Creates a new Secp256k1SecretKey object from a bigint secret.
232
+ * @param {bigint} entropy The secret bigint
233
+ * @returns {Secp256k1SecretKey} A new Secp256k1SecretKey object
232
234
  */
233
- static fromSecret(secret) {
235
+ static fromEntropy(entropy) {
234
236
  // Convert the secret bigint to a hex string
235
- const hexsecret = secret.toString(16).padStart(64, '0');
237
+ const hexsecret = entropy.toString(16).padStart(64, '0');
236
238
  // Convert the hex string to a Uint8Array
237
239
  const privateKeyBytes = new Uint8Array(hexsecret.match(/.{2}/g).map(byte => parseInt(byte, 16)));
238
- // Return a new SecretKey object
239
- return new SecretKey(privateKeyBytes);
240
+ // Return a new Secp256k1SecretKey object
241
+ return new Secp256k1SecretKey(privateKeyBytes);
240
242
  }
241
243
  /**
242
244
  * Generates random secret key bytes.
@@ -249,23 +251,23 @@ export class SecretKey {
249
251
  return getRandomValues(byteArray);
250
252
  }
251
253
  /**
252
- * Creates a new SecretKey from random secret key bytes.
253
- * @returns {SecretKey} A new SecretKey object
254
+ * Creates a new Secp256k1SecretKey from random secret key bytes.
255
+ * @returns {Secp256k1SecretKey} A new Secp256k1SecretKey object
254
256
  */
255
257
  static generate() {
256
258
  // Generate empty 32-byte array
257
259
  const randomBytes = this.random();
258
260
  // Use the getRandomValues function to fill the byteArray with random values
259
- return new SecretKey(randomBytes);
261
+ return new Secp256k1SecretKey(randomBytes);
260
262
  }
261
263
  /**
262
264
  * Generates a public key from the given secret key bytes.
263
265
  * @param {KeyBytes} bytes The secret key bytes
264
- * @returns {KeyBytes} The computed public key bytes
266
+ * @returns {CompressedSecp256k1PublicKey} The computed public key bytes
265
267
  */
266
268
  static getPublicKey(bytes) {
267
- // Create a new SecretKey from the bytes and compute the public key
268
- return new SecretKey(bytes).computePublicKey();
269
+ // Create a new Secp256k1SecretKey from the bytes and compute the public key
270
+ return new Secp256k1SecretKey(bytes).computePublicKey();
269
271
  }
270
272
  }
271
273
  //# sourceMappingURL=secret.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"secret.js","sourceRoot":"","sources":["../../src/secret.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret.js","sourceRoot":"","sources":["../../src/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,uCAAuC,EAEvC,KAAK,EAIL,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAsD3D;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IAC7B,sEAAsE;IAC9D,MAAM,CAAY;IAE1B,gEAAgE;IACxD,KAAK,CAAU;IAEvB,4DAA4D;IACpD,UAAU,CAAS;IAE3B;;;;OAIG;IACH,YAAY,OAAgB;QAC1B,4DAA4D;QAC5D,MAAM,OAAO,GAAG,OAAO,YAAY,UAAU,CAAC;QAC9C,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC;QAC7C,IAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CACtB,4DAA4D,EAC5D,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,0DAA0D;QAC1D,IAAI,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACvB,CAAC;QAED,IAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,cAAc,CACtB,mDAAmD,EACnD,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAED,IAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,cAAc,CACtB,yCAAyC,EACzC,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,wCAAwC;QACxC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,gCAAgC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAM,CAAW,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,IAAI,GAAG;QACL,mDAAmD;QACnD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAGD;;;OAGG;IACH,IAAI,SAAS;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,uCAAuC;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAE5C,IAAG,cAAc,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,cAAc,CACtB,wDAAwD,EACxD,wBAAwB,CACzB,CAAC;QACJ,CAAC;QACD,6BAA6B;QAC7B,MAAM,UAAU,GAAG,kCAAkC,CAAC,OAAO,EAAE,CAAC;QAEhE,qDAAqD;QACrD,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAEnC,kDAAkD;QAClD,OAAO,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAyB;QACrC,8CAA8C;QAC9C,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,gBAAgB;QACrB,4CAA4C;QAC5C,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAElE,gCAAgC;QAChC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,cAAc,CACtB,8CAA8C,EAC9C,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,IAAG,cAAc,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,cAAc,CACtB,mDAAmD,EACnD,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,4BAA4B,CAAC,cAAc,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACI,IAAI;QACT,OAAO;YACL,KAAK,EAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAC5B,IAAI,EAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC5B,GAAG,EAAK,IAAI,CAAC,GAAG;SACjB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACI,iBAAiB;QACtB,6DAA6D;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEnC,+CAA+C;QAC/C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wEAAwE;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,SAAiB;QACpC,yCAAyC;QACzC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE5C,2DAA2D;QAC3D,IAAG,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CACtB,sDAAsD,EACtD,wBAAwB,CACzB,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnC,0BAA0B;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE/D,2EAA2E;QAC3E,IAAI,UAAU,KAAK,uCAAuC,EAAE,CAAC;YAC3D,MAAM,IAAI,cAAc,CACtB,8CAA8C,MAAM,EAAE,EACtD,wBAAwB,CACzB,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,QAAQ,CAAC,IAAqB;QAC1C,OAAO,IAAI,kBAAkB,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,SAAS,CAAC,KAAe;QACrC,iDAAiD;QACjD,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEhD,6CAA6C;QAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAE/C,uDAAuD;QACvD,OAAO,IAAI,cAAc,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,QAAQ,CAAC,KAAe;QACpC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,MAAc;QAClC,iFAAiF;QACjF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAC3B,EAAE,MAAM,EAAE,EAAE,EAAE,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAChE,CAAC;QAEF,6DAA6D;QAC7D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,cAAc,CACtB,+CAA+C,EAC/C,uBAAuB,CACxB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,WAAW,CAAC,OAAe;QACvC,4CAA4C;QAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACzD,yCAAyC;QACzC,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClG,yCAAyC;QACzC,OAAO,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,MAAM;QAClB,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAErC,4EAA4E;QAC5E,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAGD;;;OAGG;IACI,MAAM,CAAC,QAAQ;QACpB,+BAA+B;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAElC,4EAA4E;QAC5E,OAAO,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAAC,KAAe;QACxC,4EAA4E;QAC5E,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC1D,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
package/dist/esm/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './pair.js';
2
2
  export * from './secret.js';
3
3
  export * from './public.js';
4
+ export * from './types.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
package/dist/esm/pair.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import { KeyPairError } from '@did-btcr2/common';
2
- import { PublicKey } from './public.js';
3
- import { SecretKey } from './secret.js';
2
+ import { CompressedSecp256k1PublicKey } from './public.js';
3
+ import { Secp256k1SecretKey } from './secret.js';
4
4
  /**
5
- * Encapsulates a PublicKey and a SecretKey object as a single Keys object.
5
+ * Encapsulates a CompressedSecp256k1PublicKey and a Secp256k1SecretKey object as a single SchnorrKeyPair object.
6
6
  * @class SchnorrKeyPair
7
7
  * @type {SchnorrKeyPair}
8
8
  */
9
9
  export class SchnorrKeyPair {
10
- /** @type {SecretKey} The secret key object */
10
+ /** @type {Secp256k1SecretKey} The secret key object */
11
11
  _secretKey;
12
- /** @type {PublicKey} The public key object */ ;
12
+ /** @type {CompressedSecp256k1PublicKey} The public key object */ ;
13
13
  _publicKey;
14
14
  /** @type {string} The public key in multibase format */
15
15
  _publicKeyMultibase;
@@ -17,37 +17,41 @@ export class SchnorrKeyPair {
17
17
  _secretKeyMultibase;
18
18
  /**
19
19
  * Creates an instance of Keys. Must provide a at least a secret key.
20
- * Can optionally provide both a private and public key, but must be a valid pair.
21
- * @param {SecretKey} secretKey The secret key object
20
+ * Can optionally provide both a secret and public key, but must be a valid pair.
21
+ * @param {SchnorrKeyPairParams} params The parameters to initialize the Keys object.
22
+ * @param {CompressedSecp256k1PublicKey | KeyBytes} params.publicKey The public key object or bytes
23
+ * @param {Secp256k1SecretKey | KeyBytes} [params.secret] The secret key object or bytes
24
+ * @throws {KeyPairError} If neither a public key or secret key is provided.
25
+ * @throws {KeyPairError} If the public key is not a valid pair with the secret key.
22
26
  */
23
- constructor({ secretKey, publicKey } = {}) {
27
+ constructor(params = {}) {
24
28
  // If no secret key or public key, throw an error
25
- if (!publicKey && !secretKey) {
29
+ if (!params.publicKey && !params.secretKey) {
26
30
  throw new KeyPairError('Argument missing: must at least provide a publicKey', 'CONSTRUCTOR_ERROR');
27
31
  }
28
- // Set the secret key
29
- if (secretKey instanceof Uint8Array) {
30
- this._secretKey = new SecretKey(secretKey);
32
+ // Set the secretKey
33
+ if (params.secretKey instanceof Uint8Array) {
34
+ this._secretKey = new Secp256k1SecretKey(params.secretKey);
31
35
  }
32
- else if (secretKey instanceof SecretKey) {
33
- this._secretKey = secretKey;
36
+ else if (params.secretKey instanceof Secp256k1SecretKey) {
37
+ this._secretKey = params.secretKey;
34
38
  }
35
- // Set the public key
36
- if (publicKey instanceof PublicKey) {
37
- this._publicKey = publicKey;
39
+ // Set the publicKey
40
+ if (params.publicKey instanceof CompressedSecp256k1PublicKey) {
41
+ this._publicKey = params.publicKey;
38
42
  }
39
- else if (publicKey instanceof Uint8Array) {
40
- this._publicKey = new PublicKey(publicKey);
43
+ else if (params.publicKey instanceof Uint8Array) {
44
+ this._publicKey = new CompressedSecp256k1PublicKey(params.publicKey);
41
45
  }
42
46
  else {
43
- this._publicKey = new PublicKey(this._secretKey.computePublicKey());
47
+ this._publicKey = this._secretKey.computePublicKey();
44
48
  }
45
- this._publicKeyMultibase = this._publicKey.multibase.address;
49
+ this._publicKeyMultibase = this._publicKey.multibase.encoded;
46
50
  this._secretKeyMultibase = this._secretKey ? this._secretKey.multibase : '';
47
51
  }
48
52
  /**
49
- * Get the SecretKey.
50
- * @returns {SecretKey} The SecretKey object
53
+ * Get the Secp256k1SecretKey.
54
+ * @returns {Secp256k1SecretKey} The Secp256k1SecretKey object
51
55
  * @throws {KeyPairError} If the secret key is not available
52
56
  */
53
57
  get secretKey() {
@@ -60,34 +64,39 @@ export class SchnorrKeyPair {
60
64
  throw new KeyPairError('Secret key is not valid', 'SECRET_KEY_ERROR');
61
65
  }
62
66
  // Return a copy of the secret key
63
- const secretKey = this._secretKey;
64
- return secretKey;
67
+ const secret = this._secretKey;
68
+ return secret;
65
69
  }
66
70
  /**
67
- * Set the PublicKey.
68
- * @param {PublicKey} publicKey The PublicKey object
71
+ * Set the CompressedSecp256k1PublicKey.
72
+ * @param {CompressedSecp256k1PublicKey} publicKey The CompressedSecp256k1PublicKey object
69
73
  * @throws {KeyPairError} If the public key is not a valid pair with the secret key.
70
74
  */
71
75
  set publicKey(publicKey) {
72
76
  // If the public key is not a valid pair with the secret key, throw an error
73
- if (this.secretKey && !this.secretKey.isValidPair(publicKey)) {
74
- throw new KeyPairError('Public key is not a valid pair with the secret key', 'PUBLIC_KEY_ERROR');
77
+ if (this.secretKey) {
78
+ if (!this.secretKey.hasValidPublicKey()) {
79
+ throw new KeyPairError('Secret key is not valid', 'SECRET_KEY_ERROR');
80
+ }
81
+ const cPk = this.secretKey.computePublicKey();
82
+ if (!publicKey.equals(cPk))
83
+ throw new KeyPairError('Public key is not a valid pair with the secret key', 'PUBLIC_KEY_ERROR');
75
84
  }
76
85
  this._publicKey = publicKey;
77
- this._publicKeyMultibase = publicKey.multibase.address;
86
+ this._publicKeyMultibase = publicKey.multibase.encoded;
78
87
  this._secretKeyMultibase = this._secretKey ? this._secretKey.multibase : '';
79
88
  }
80
89
  /**
81
- * Get the PublicKey.
82
- * @returns {PublicKey} The PublicKey object
90
+ * Get the CompressedSecp256k1PublicKey.
91
+ * @returns {CompressedSecp256k1PublicKey} The CompressedSecp256k1PublicKey object
83
92
  */
84
93
  get publicKey() {
85
94
  const publicKey = this._publicKey;
86
95
  return publicKey;
87
96
  }
88
97
  /**
89
- * Get the Keys as a raw key pair.
90
- * @returns {RawKeyPair} The Keys as a raw key pair
98
+ * Get the raw bytes of each key in the SchnorrKeyPair.
99
+ * @returns {RawSchnorrKeyPair} JSON object with the SchnorrKeyPair raw bytes.
91
100
  */
92
101
  get raw() {
93
102
  return {
@@ -97,7 +106,7 @@ export class SchnorrKeyPair {
97
106
  }
98
107
  /**
99
108
  * Get the Keys in multibase format.
100
- * @returns {MultibaseKeys} The SecretKey in multibase format
109
+ * @returns {MultibaseKeys} The Secp256k1SecretKey in multibase format
101
110
  */
102
111
  get multibase() {
103
112
  return {
@@ -121,42 +130,44 @@ export class SchnorrKeyPair {
121
130
  * @returns {SchnorrKeyPair} The initialized Keys object.
122
131
  */
123
132
  static fromJSON(keys) {
124
- const secretKey = SecretKey.fromJSON(keys.secretKey);
125
- const publicKey = PublicKey.fromJSON(keys.publicKey);
126
- return new SchnorrKeyPair({ secretKey, publicKey });
133
+ return new SchnorrKeyPair({
134
+ secretKey: Secp256k1SecretKey.fromJSON(keys.secretKey),
135
+ publicKey: CompressedSecp256k1PublicKey.fromJSON(keys.publicKey)
136
+ });
127
137
  }
128
138
  /**
129
- * Static method creates a new SchnorrKeyPair from a SecretKey object or secret key bytes.
130
- * @param {SecretKey | KeyBytes} data The secret key bytes
139
+ * Static method creates a new SchnorrKeyPair from a Secp256k1SecretKey object or secret key bytes.
140
+ * @param {Secp256k1SecretKey | KeyBytes} data The secret key bytes
131
141
  * @returns {SchnorrKeyPair} A new SchnorrKeyPair object
132
142
  */
133
143
  static fromPrivateKey(data) {
134
- // If the secret key is a SecretKey object, get the raw bytes else use the bytes
135
- const bytes = data instanceof SecretKey ? data.bytes : data;
144
+ // If the secret key is a Secp256k1SecretKey object, get the raw bytes else use the bytes
145
+ const bytes = data instanceof Secp256k1SecretKey ? data.bytes : data;
136
146
  // Throw error if the secret key is not 32 bytes
137
147
  if (bytes.length !== 32) {
138
148
  throw new KeyPairError('Invalid arg: must be 32 byte secret key', 'FROM_PRIVATE_KEY_ERROR');
139
149
  }
140
- // If pk Uint8Array, construct SecretKey object else use the object
141
- const secretKey = data instanceof Uint8Array ? new SecretKey(data) : data;
142
- // Compute the public key from the secret key
143
- const publicKey = secretKey.computePublicKey();
150
+ // If pk Uint8Array, construct Secp256k1SecretKey object else use the object
151
+ const secret = data instanceof Uint8Array ? new Secp256k1SecretKey(data) : data;
144
152
  // Return a new Keys object
145
- return new SchnorrKeyPair({ secretKey, publicKey });
153
+ return new SchnorrKeyPair({
154
+ secretKey: data instanceof Uint8Array ? new Secp256k1SecretKey(data) : data,
155
+ publicKey: secret.computePublicKey()
156
+ });
146
157
  }
147
158
  /**
148
- * Static method creates a new Keys (SecretKey/PublicKey) bigint secret.
149
- * @param {bigint} secret The secret key secret
150
- * @returns {Keys} A new Keys object
159
+ * Static method creates a new Keys (Secp256k1SecretKey/CompressedSecp256k1PublicKey) from bigint entropy.
160
+ * @param {bigint} entropy The entropy in bigint form
161
+ * @returns {SchnorrKeyPair} A new SchnorrKeyPair object
151
162
  */
152
- static fromSecret(secret) {
153
- const secretKey = SecretKey.fromSecret(secret);
163
+ static fromEntropy(entropy) {
164
+ const secretKey = Secp256k1SecretKey.fromEntropy(entropy);
154
165
  const publicKey = secretKey.computePublicKey();
155
166
  return new SchnorrKeyPair({ secretKey, publicKey });
156
167
  }
157
168
  /**
158
169
  * Converts key bytes to a hex string.
159
- * @param {KeyBytes} keyBytes The key bytes (private or public).
170
+ * @param {KeyBytes} keyBytes The key bytes (secret or public).
160
171
  * @returns {Hex} The key bytes as a hex string.
161
172
  */
162
173
  static toHex(keyBytes) {
@@ -164,21 +175,21 @@ export class SchnorrKeyPair {
164
175
  }
165
176
  /**
166
177
  * Compares two Keys objects for equality.
167
- * @param {SchnorrKeyPair} keys The main keys.
168
- * @param {SchnorrKeyPair} otherKeys The other keys to compare.
178
+ * @param {SchnorrKeyPair} kp The main keys.
179
+ * @param {SchnorrKeyPair} otherKp The other keys to compare.
169
180
  * @returns {boolean} True if the public key and secret key are equal, false otherwise.
170
181
  */
171
- static equals(keys, otherKeys) {
182
+ static equals(kp, otherKp) {
172
183
  // Deconstruct the public keys from the key pairs
173
- const pk = keys.publicKey;
174
- const otherPk = otherKeys.publicKey;
184
+ const pk = kp.publicKey;
185
+ const otherPk = otherKp.publicKey;
175
186
  // If publicKeys present, use to compare as hex strings.
176
187
  if (pk && otherPk) {
177
188
  return pk.hex === otherPk.hex;
178
189
  }
179
- // Deconstruct the private keys from the key pairs
180
- const sk = keys.secretKey;
181
- const otherSk = otherKeys.secretKey;
190
+ // Deconstruct the secret keys from the key pairs
191
+ const sk = kp.secretKey;
192
+ const otherSk = otherKp.secretKey;
182
193
  if (sk && otherSk) {
183
194
  // Get the public key hex strings for both key pair publicKeys
184
195
  return sk.hex === otherSk.hex;
@@ -187,13 +198,13 @@ export class SchnorrKeyPair {
187
198
  }
188
199
  /**
189
200
  * Static method to generate a new random SchnorrKeyPair instance.
190
- * @returns {SchnorrKeyPair} A new SecretKey object.
201
+ * @returns {SchnorrKeyPair} A new Secp256k1SecretKey object.
191
202
  */
192
203
  static generate() {
193
204
  // Generate random secret key bytes
194
- const skBytes = SecretKey.random();
195
- // Construct a new SecretKey object
196
- const secretKey = new SecretKey(skBytes);
205
+ const sk = Secp256k1SecretKey.random();
206
+ // Construct a new Secp256k1SecretKey object
207
+ const secretKey = new Secp256k1SecretKey(sk);
197
208
  // Compute the public key from the secret key
198
209
  const publicKey = secretKey.computePublicKey();
199
210
  // Return a new Keys object
@@ -1 +1 @@
1
- {"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/pair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/pair.ts"],"names":[],"mappings":"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"}