@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.
@@ -1,25 +1,26 @@
1
1
  import { BIP340_PUBLIC_KEY_MULTIBASE_PREFIX, BIP340_PUBLIC_KEY_MULTIBASE_PREFIX_HASH, CURVE, PublicKeyError } from '@did-btcr2/common';
2
2
  import { sha256 } from '@noble/hashes/sha2';
3
3
  import { base58btc } from 'multiformats/bases/base58';
4
- import { SecretKey } from './secret.js';
4
+ import * as tinysecp from 'tiny-secp256k1';
5
+ import { Secp256k1SecretKey } from './secret.js';
5
6
  /**
6
7
  * Encapsulates a secp256k1 public key compliant to BIP-340 BIP schnorr signature scheme.
7
8
  * Provides get methods for different formats (compressed, x-only, multibase).
8
9
  * Provides helpers methods for comparison and serialization.
9
- * @class PublicKey
10
- * @type {PublicKey}
10
+ * @class CompressedSecp256k1PublicKey
11
+ * @type {CompressedSecp256k1PublicKey}
11
12
  */
12
- export class PublicKey {
13
+ export class CompressedSecp256k1PublicKey {
13
14
  /** @type {KeyBytes} The public key bytes */
14
15
  _bytes;
15
16
  /** @type {MultibaseObject} The public key as a MultibaseObject */
16
17
  _multibase = {
17
18
  prefix: BIP340_PUBLIC_KEY_MULTIBASE_PREFIX,
18
19
  key: [],
19
- address: ''
20
+ encoded: ''
20
21
  };
21
22
  /**
22
- * Creates a PublicKey instance.
23
+ * Creates a CompressedSecp256k1PublicKey instance.
23
24
  * @param {KeyBytes} bytes The public key byte array.
24
25
  * @throws {PublicKeyError} if the byte length is not 32 (x-only) or 33 (compressed)
25
26
  */
@@ -28,10 +29,14 @@ export class PublicKey {
28
29
  if (bytes.length !== 33) {
29
30
  throw new PublicKeyError('Invalid argument: byte length must be 33 (compressed)', 'CONSTRUCTOR_ERROR', { bytes });
30
31
  }
32
+ // Validate the point is on curve and in compressed form
33
+ if (!tinysecp.isPoint(bytes)) {
34
+ throw new PublicKeyError('Invalid argument: bytes are not a valid secp256k1 compressed point', 'CONSTRUCTOR_ERROR', { bytes });
35
+ }
31
36
  // Set the bytes
32
37
  this._bytes = bytes;
33
38
  // Set multibase
34
- this._multibase.address = this.encode();
39
+ this._multibase.encoded = this.encode();
35
40
  this._multibase.key = [...this._multibase.prefix, ...this.compressed];
36
41
  }
37
42
  /**
@@ -52,13 +57,30 @@ export class PublicKey {
52
57
  return uncompressed;
53
58
  }
54
59
  /**
55
- * Get the parity byte of the public key.
56
- * @returns {number} The parity byte of the public key.
60
+ * X-only (32-byte) view of the public key per BIP-340.
61
+ */
62
+ get xOnly() {
63
+ return this._bytes.slice(1);
64
+ }
65
+ /**
66
+ * Parity of the SEC compressed public key.
67
+ * @returns {0x02 | 0x03} The parity byte (0x02 if even, 0x03 if odd).
68
+ * @throws {PublicKeyError} If the parity byte is not 0x02 or 0x03.
57
69
  */
58
70
  get parity() {
59
- const parity = this.compressed[0];
71
+ const parity = this._bytes[0];
72
+ if (![0x02, 0x03].includes(parity)) {
73
+ throw new PublicKeyError('Invalid state: parity byte must be 2 or 3', 'PARITY_ERROR', { parity });
74
+ }
60
75
  return parity;
61
76
  }
77
+ /**
78
+ * Whether the SEC compressed public key has even Y.
79
+ * @returns {boolean} True if the public key has even Y.
80
+ */
81
+ get isEven() {
82
+ return this._bytes[0] === 0x02;
83
+ }
62
84
  /**
63
85
  * Get the x-coordinate of the public key.
64
86
  * @returns {Uint8Array} The 32-byte x-coordinate of the public key.
@@ -101,6 +123,13 @@ export class PublicKey {
101
123
  y: this.y
102
124
  };
103
125
  }
126
+ /**
127
+ * Returns the BIP-340 (x-only) representation of this key.
128
+ * @returns {KeyBytes} The BIP-340 (x-only) representation of the public key.
129
+ */
130
+ bip340() {
131
+ return this.xOnly;
132
+ }
104
133
  /**
105
134
  * Returns the point of the public key.
106
135
  * @param {Hex} pk The public key in hex (Uint8Array or string) format.
@@ -108,14 +137,14 @@ export class PublicKey {
108
137
  * @throws {PublicKeyError} If the public key is not a valid hex string or byte array.
109
138
  */
110
139
  static point(pk) {
111
- // If the public key is a hex string, convert it to a PublicKey object and return the point
140
+ // If the public key is a hex string, convert it to a CompressedSecp256k1PublicKey object and return the point
112
141
  if (typeof pk === 'string' && /^[0-9a-fA-F]+$/.test(pk)) {
113
- const publicKey = new PublicKey(Buffer.fromHex(pk));
142
+ const publicKey = new CompressedSecp256k1PublicKey(Buffer.fromHex(pk));
114
143
  return publicKey.point;
115
144
  }
116
- // If the public key is a byte array or ArrayBuffer, convert it to a PublicKey object and return the point
145
+ // If the public key is a byte array or ArrayBuffer, convert it to a CompressedSecp256k1PublicKey object and return the point
117
146
  if (pk instanceof Uint8Array || ArrayBuffer.isView(pk)) {
118
- const publicKey = new PublicKey(pk);
147
+ const publicKey = new CompressedSecp256k1PublicKey(pk);
119
148
  return publicKey.point;
120
149
  }
121
150
  // If the public key is neither a hex string nor a byte array, throw an error
@@ -127,7 +156,7 @@ export class PublicKey {
127
156
  */
128
157
  decode() {
129
158
  // Decode the public key multibase string
130
- const decoded = base58btc.decode(this.multibase.address);
159
+ const decoded = base58btc.decode(this.multibase.encoded);
131
160
  // If the public key bytes are not 35 bytes, throw an error
132
161
  if (decoded.length !== 35) {
133
162
  throw new PublicKeyError('Invalid argument: must be 35 byte publicKeyMultibase', 'DECODE_MULTIBASE_ERROR');
@@ -163,15 +192,15 @@ export class PublicKey {
163
192
  }
164
193
  /**
165
194
  * Compares this public key to another public key.
166
- * @param {PublicKey} other The other public key to compare
195
+ * @param {CompressedSecp256k1PublicKey} other The other public key to compare
167
196
  * @returns {boolean} True if the public keys are equal, false otherwise.
168
197
  */
169
198
  equals(other) {
170
199
  return this.hex === other.hex;
171
200
  }
172
201
  /**
173
- * JSON representation of a PublicKey object.
174
- * @returns {PublicKeyObject} The PublicKey as a JSON object.
202
+ * JSON representation of a CompressedSecp256k1PublicKey object.
203
+ * @returns {PublicKeyObject} The CompressedSecp256k1PublicKey as a JSON object.
175
204
  */
176
205
  json() {
177
206
  return {
@@ -185,30 +214,32 @@ export class PublicKey {
185
214
  };
186
215
  }
187
216
  /**
188
- * Creates a PublicKey object from a JSON representation.
189
- * @param {PublicKeyObject} json The JSON object to initialize the PublicKey.
190
- * @returns {PublicKey} The initialized PublicKey object.
217
+ * Creates a CompressedSecp256k1PublicKey object from a JSON representation.
218
+ * @param {PublicKeyObject} json The JSON object to initialize the CompressedSecp256k1PublicKey.
219
+ * @returns {CompressedSecp256k1PublicKey} The initialized CompressedSecp256k1PublicKey object.
191
220
  */
192
221
  static fromJSON(json) {
193
222
  json.x.unshift(json.parity);
194
- return new PublicKey(json.x.toUint8Array());
223
+ return new CompressedSecp256k1PublicKey(json.x.toUint8Array());
195
224
  }
196
225
  /**
197
- * Computes the deterministic public key for a given private key.
198
- * @param {PrivateKey | KeyBytes} sk The PrivateKey object or the private key bytes
199
- * @returns {PublicKey} A new PublicKey object
226
+ * Computes the deterministic public key for a given secret key.
227
+ * @param {Secp256k1SecretKey | KeyBytes} sk The Secp256k1SecretKey object or the secret key bytes
228
+ * @returns {CompressedSecp256k1PublicKey} A new CompressedSecp256k1PublicKey object
200
229
  */
201
230
  static fromSecretKey(sk) {
202
- // If the private key is a PrivateKey object, get the raw bytes else use the bytes
203
- const bytes = sk instanceof SecretKey ? sk.bytes : sk;
204
- // Throw error if the private key is not 32 bytes
231
+ // If the secret key is a Secp256k1SecretKey object, get the raw bytes else use the bytes
232
+ const bytes = sk instanceof Secp256k1SecretKey ? sk.bytes : sk;
233
+ // Throw error if the secret key is not 32 bytes
205
234
  if (bytes.length !== 32) {
206
- throw new PublicKeyError('Invalid arg: must be 32 byte private key', 'FROM_PRIVATE_KEY_ERROR');
235
+ throw new PublicKeyError('Invalid arg: must be 32 byte secret key', 'FROM_SECRET_KEY_ERROR');
207
236
  }
208
- // Compute the public key from the private key
209
- const privateKey = sk instanceof SecretKey ? sk : new SecretKey(sk);
210
- // Return a new PublicKey object
211
- return new PublicKey(privateKey.computePublicKey());
237
+ // Compute the public key from the secret key
238
+ const secret = sk instanceof Secp256k1SecretKey
239
+ ? sk
240
+ : new Secp256k1SecretKey(sk);
241
+ // Return a new CompressedSecp256k1PublicKey object
242
+ return secret.computePublicKey();
212
243
  }
213
244
  /**
214
245
  * Computes modular exponentiation: (base^exp) % mod.
@@ -265,19 +296,5 @@ export class PublicKey {
265
296
  return new Uint8Array(Buffer.concat([Buffer.from([0x04]), Buffer.from(this.x), yBytes]));
266
297
  }
267
298
  ;
268
- /**
269
- * Static version of liftX method.
270
- * @param {KeyBytes} x The 32-byte x-coordinate to lift.
271
- * @returns {Uint8Array} The 65-byte uncompressed public key (0x04, x, y).
272
- */
273
- static xOnly(x) {
274
- // Ensure x-coordinate is 32 bytes
275
- if (x.length !== 32) {
276
- throw new PublicKeyError('Invalid argument: x-coordinate length must be 32 bytes', 'LIFT_X_ERROR');
277
- }
278
- // Create a PublicKey instance and lift the x-coordinate
279
- const publicKey = new PublicKey(x);
280
- return publicKey.x;
281
- }
282
299
  }
283
300
  //# sourceMappingURL=public.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/public.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/public.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
@@ -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":""}
@@ -1,3 +1,4 @@
1
1
  export * from './pair.js';
2
2
  export * from './secret.js';
3
3
  export * from './public.js';
4
+ export * from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -1,47 +1,35 @@
1
1
  import { Hex, KeyBytes, SchnorrKeyPairObject } 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
+ import { MultibaseKeys, RawSchnorrKeyPair, SchnorrKeyPairParams } from './types.js';
4
5
  /**
5
- * Interface for KeyPair class.
6
+ * General KeyPair interface used by SchnorrKeyPair class.
6
7
  * @interface KeyPair
7
8
  * @type {KeyPair}
8
9
  */
9
10
  export interface KeyPair {
10
11
  /**
11
- * @type {PublicKey} The PublicKey associated with the SchnorrKeyPair (required).
12
+ * @type {CompressedSecp256k1PublicKey} The public key associated with the SchnorrKeyPair (required).
12
13
  */
13
- readonly publicKey: PublicKey;
14
+ readonly publicKey: CompressedSecp256k1PublicKey;
14
15
  /**
15
- * @type {SecretKey} The SecretKey associated with the SchnorrKeyPair (optional).
16
+ * @type {Secp256k1SecretKey} The secret key associated with the SchnorrKeyPair (optional).
16
17
  * @throws {KeyPairError} If the secret key is not available.
17
18
  */
18
- readonly secretKey?: SecretKey;
19
+ readonly secretKey?: Secp256k1SecretKey;
19
20
  /**
20
21
  * JSON representation of the SchnorrKeyPair object.
21
22
  * @returns {SchnorrKeyPairObject} The SchnorrKeyPair as a JSON object.
22
23
  */
23
24
  json(): SchnorrKeyPairObject;
24
25
  }
25
- type RawKeyPair = {
26
- public: KeyBytes;
27
- secret?: KeyBytes;
28
- };
29
- /** Params for the {@link SchnorrKeyPair} constructor */
30
- interface KeyParams {
31
- secretKey?: SecretKey | KeyBytes;
32
- publicKey?: PublicKey | KeyBytes;
33
- }
34
- interface MultibaseKeys {
35
- publicKeyMultibase: string;
36
- secretKeyMultibase: string;
37
- }
38
26
  /**
39
- * Encapsulates a PublicKey and a SecretKey object as a single Keys object.
27
+ * Encapsulates a CompressedSecp256k1PublicKey and a Secp256k1SecretKey object as a single SchnorrKeyPair object.
40
28
  * @class SchnorrKeyPair
41
29
  * @type {SchnorrKeyPair}
42
30
  */
43
31
  export declare class SchnorrKeyPair implements KeyPair {
44
- /** @type {SecretKey} The secret key object */
32
+ /** @type {Secp256k1SecretKey} The secret key object */
45
33
  private _secretKey?;
46
34
  private _publicKey;
47
35
  /** @type {string} The public key in multibase format */
@@ -50,35 +38,39 @@ export declare class SchnorrKeyPair implements KeyPair {
50
38
  private _secretKeyMultibase;
51
39
  /**
52
40
  * Creates an instance of Keys. Must provide a at least a secret key.
53
- * Can optionally provide both a private and public key, but must be a valid pair.
54
- * @param {SecretKey} secretKey The secret key object
41
+ * Can optionally provide both a secret and public key, but must be a valid pair.
42
+ * @param {SchnorrKeyPairParams} params The parameters to initialize the Keys object.
43
+ * @param {CompressedSecp256k1PublicKey | KeyBytes} params.publicKey The public key object or bytes
44
+ * @param {Secp256k1SecretKey | KeyBytes} [params.secret] The secret key object or bytes
45
+ * @throws {KeyPairError} If neither a public key or secret key is provided.
46
+ * @throws {KeyPairError} If the public key is not a valid pair with the secret key.
55
47
  */
56
- constructor({ secretKey, publicKey }?: KeyParams);
48
+ constructor(params?: SchnorrKeyPairParams);
57
49
  /**
58
- * Get the SecretKey.
59
- * @returns {SecretKey} The SecretKey object
50
+ * Get the Secp256k1SecretKey.
51
+ * @returns {Secp256k1SecretKey} The Secp256k1SecretKey object
60
52
  * @throws {KeyPairError} If the secret key is not available
61
53
  */
62
- get secretKey(): SecretKey;
54
+ get secretKey(): Secp256k1SecretKey;
63
55
  /**
64
- * Set the PublicKey.
65
- * @param {PublicKey} publicKey The PublicKey object
56
+ * Set the CompressedSecp256k1PublicKey.
57
+ * @param {CompressedSecp256k1PublicKey} publicKey The CompressedSecp256k1PublicKey object
66
58
  * @throws {KeyPairError} If the public key is not a valid pair with the secret key.
67
59
  */
68
- set publicKey(publicKey: PublicKey);
60
+ set publicKey(publicKey: CompressedSecp256k1PublicKey);
69
61
  /**
70
- * Get the PublicKey.
71
- * @returns {PublicKey} The PublicKey object
62
+ * Get the CompressedSecp256k1PublicKey.
63
+ * @returns {CompressedSecp256k1PublicKey} The CompressedSecp256k1PublicKey object
72
64
  */
73
- get publicKey(): PublicKey;
65
+ get publicKey(): CompressedSecp256k1PublicKey;
74
66
  /**
75
- * Get the Keys as a raw key pair.
76
- * @returns {RawKeyPair} The Keys as a raw key pair
67
+ * Get the raw bytes of each key in the SchnorrKeyPair.
68
+ * @returns {RawSchnorrKeyPair} JSON object with the SchnorrKeyPair raw bytes.
77
69
  */
78
- get raw(): RawKeyPair;
70
+ get raw(): RawSchnorrKeyPair;
79
71
  /**
80
72
  * Get the Keys in multibase format.
81
- * @returns {MultibaseKeys} The SecretKey in multibase format
73
+ * @returns {MultibaseKeys} The Secp256k1SecretKey in multibase format
82
74
  */
83
75
  get multibase(): MultibaseKeys;
84
76
  /**
@@ -93,34 +85,33 @@ export declare class SchnorrKeyPair implements KeyPair {
93
85
  */
94
86
  static fromJSON(keys: SchnorrKeyPairObject): SchnorrKeyPair;
95
87
  /**
96
- * Static method creates a new SchnorrKeyPair from a SecretKey object or secret key bytes.
97
- * @param {SecretKey | KeyBytes} data The secret key bytes
88
+ * Static method creates a new SchnorrKeyPair from a Secp256k1SecretKey object or secret key bytes.
89
+ * @param {Secp256k1SecretKey | KeyBytes} data The secret key bytes
98
90
  * @returns {SchnorrKeyPair} A new SchnorrKeyPair object
99
91
  */
100
- static fromPrivateKey(data: SecretKey | KeyBytes): SchnorrKeyPair;
92
+ static fromPrivateKey(data: Secp256k1SecretKey | KeyBytes): SchnorrKeyPair;
101
93
  /**
102
- * Static method creates a new Keys (SecretKey/PublicKey) bigint secret.
103
- * @param {bigint} secret The secret key secret
104
- * @returns {Keys} A new Keys object
94
+ * Static method creates a new Keys (Secp256k1SecretKey/CompressedSecp256k1PublicKey) from bigint entropy.
95
+ * @param {bigint} entropy The entropy in bigint form
96
+ * @returns {SchnorrKeyPair} A new SchnorrKeyPair object
105
97
  */
106
- static fromSecret(secret: bigint): SchnorrKeyPair;
98
+ static fromEntropy(entropy: bigint): SchnorrKeyPair;
107
99
  /**
108
100
  * Converts key bytes to a hex string.
109
- * @param {KeyBytes} keyBytes The key bytes (private or public).
101
+ * @param {KeyBytes} keyBytes The key bytes (secret or public).
110
102
  * @returns {Hex} The key bytes as a hex string.
111
103
  */
112
104
  static toHex(keyBytes: KeyBytes): Hex;
113
105
  /**
114
106
  * Compares two Keys objects for equality.
115
- * @param {SchnorrKeyPair} keys The main keys.
116
- * @param {SchnorrKeyPair} otherKeys The other keys to compare.
107
+ * @param {SchnorrKeyPair} kp The main keys.
108
+ * @param {SchnorrKeyPair} otherKp The other keys to compare.
117
109
  * @returns {boolean} True if the public key and secret key are equal, false otherwise.
118
110
  */
119
- static equals(keys: SchnorrKeyPair, otherKeys: SchnorrKeyPair): boolean;
111
+ static equals(kp: SchnorrKeyPair, otherKp: SchnorrKeyPair): boolean;
120
112
  /**
121
113
  * Static method to generate a new random SchnorrKeyPair instance.
122
- * @returns {SchnorrKeyPair} A new SecretKey object.
114
+ * @returns {SchnorrKeyPair} A new Secp256k1SecretKey object.
123
115
  */
124
116
  static generate(): SchnorrKeyPair;
125
117
  }
126
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/pair.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,QAAQ,EAER,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAE/B;;;OAGG;IACH,IAAI,IAAI,oBAAoB,CAAC;CAC9B;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB,CAAA;AAED,wDAAwD;AACxD,UAAU,SAAS;IACjB,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAClC;AAED,UAAU,aAAa;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AACD;;;;GAIG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC5C,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAAC,CAAY;IAG/B,OAAO,CAAC,UAAU,CAAY;IAE9B,wDAAwD;IACxD,OAAO,CAAC,mBAAmB,CAAS;IAEpC,wDAAwD;IACxD,OAAO,CAAC,mBAAmB,CAAS;IAEpC;;;;OAIG;gBACS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAE,SAAc;IA0BpD;;;;OAIG;IACH,IAAI,SAAS,IAAI,SAAS,CAYzB;IAED;;;;OAIG;IACH,IAAI,SAAS,CAAC,SAAS,EAAE,SAAS,EAQjC;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,SAAS,CAGzB;IAED;;;OAGG;IACH,IAAI,GAAG,IAAI,UAAU,CAKpB;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,aAAa,CAK7B;IAED;;;OAGG;IACI,IAAI,IAAI,oBAAoB;IAOnC;;;;OAIG;WACW,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,cAAc;IAMlE;;;;OAIG;WACW,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,cAAc;IAoBxE;;;;OAIG;WACW,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;IAMxD;;;;OAIG;WACW,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAI5C;;;;;OAKG;WACW,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO;IAqB9E;;;OAGG;WACW,QAAQ,IAAI,cAAc;CAazC"}
1
+ {"version":3,"file":"pair.d.ts","sourceRoot":"","sources":["../../src/pair.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,QAAQ,EAER,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEpF;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,4BAA4B,CAAC;IAEjD;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAExC;;;OAGG;IACH,IAAI,IAAI,oBAAoB,CAAC;CAC9B;AAED;;;;GAIG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC5C,uDAAuD;IACvD,OAAO,CAAC,UAAU,CAAC,CAAqB;IAGxC,OAAO,CAAC,UAAU,CAA+B;IAEjD,wDAAwD;IACxD,OAAO,CAAC,mBAAmB,CAAS;IAEpC,wDAAwD;IACxD,OAAO,CAAC,mBAAmB,CAAS;IAEpC;;;;;;;;OAQG;gBACS,MAAM,GAAE,oBAAyB;IA0B7C;;;;OAIG;IACH,IAAI,SAAS,IAAI,kBAAkB,CAYlC;IAED;;;;OAIG;IACH,IAAI,SAAS,CAAC,SAAS,EAAE,4BAA4B,EAapD;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,4BAA4B,CAG5C;IAED;;;OAGG;IACH,IAAI,GAAG,IAAI,iBAAiB,CAK3B;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,aAAa,CAK7B;IAED;;;OAGG;IACI,IAAI,IAAI,oBAAoB;IAOnC;;;;OAIG;WACW,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,cAAc;IAOlE;;;;OAIG;WACW,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,QAAQ,GAAG,cAAc;IAoBjF;;;;OAIG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;IAM1D;;;;OAIG;WACW,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAI5C;;;;;OAKG;WACW,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO;IAqB1E;;;OAGG;WACW,QAAQ,IAAI,cAAc;CAazC"}