iso-signatures 0.4.0 → 0.5.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.
- package/dist/src/asn1.d.ts +17 -17
- package/dist/src/asn1.d.ts.map +1 -1
- package/dist/src/signers/ecdsa.d.ts +2 -2
- package/dist/src/signers/ecdsa.d.ts.map +1 -1
- package/dist/src/signers/eddsa.d.ts +2 -2
- package/dist/src/signers/eddsa.d.ts.map +1 -1
- package/dist/src/signers/eip191.d.ts +2 -2
- package/dist/src/signers/eip191.d.ts.map +1 -1
- package/dist/src/signers/es256k.d.ts +4 -4
- package/dist/src/signers/es256k.d.ts.map +1 -1
- package/dist/src/signers/rsa.d.ts +2 -2
- package/dist/src/signers/rsa.d.ts.map +1 -1
- package/dist/src/spki.d.ts +4 -4
- package/dist/src/spki.d.ts.map +1 -1
- package/dist/src/types.d.ts +3 -3
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/verifiers/ecdsa.d.ts.map +1 -1
- package/dist/src/verifiers/eip191.d.ts +3 -4
- package/dist/src/verifiers/eip191.d.ts.map +1 -1
- package/package.json +11 -11
- package/src/asn1.js +16 -27
- package/src/signers/ecdsa.js +1 -1
- package/src/signers/eddsa.js +24 -8
- package/src/signers/eip191.js +1 -1
- package/src/signers/es256k.js +19 -10
- package/src/signers/rsa.js +1 -1
- package/src/spki.js +2 -2
- package/src/types.ts +3 -3
- package/src/verifiers/ecdsa.js +2 -5
- package/src/verifiers/eip191.js +13 -14
package/dist/src/asn1.d.ts
CHANGED
|
@@ -5,27 +5,27 @@ export const NULL_TAG: 5;
|
|
|
5
5
|
export const OBJECT_TAG: 6;
|
|
6
6
|
export const SEQUENCE_TAG: 48;
|
|
7
7
|
export const UNUSED_BIT_PAD: 0;
|
|
8
|
-
export function encodeDERLength(length: number): Uint8Array
|
|
9
|
-
export function readDERLength(bytes: Uint8Array
|
|
8
|
+
export function encodeDERLength(length: number): Uint8Array<ArrayBuffer>;
|
|
9
|
+
export function readDERLength(bytes: Uint8Array<ArrayBuffer>, offset?: number): {
|
|
10
10
|
number: number;
|
|
11
11
|
consumed: number;
|
|
12
12
|
};
|
|
13
|
-
export function skip(input: Uint8Array
|
|
14
|
-
export function into(input: Uint8Array
|
|
13
|
+
export function skip(input: Uint8Array<ArrayBuffer>, expectedTag: number, position: number): number;
|
|
14
|
+
export function into(input: Uint8Array<ArrayBuffer>, expectedTag: number, offset: number): {
|
|
15
15
|
position: number;
|
|
16
16
|
length: number;
|
|
17
17
|
};
|
|
18
|
-
export function encodeBitString(input: Uint8Array): Uint8Array<ArrayBuffer>;
|
|
19
|
-
export function encodeOctetString(input: Uint8Array): Uint8Array<ArrayBuffer>;
|
|
20
|
-
export function encodeSequence(sequence: Uint8Array[]): Uint8Array<ArrayBuffer>;
|
|
21
|
-
export function readSequence(bytes: Uint8Array
|
|
22
|
-
export function encodeInt(input: Uint8Array): Uint8Array<ArrayBuffer>;
|
|
23
|
-
export function enterSequence(bytes: Uint8Array
|
|
24
|
-
export function skipSequence(bytes: Uint8Array
|
|
25
|
-
export function skipInt(bytes: Uint8Array
|
|
26
|
-
export function readBitString(bytes: Uint8Array
|
|
27
|
-
export function readInt(bytes: Uint8Array
|
|
28
|
-
export function readOctetString(bytes: Uint8Array
|
|
29
|
-
export function readSequenceWith(readers: [Reader, ...Reader[]], source: Uint8Array
|
|
30
|
-
export type Reader = (bytes: Uint8Array
|
|
18
|
+
export function encodeBitString(input: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBuffer>;
|
|
19
|
+
export function encodeOctetString(input: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBuffer>;
|
|
20
|
+
export function encodeSequence(sequence: Uint8Array<ArrayBuffer>[]): Uint8Array<ArrayBuffer>;
|
|
21
|
+
export function readSequence(bytes: Uint8Array<ArrayBuffer>, offset?: number): Uint8Array<ArrayBuffer>;
|
|
22
|
+
export function encodeInt(input: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBuffer>;
|
|
23
|
+
export function enterSequence(bytes: Uint8Array<ArrayBuffer>, offset?: number): number;
|
|
24
|
+
export function skipSequence(bytes: Uint8Array<ArrayBuffer>, offset?: number): number;
|
|
25
|
+
export function skipInt(bytes: Uint8Array<ArrayBuffer>, offset?: number): number;
|
|
26
|
+
export function readBitString(bytes: Uint8Array<ArrayBuffer>, offset?: number): Uint8Array<ArrayBuffer>;
|
|
27
|
+
export function readInt(bytes: Uint8Array<ArrayBuffer>, byteOffset?: number): Uint8Array<ArrayBuffer>;
|
|
28
|
+
export function readOctetString(bytes: Uint8Array<ArrayBuffer>, offset?: number): Uint8Array<ArrayBuffer>;
|
|
29
|
+
export function readSequenceWith(readers: [Reader, ...Reader[]], source: Uint8Array<ArrayBuffer>, byteOffset?: number): Uint8Array<ArrayBuffer>[];
|
|
30
|
+
export type Reader = (bytes: Uint8Array<ArrayBuffer>, offset: number) => Uint8Array<ArrayBuffer>;
|
|
31
31
|
//# sourceMappingURL=asn1.d.ts.map
|
package/dist/src/asn1.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asn1.d.ts","sourceRoot":"","sources":["../../src/asn1.js"],"names":[],"mappings":"AAIA,sBAAuB,CAAI,CAAA;AAC3B,4BAA6B,CAAI,CAAA;AACjC,+BAAgC,CAAI,CAAA;AACpC,uBAAwB,CAAI,CAAA;AAC5B,yBAA0B,CAAI,CAAA;AAC9B,2BAA4B,EAAI,CAAA;AAEhC,6BAA8B,CAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"asn1.d.ts","sourceRoot":"","sources":["../../src/asn1.js"],"names":[],"mappings":"AAIA,sBAAuB,CAAI,CAAA;AAC3B,4BAA6B,CAAI,CAAA;AACjC,+BAAgC,CAAI,CAAA;AACpC,uBAAwB,CAAI,CAAA;AAC5B,yBAA0B,CAAI,CAAA;AAC9B,2BAA4B,EAAI,CAAA;AAEhC,6BAA8B,CAAI,CAAA;AAK3B,wCAFI,MAAM,2BAehB;AAMM,qCAHI,UAAU,CAAC,WAAW,CAAC,WACvB,MAAM;;;EAsBhB;AAOM,4BAJI,UAAU,CAAC,WAAW,CAAC,eACvB,MAAM,YACN,MAAM,UAKhB;AAOM,4BAJI,UAAU,CAAC,WAAW,CAAC,eACvB,MAAM,UACN,MAAM;;;EAmBhB;AAKM,uCAFI,UAAU,CAAC,WAAW,CAAC,2BA8BjC;AAKM,yCAFI,UAAU,CAAC,WAAW,CAAC,2BAqBjC;AAKM,yCAFI,UAAU,CAAC,WAAW,CAAC,EAAE,2BAgCnC;AAMM,oCAHI,UAAU,CAAC,WAAW,CAAC,WACvB,MAAM,2BAMhB;AAKM,iCAFI,UAAU,CAAC,WAAW,CAAC,2BAkCjC;AAOM,qCAJI,UAAU,CAAC,WAAW,CAAC,WACvB,MAAM,UAI2B;AAMrC,oCAHI,UAAU,CAAC,WAAW,CAAC,WACvB,MAAM,UAGkB;AAM5B,+BAHI,UAAU,CAAC,WAAW,CAAC,WACvB,MAAM,UAEyD;AAKnE,qCAFI,UAAU,CAAC,WAAW,CAAC,4CAiBjC;AAMM,+BAHI,UAAU,CAAC,WAAW,CAAC,eACvB,MAAM,2BAgBhB;AAMM,uCAHI,UAAU,CAAC,WAAW,CAAC,WACvB,MAAM,2BAMhB;AAQM,0CAJI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,UACrB,UAAU,CAAC,WAAW,CAAC,eACvB,MAAM,6BAYhB;qBAfY,CAAC,KAAK,EAAC,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,EAAC,MAAM,KAAK,UAAU,CAAC,WAAW,CAAC"}
|
|
@@ -46,9 +46,9 @@ export class ECDSASigner extends DID implements ISigner {
|
|
|
46
46
|
/**
|
|
47
47
|
* Sign a message
|
|
48
48
|
*
|
|
49
|
-
* @param {Uint8Array} message
|
|
49
|
+
* @param {Uint8Array<ArrayBuffer>} message
|
|
50
50
|
*/
|
|
51
|
-
sign(message: Uint8Array): Promise<Uint8Array<
|
|
51
|
+
sign(message: Uint8Array<ArrayBuffer>): Promise<Uint8Array<ArrayBuffer>>;
|
|
52
52
|
/**
|
|
53
53
|
* Export the signer as a CryptoKeyPair
|
|
54
54
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../src/signers/ecdsa.js"],"names":[],"mappings":"AAwCA;;;;;GAKG;AACH,yCAHW,MAAM,GACJ;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;CAAC,CA8B7G;AAED;;;;GAIG;AACH,gDAFgB,OAAO;IAuBrB;;;;OAIG;IACH,uBAFW,MAAM,wBAkBhB;IAED;;;;;OAKG;IACH,sBAHW,OAAO,eAAe,EAAE,YAAY,QACpC,OAAO,eAAe,EAAE,aAAa,wBA2B/C;IAED;;;;;OAKG;IACH,mBAHW,aAAa,QACb,OAAO,eAAe,EAAE,aAAa,wBA2B/C;IAnGD;;;OAGG;IACH,iBAHW,OAAO,eAAe,EAAE,aAAa,WACrC,aAAa,EAQvB;IAZD,kDAAkD;IAClD,eADW,OAAO,aAAa,EAAE,aAAa,CACjC;IAOX,mCAA+C;IA+FjD;;;;OAIG;IACH,cAFW,UAAU,
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../src/signers/ecdsa.js"],"names":[],"mappings":"AAwCA;;;;;GAKG;AACH,yCAHW,MAAM,GACJ;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;CAAC,CA8B7G;AAED;;;;GAIG;AACH,gDAFgB,OAAO;IAuBrB;;;;OAIG;IACH,uBAFW,MAAM,wBAkBhB;IAED;;;;;OAKG;IACH,sBAHW,OAAO,eAAe,EAAE,YAAY,QACpC,OAAO,eAAe,EAAE,aAAa,wBA2B/C;IAED;;;;;OAKG;IACH,mBAHW,aAAa,QACb,OAAO,eAAe,EAAE,aAAa,wBA2B/C;IAnGD;;;OAGG;IACH,iBAHW,OAAO,eAAe,EAAE,aAAa,WACrC,aAAa,EAQvB;IAZD,kDAAkD;IAClD,eADW,OAAO,aAAa,EAAE,aAAa,CACjC;IAOX,mCAA+C;IA+FjD;;;;OAIG;IACH,cAFW,UAAU,CAAC,WAAW,CAAC,oCAUjC;IAED;;;;OAIG;IACH,UAFa,aAAa,CAIzB;;CAKF;sBAnNY,OAAO,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;qBAC5C,OAAO,CAAC,OAAO,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;6BACrE,OAAO,CAAC,OAAO,aAAa,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;oBAPlE,SAAS"}
|
|
@@ -40,9 +40,9 @@ export class EdDSASigner extends DID implements ISigner {
|
|
|
40
40
|
/**
|
|
41
41
|
* Sign a message
|
|
42
42
|
*
|
|
43
|
-
* @param {Uint8Array} message
|
|
43
|
+
* @param {Uint8Array<ArrayBuffer>} message
|
|
44
44
|
*/
|
|
45
|
-
sign(message: Uint8Array): Promise<
|
|
45
|
+
sign(message: Uint8Array<ArrayBuffer>): Promise<Uint8Array<ArrayBuffer>>;
|
|
46
46
|
/**
|
|
47
47
|
* Export the signer as a encoded string
|
|
48
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eddsa.d.ts","sourceRoot":"","sources":["../../../src/signers/eddsa.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eddsa.d.ts","sourceRoot":"","sources":["../../../src/signers/eddsa.js"],"names":[],"mappings":"AAyBA;;;;GAIG;AACH,gDAFgB,OAAO;IAGrB;;;;OAIG;IACH,aAFU,MAAM,CAEI;IAmBpB;;;;OAIG;IACH,wBAFW,UAAU,wBAoBpB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,QACN,OAAO,eAAe,EAAE,aAAa,wBAc/C;IAED;;;;;OAKG;IACH,sBAHW,OAAO,eAAe,EAAE,aAAa,QACrC,OAAO,eAAe,EAAE,aAAa,eAU/C;IAtED;;;OAGG;IACH,iBAHW,OAAO,eAAe,EAAE,aAAa,cACrC,UAAU,EAOpB;IAZD,kDAAkD;IAClD,eADW,OAAO,aAAa,EAAE,aAAa,CACjC;IA0Eb;;;;OAIG;IACH,cAFW,UAAU,CAAC,WAAW,CAAC,GAGd,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAGnD;IAED;;OAEG;IACH,iBAEC;;CAKF;sBA7HY,OAAO,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;oBAP9B,SAAS"}
|
|
@@ -534,9 +534,9 @@ export class EIP191Signer extends DID implements ISigner {
|
|
|
534
534
|
/**
|
|
535
535
|
* Sign a message
|
|
536
536
|
*
|
|
537
|
-
* @param {Uint8Array} message
|
|
537
|
+
* @param {Uint8Array<ArrayBuffer>} message
|
|
538
538
|
*/
|
|
539
|
-
sign(message: Uint8Array): Promise<Uint8Array<
|
|
539
|
+
sign(message: Uint8Array<ArrayBuffer>): Promise<Uint8Array<ArrayBuffer>>;
|
|
540
540
|
/**
|
|
541
541
|
* Export the signer as a encoded string
|
|
542
542
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eip191.d.ts","sourceRoot":"","sources":["../../../src/signers/eip191.js"],"names":[],"mappings":"AAKA;;;GAGG;AAEH;;;;GAIG;AACH,iDAFgB,OAAO;IAuBrB;;;;;;;;;;;;;;;;;OAiBG;IACH,qBAdG;QAA0B,QAAQ,EAA1B,QAAQ;QACgB,OAAO;QACE,OAAO;QACvB,SAAS;KAElC,yBAwBF;IAlDD;;;;;;;OAOG;IACH,sBALW,QAAQ,WACR,KAAK,MAAM,EAAE,YACb,MAAM,GAAG,KAAK,MAAM,EAAE,cACtB,MAAM,EAShB;IAlBD,kDAAkD;IAClD,eADW,OAAO,aAAa,EAAE,aAAa,CACjC;IAaX;;;;sBAW4D,CAAC;;;;;;sBAQzD,CAAC;;;;;;sBAS2B,CAAC;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"eip191.d.ts","sourceRoot":"","sources":["../../../src/signers/eip191.js"],"names":[],"mappings":"AAKA;;;GAGG;AAEH;;;;GAIG;AACH,iDAFgB,OAAO;IAuBrB;;;;;;;;;;;;;;;;;OAiBG;IACH,qBAdG;QAA0B,QAAQ,EAA1B,QAAQ;QACgB,OAAO;QACE,OAAO;QACvB,SAAS;KAElC,yBAwBF;IAlDD;;;;;;;OAOG;IACH,sBALW,QAAQ,WACR,KAAK,MAAM,EAAE,YACb,MAAM,GAAG,KAAK,MAAM,EAAE,cACtB,MAAM,EAShB;IAlBD,kDAAkD;IAClD,eADW,OAAO,aAAa,EAAE,aAAa,CACjC;IAaX;;;;sBAW4D,CAAC;;;;;;sBAQzD,CAAC;;;;;;sBAS2B,CAAC;;;;;;;;;;;;sBAqC2P,CAAC;;;;;;sBAAmP,CAAC;;;;;;;;;;;;;;;;;;sBAA6jE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAAqxP,CAAC;;;;;;sBAAkT,CAAC;;;;;;;;;;;;sBAAovB,CAAC;;;;;;sBAAuQ,CAAC;;;;;;sBAAwW,CAAC;;;;;;;;;;;;;;;;;;;;sCAA+4B,CAAC;6BAA2D,CAAC;sCAAmF,CAAC;;0CAA6F,CAAC;kCAAqD,CAAC;8BAAiD,CAAC;;;;qBAAkM,CAAC;yBAA8B,CAAC;4BAAwB,CAAC;;;;wBAAiI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;sBApE3ib,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAoEkgC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAA0Q,CAAC;;;;;;;;;;sBAA+Z,CAAC;;;;;;;;;;;;;;;sBAAmQ,CAAC;;;4BAAguI,CAAC;;;;;;;;gCAA4M,CAAC;;;;;;;;;;;;;;;;4BAA2f,CAAC;;;;;iCAA8H,CAAC;mCAAoD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAA+R,CAAC;;;0BAAgD,CAAC;4BAA+C,CAAC;6BAAwC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAA68B,CAAC;;;;;;;;MAjEt6Q;IACxB,uBAAsB;IACtB,gCAAsB;IACtB,kBAA0B;IAsC5B;;;;OAIG;IACH,cAFW,UAAU,CAAC,WAAW,CAAC,oCAQjC;IAED;;OAEG;IACH,iBAEC;CAKF;sBAxFY,OAAO,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;uBACrC,OAAO,IAAI,EAAE,QAAQ,CAAC,QAAQ;oBANvB,SAAS;yBAEJ,IAAI"}
|
|
@@ -13,9 +13,9 @@ export class ES256KSigner extends DID implements ISigner {
|
|
|
13
13
|
/**
|
|
14
14
|
* Generate a new signer
|
|
15
15
|
*
|
|
16
|
-
* @param {Uint8Array} [bytes]
|
|
16
|
+
* @param {Uint8Array<ArrayBuffer>} [bytes]
|
|
17
17
|
*/
|
|
18
|
-
static generate(bytes?: Uint8Array): ES256KSigner;
|
|
18
|
+
static generate(bytes?: Uint8Array<ArrayBuffer>): ES256KSigner;
|
|
19
19
|
/**
|
|
20
20
|
* Import a signer from a JWK
|
|
21
21
|
*
|
|
@@ -41,9 +41,9 @@ export class ES256KSigner extends DID implements ISigner {
|
|
|
41
41
|
/**
|
|
42
42
|
* Sign a message
|
|
43
43
|
*
|
|
44
|
-
* @param {Uint8Array} message
|
|
44
|
+
* @param {Uint8Array<ArrayBuffer>} message
|
|
45
45
|
*/
|
|
46
|
-
sign(message: Uint8Array): Promise<
|
|
46
|
+
sign(message: Uint8Array<ArrayBuffer>): Promise<Uint8Array<ArrayBuffer>>;
|
|
47
47
|
/**
|
|
48
48
|
* Export the signer as a encoded string
|
|
49
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es256k.d.ts","sourceRoot":"","sources":["../../../src/signers/es256k.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"es256k.d.ts","sourceRoot":"","sources":["../../../src/signers/es256k.js"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,iDAFgB,OAAO;IAGrB;;;;OAIG;IACH,aAFU,MAAM,CAEI;IAoBpB;;;;OAIG;IACH,wBAFW,UAAU,CAAC,WAAW,CAAC,gBAajC;IAED;;;;;OAKG;IACH,sBAHW,OAAO,eAAe,EAAE,YAAY,QACpC,OAAO,eAAe,EAAE,aAAa,gBAc/C;IAED;;;;;OAKG;IACH,uBAHW,MAAM,QACN,OAAO,eAAe,EAAE,aAAa,gBAc/C;IApED;;;;OAIG;IACH,iBAHW,OAAO,eAAe,EAAE,aAAa,cACrC,UAAU,EAOpB;IAhBD,kDAAkD;IAClD,eADW,OAAO,aAAa,EAAE,aAAa,CACjC;IA2Eb;;;;OAIG;IACH,cAFW,UAAU,CAAC,WAAW,CAAC,oCAKjC;IAED;;OAEG;IACH,iBAEC;;CAKF;sBAzHY,OAAO,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;oBAL9B,SAAS"}
|
|
@@ -33,9 +33,9 @@ export class RSASigner extends DID implements ISigner {
|
|
|
33
33
|
/**
|
|
34
34
|
* Sign a message
|
|
35
35
|
*
|
|
36
|
-
* @param {Uint8Array} message
|
|
36
|
+
* @param {Uint8Array<ArrayBuffer>} message
|
|
37
37
|
*/
|
|
38
|
-
sign(message: Uint8Array): Promise<Uint8Array<
|
|
38
|
+
sign(message: Uint8Array<ArrayBuffer>): Promise<Uint8Array<ArrayBuffer>>;
|
|
39
39
|
/**
|
|
40
40
|
* Export the signer as a crypto key pair
|
|
41
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../../src/signers/rsa.js"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,8CAFgB,OAAO;IAIrB,oBAAoB;IAmBpB;;OAEG;IACH,sCAqBC;IAED;;;;;OAKG;IACH,sBAHW,OAAO,eAAe,EAAE,aAAa,QACrC,OAAO,eAAe,EAAE,aAAa,sBA+B/C;IAED;;;;;OAKG;IACH,uBAHW,aAAa,QACb,OAAO,eAAe,EAAE,aAAa,sBAc/C;IA5FD;;;OAGG;IACH,iBAHW,OAAO,eAAe,EAAE,aAAa,WACrC,aAAa,EAOvB;IAZD,kDAAkD;IAClD,eADW,OAAO,aAAa,EAAE,aAAa,CACjC;IAgGb;;;;OAIG;IACH,cAFW,UAAU,
|
|
1
|
+
{"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../../src/signers/rsa.js"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,8CAFgB,OAAO;IAIrB,oBAAoB;IAmBpB;;OAEG;IACH,sCAqBC;IAED;;;;;OAKG;IACH,sBAHW,OAAO,eAAe,EAAE,aAAa,QACrC,OAAO,eAAe,EAAE,aAAa,sBA+B/C;IAED;;;;;OAKG;IACH,uBAHW,aAAa,QACb,OAAO,eAAe,EAAE,aAAa,sBAc/C;IA5FD;;;OAGG;IACH,iBAHW,OAAO,eAAe,EAAE,aAAa,WACrC,aAAa,EAOvB;IAZD,kDAAkD;IAClD,eADW,OAAO,aAAa,EAAE,aAAa,CACjC;IAgGb;;;;OAIG;IACH,cAFW,UAAU,CAAC,WAAW,CAAC,oCAUjC;IAED;;OAEG;IACH,wBAEC;;CAKF;sBAnJY,OAAO,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;oBANrC,SAAS"}
|
package/dist/src/spki.d.ts
CHANGED
|
@@ -3,12 +3,12 @@ export namespace spki {
|
|
|
3
3
|
export { decode };
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
|
-
* @param {Uint8Array} key
|
|
6
|
+
* @param {Uint8Array<ArrayBuffer>} key
|
|
7
7
|
*/
|
|
8
|
-
declare function encode(key: Uint8Array): Uint8Array<ArrayBuffer>;
|
|
8
|
+
declare function encode(key: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBuffer>;
|
|
9
9
|
/**
|
|
10
|
-
* @param {Uint8Array} info
|
|
10
|
+
* @param {Uint8Array<ArrayBuffer>} info
|
|
11
11
|
*/
|
|
12
|
-
declare function decode(info: Uint8Array): Uint8Array<
|
|
12
|
+
declare function decode(info: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBuffer>;
|
|
13
13
|
export {};
|
|
14
14
|
//# sourceMappingURL=spki.d.ts.map
|
package/dist/src/spki.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spki.d.ts","sourceRoot":"","sources":["../../src/spki.js"],"names":[],"mappings":";;;;AAgBA;;GAEG;AACH,6BAFW,UAAU,
|
|
1
|
+
{"version":3,"file":"spki.d.ts","sourceRoot":"","sources":["../../src/spki.js"],"names":[],"mappings":";;;;AAgBA;;GAEG;AACH,6BAFW,UAAU,CAAC,WAAW,CAAC,2BAIjC;AAED;;GAEG;AACH,8BAFW,UAAU,CAAC,WAAW,CAAC,2BAUjC"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { VerifiableDID } from 'iso-did/types';
|
|
2
2
|
export type SignatureType = 'Ed25519' | 'ES256' | 'ES384' | 'ES512' | 'ES256K' | 'RS256' | 'EIP191';
|
|
3
3
|
export interface Sign {
|
|
4
|
-
sign: (message: Uint8Array) => Promise<Uint8Array
|
|
4
|
+
sign: (message: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>;
|
|
5
5
|
}
|
|
6
6
|
export interface ISigner<Export extends CryptoKeyPair | string = string> extends VerifiableDID, Sign {
|
|
7
7
|
export: () => Export;
|
|
8
8
|
signatureType: SignatureType;
|
|
9
9
|
}
|
|
10
10
|
export interface VerifyInput {
|
|
11
|
-
signature: Uint8Array
|
|
12
|
-
message: Uint8Array
|
|
11
|
+
signature: Uint8Array<ArrayBuffer>;
|
|
12
|
+
message: Uint8Array<ArrayBuffer>;
|
|
13
13
|
did: VerifiableDID;
|
|
14
14
|
}
|
|
15
15
|
export type Verify = (input: VerifyInput) => Promise<boolean>;
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAA;AAEZ,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAA;AAEZ,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;CAC7E;AAED,MAAM,WAAW,OAAO,CAAC,MAAM,SAAS,aAAa,GAAG,MAAM,GAAG,MAAM,CACrE,SAAQ,aAAa,EACnB,IAAI;IACN,MAAM,EAAE,MAAM,MAAM,CAAA;IACpB,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAClC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAChC,GAAG,EAAE,aAAa,CAAA;CACnB;AACD,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAE7D,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,aAAa,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEjE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5E,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD;;OAEG;IACH,IAAI,EAAE,aAAa,CAAA;CACpB;AACD,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAE7E,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACzD;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;CACpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../src/verifiers/ecdsa.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../src/verifiers/ecdsa.js"],"names":[],"mappings":"AAyDA;;;;;GAKG;AACH,6BAJW,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,+BACtC,OAAO,aAAa,EAAE,WAAW,oBAK3C;AAhBD,qFAAqF;AACrF,uBADW,OAAO,aAAa,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,CAMhF"}
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
* Convert a 0x signature to a Uint8Array
|
|
3
3
|
*
|
|
4
4
|
* @param {`0x${string}`} signature
|
|
5
|
-
* @returns {Uint8Array}
|
|
6
5
|
*/
|
|
7
|
-
export function hexToBytes(signature: `0x${string}`): Uint8Array
|
|
6
|
+
export function hexToBytes(signature: `0x${string}`): Uint8Array<ArrayBuffer>;
|
|
8
7
|
/**
|
|
9
|
-
* @param {
|
|
8
|
+
* @param {Uint8Array<ArrayBuffer>} data
|
|
10
9
|
*/
|
|
11
|
-
export function getSignPayload(data: Uint8Array): Uint8Array<ArrayBufferLike>;
|
|
10
|
+
export function getSignPayload(data: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBufferLike>;
|
|
12
11
|
export function verify(input: import("../types.js").VerifyInput): Promise<boolean>;
|
|
13
12
|
/** @type {import('../types').Verifier<'EIP191'>} */
|
|
14
13
|
export const verifier: import("../types").Verifier<"EIP191">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eip191.d.ts","sourceRoot":"","sources":["../../../src/verifiers/eip191.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eip191.d.ts","sourceRoot":"","sources":["../../../src/verifiers/eip191.js"],"names":[],"mappings":"AASA;;;;GAIG;AACH,sCAFW,KAAK,MAAM,EAAE,2BAIvB;AAED;;GAEG;AACH,qCAFW,UAAU,CAAC,WAAW,CAAC,+BAKjC;;AAkBD,oDAAoD;AACpD,uBADW,OAAO,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAG/C"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iso-signatures",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0",
|
|
5
5
|
"description": "Signatures tooling.",
|
|
6
6
|
"author": "Hugo Dias <hugomrdias@gmail.com> (hugodias.me)",
|
|
7
7
|
"license": "MIT",
|
|
@@ -81,23 +81,23 @@
|
|
|
81
81
|
"dist/src/**/*.d.ts.map"
|
|
82
82
|
],
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"@noble/ed25519": "^
|
|
85
|
-
"@noble/hashes": "^
|
|
86
|
-
"@noble/secp256k1": "^
|
|
87
|
-
"ox": "^0.
|
|
88
|
-
"iso-base": "^4.
|
|
89
|
-
"iso-did": "^2.
|
|
84
|
+
"@noble/ed25519": "^3.0.0",
|
|
85
|
+
"@noble/hashes": "^2.0.0",
|
|
86
|
+
"@noble/secp256k1": "^3.0.0",
|
|
87
|
+
"ox": "^0.9.1",
|
|
88
|
+
"iso-base": "^4.2.0",
|
|
89
|
+
"iso-did": "^2.1.0"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
92
|
"@types/assert": "^1.5.11",
|
|
93
93
|
"@types/mocha": "^10.0.10",
|
|
94
|
-
"@types/node": "^24.
|
|
94
|
+
"@types/node": "^24.3.0",
|
|
95
95
|
"assert": "^2.1.0",
|
|
96
96
|
"mocha": "^11.7.1",
|
|
97
|
-
"playwright-test": "^14.1.
|
|
97
|
+
"playwright-test": "^14.1.12",
|
|
98
98
|
"type-fest": "^4.34.1",
|
|
99
|
-
"typescript": "5.
|
|
100
|
-
"viem": "^2.
|
|
99
|
+
"typescript": "5.9.2",
|
|
100
|
+
"viem": "^2.35.1"
|
|
101
101
|
},
|
|
102
102
|
"publishConfig": {
|
|
103
103
|
"provenance": true
|
package/src/asn1.js
CHANGED
|
@@ -13,7 +13,6 @@ export const UNUSED_BIT_PAD = 0x00
|
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @param {number} length
|
|
16
|
-
* @returns {Uint8Array}
|
|
17
16
|
*/
|
|
18
17
|
export const encodeDERLength = (length) => {
|
|
19
18
|
if (length <= 127) {
|
|
@@ -31,9 +30,8 @@ export const encodeDERLength = (length) => {
|
|
|
31
30
|
}
|
|
32
31
|
|
|
33
32
|
/**
|
|
34
|
-
* @param {Uint8Array} bytes
|
|
33
|
+
* @param {Uint8Array<ArrayBuffer>} bytes
|
|
35
34
|
* @param {number} offset
|
|
36
|
-
* @returns {{number: number, consumed: number}}
|
|
37
35
|
*/
|
|
38
36
|
export const readDERLength = (bytes, offset = 0) => {
|
|
39
37
|
if ((bytes[offset] & 0x80) === 0) {
|
|
@@ -58,10 +56,9 @@ export const readDERLength = (bytes, offset = 0) => {
|
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
/**
|
|
61
|
-
* @param {Uint8Array} input
|
|
59
|
+
* @param {Uint8Array<ArrayBuffer>} input
|
|
62
60
|
* @param {number} expectedTag
|
|
63
61
|
* @param {number} position
|
|
64
|
-
* @returns {number}
|
|
65
62
|
*/
|
|
66
63
|
export const skip = (input, expectedTag, position) => {
|
|
67
64
|
const parsed = into(input, expectedTag, position)
|
|
@@ -69,10 +66,9 @@ export const skip = (input, expectedTag, position) => {
|
|
|
69
66
|
}
|
|
70
67
|
|
|
71
68
|
/**
|
|
72
|
-
* @param {Uint8Array} input
|
|
69
|
+
* @param {Uint8Array<ArrayBuffer>} input
|
|
73
70
|
* @param {number} expectedTag
|
|
74
71
|
* @param {number} offset
|
|
75
|
-
* @returns {{ position: number, length: number }}
|
|
76
72
|
*/
|
|
77
73
|
export const into = (input, expectedTag, offset) => {
|
|
78
74
|
const actualTag = input[offset]
|
|
@@ -94,7 +90,7 @@ export const into = (input, expectedTag, offset) => {
|
|
|
94
90
|
}
|
|
95
91
|
|
|
96
92
|
/**
|
|
97
|
-
* @param {Uint8Array} input
|
|
93
|
+
* @param {Uint8Array<ArrayBuffer>} input
|
|
98
94
|
*/
|
|
99
95
|
export const encodeBitString = (input) => {
|
|
100
96
|
// encode input length + 1 for unused bit pad
|
|
@@ -127,7 +123,7 @@ export const encodeBitString = (input) => {
|
|
|
127
123
|
}
|
|
128
124
|
|
|
129
125
|
/**
|
|
130
|
-
* @param {Uint8Array} input
|
|
126
|
+
* @param {Uint8Array<ArrayBuffer>} input
|
|
131
127
|
*/
|
|
132
128
|
export const encodeOctetString = (input) => {
|
|
133
129
|
// encode input length
|
|
@@ -151,7 +147,7 @@ export const encodeOctetString = (input) => {
|
|
|
151
147
|
}
|
|
152
148
|
|
|
153
149
|
/**
|
|
154
|
-
* @param {Uint8Array[]} sequence
|
|
150
|
+
* @param {Uint8Array<ArrayBuffer>[]} sequence
|
|
155
151
|
*/
|
|
156
152
|
export const encodeSequence = (sequence) => {
|
|
157
153
|
// calculate bytelength for all the parts
|
|
@@ -186,7 +182,7 @@ export const encodeSequence = (sequence) => {
|
|
|
186
182
|
}
|
|
187
183
|
|
|
188
184
|
/**
|
|
189
|
-
* @param {Uint8Array} bytes
|
|
185
|
+
* @param {Uint8Array<ArrayBuffer>} bytes
|
|
190
186
|
* @param {number} offset
|
|
191
187
|
*/
|
|
192
188
|
export const readSequence = (bytes, offset = 0) => {
|
|
@@ -196,7 +192,7 @@ export const readSequence = (bytes, offset = 0) => {
|
|
|
196
192
|
}
|
|
197
193
|
|
|
198
194
|
/**
|
|
199
|
-
* @param {Uint8Array} input
|
|
195
|
+
* @param {Uint8Array<ArrayBuffer>} input
|
|
200
196
|
*/
|
|
201
197
|
export const encodeInt = (input) => {
|
|
202
198
|
const extra = input.byteLength === 0 || input[0] & 0x80 ? 1 : 0
|
|
@@ -233,33 +229,28 @@ export const encodeInt = (input) => {
|
|
|
233
229
|
}
|
|
234
230
|
|
|
235
231
|
/**
|
|
236
|
-
* @param {Uint8Array} bytes
|
|
232
|
+
* @param {Uint8Array<ArrayBuffer>} bytes
|
|
237
233
|
* @param {number} offset
|
|
238
|
-
* @returns {number}
|
|
239
234
|
*/
|
|
240
235
|
|
|
241
236
|
export const enterSequence = (bytes, offset = 0) =>
|
|
242
237
|
into(bytes, SEQUENCE_TAG, offset).position
|
|
243
238
|
|
|
244
239
|
/**
|
|
245
|
-
* @param {Uint8Array} bytes
|
|
240
|
+
* @param {Uint8Array<ArrayBuffer>} bytes
|
|
246
241
|
* @param {number} offset
|
|
247
|
-
* @returns {number}
|
|
248
242
|
*/
|
|
249
243
|
export const skipSequence = (bytes, offset = 0) =>
|
|
250
244
|
skip(bytes, SEQUENCE_TAG, offset)
|
|
251
245
|
|
|
252
246
|
/**
|
|
253
|
-
* @param {Uint8Array} bytes
|
|
247
|
+
* @param {Uint8Array<ArrayBuffer>} bytes
|
|
254
248
|
* @param {number} offset
|
|
255
|
-
* @returns {number}
|
|
256
249
|
*/
|
|
257
250
|
export const skipInt = (bytes, offset = 0) => skip(bytes, INT_TAG, offset)
|
|
258
251
|
|
|
259
252
|
/**
|
|
260
|
-
* @param {Uint8Array} bytes
|
|
261
|
-
* @param {number} offset
|
|
262
|
-
* @returns {Uint8Array}
|
|
253
|
+
* @param {Uint8Array<ArrayBuffer>} bytes
|
|
263
254
|
*/
|
|
264
255
|
export const readBitString = (bytes, offset = 0) => {
|
|
265
256
|
const { position, length } = into(bytes, BITSTRING_TAG, offset)
|
|
@@ -279,9 +270,8 @@ export const readBitString = (bytes, offset = 0) => {
|
|
|
279
270
|
}
|
|
280
271
|
|
|
281
272
|
/**
|
|
282
|
-
* @param {Uint8Array} bytes
|
|
273
|
+
* @param {Uint8Array<ArrayBuffer>} bytes
|
|
283
274
|
* @param {number} byteOffset
|
|
284
|
-
* @returns {Uint8Array}
|
|
285
275
|
*/
|
|
286
276
|
export const readInt = (bytes, byteOffset = 0) => {
|
|
287
277
|
const { position, length } = into(bytes, INT_TAG, byteOffset)
|
|
@@ -300,9 +290,8 @@ export const readInt = (bytes, byteOffset = 0) => {
|
|
|
300
290
|
}
|
|
301
291
|
|
|
302
292
|
/**
|
|
303
|
-
* @param {Uint8Array} bytes
|
|
293
|
+
* @param {Uint8Array<ArrayBuffer>} bytes
|
|
304
294
|
* @param {number} offset
|
|
305
|
-
* @returns {Uint8Array}
|
|
306
295
|
*/
|
|
307
296
|
export const readOctetString = (bytes, offset = 0) => {
|
|
308
297
|
const { position, length } = into(bytes, OCTET_STRING_TAG, offset)
|
|
@@ -311,9 +300,9 @@ export const readOctetString = (bytes, offset = 0) => {
|
|
|
311
300
|
}
|
|
312
301
|
|
|
313
302
|
/**
|
|
314
|
-
* @typedef {(bytes:Uint8Array
|
|
303
|
+
* @typedef {(bytes:Uint8Array<ArrayBuffer>, offset:number) => Uint8Array<ArrayBuffer>} Reader
|
|
315
304
|
* @param {[Reader, ...Reader[]]} readers
|
|
316
|
-
* @param {Uint8Array} source
|
|
305
|
+
* @param {Uint8Array<ArrayBuffer>} source
|
|
317
306
|
* @param {number} byteOffset
|
|
318
307
|
*/
|
|
319
308
|
export const readSequenceWith = (readers, source, byteOffset = 0) => {
|
package/src/signers/ecdsa.js
CHANGED
package/src/signers/eddsa.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable unicorn/numeric-separators-style */
|
|
2
|
-
import { getPublicKeyAsync,
|
|
2
|
+
import { getPublicKeyAsync, keygenAsync, signAsync } from '@noble/ed25519'
|
|
3
3
|
import { webcrypto } from 'iso-base/crypto'
|
|
4
4
|
import { base64pad, base64url } from 'iso-base/rfc4648'
|
|
5
5
|
import { tag, untag } from 'iso-base/varint'
|
|
@@ -7,7 +7,6 @@ import { DID } from 'iso-did'
|
|
|
7
7
|
import { DIDKey } from 'iso-did/key'
|
|
8
8
|
import { didKeyOrVerifiableDID } from '../utils.js'
|
|
9
9
|
|
|
10
|
-
// @ts-ignore
|
|
11
10
|
if (!globalThis.crypto) globalThis.crypto = webcrypto
|
|
12
11
|
|
|
13
12
|
/**
|
|
@@ -60,10 +59,21 @@ export class EdDSASigner extends DID {
|
|
|
60
59
|
* @param {Uint8Array} [bytes]
|
|
61
60
|
*/
|
|
62
61
|
static async generate(bytes) {
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
let privateKey
|
|
63
|
+
let publicKey
|
|
64
|
+
if (bytes) {
|
|
65
|
+
privateKey = bytes
|
|
66
|
+
publicKey = await getPublicKeyAsync(privateKey)
|
|
67
|
+
} else {
|
|
68
|
+
const key = await keygenAsync()
|
|
69
|
+
privateKey = key.secretKey
|
|
70
|
+
publicKey = key.publicKey
|
|
71
|
+
}
|
|
65
72
|
return new EdDSASigner(
|
|
66
|
-
DIDKey.fromPublicKey(
|
|
73
|
+
DIDKey.fromPublicKey(
|
|
74
|
+
'Ed25519',
|
|
75
|
+
/** @type {Uint8Array<ArrayBuffer>} */ (publicKey)
|
|
76
|
+
),
|
|
67
77
|
privateKey
|
|
68
78
|
)
|
|
69
79
|
}
|
|
@@ -79,7 +89,11 @@ export class EdDSASigner extends DID {
|
|
|
79
89
|
const publicKey = await getPublicKeyAsync(privateKey)
|
|
80
90
|
|
|
81
91
|
return new EdDSASigner(
|
|
82
|
-
didKeyOrVerifiableDID(
|
|
92
|
+
didKeyOrVerifiableDID(
|
|
93
|
+
'Ed25519',
|
|
94
|
+
/** @type {Uint8Array<ArrayBuffer>} */ (publicKey),
|
|
95
|
+
did
|
|
96
|
+
),
|
|
83
97
|
privateKey
|
|
84
98
|
)
|
|
85
99
|
}
|
|
@@ -103,10 +117,12 @@ export class EdDSASigner extends DID {
|
|
|
103
117
|
/**
|
|
104
118
|
* Sign a message
|
|
105
119
|
*
|
|
106
|
-
* @param {Uint8Array} message
|
|
120
|
+
* @param {Uint8Array<ArrayBuffer>} message
|
|
107
121
|
*/
|
|
108
122
|
sign(message) {
|
|
109
|
-
return
|
|
123
|
+
return /** @type {Promise<Uint8Array<ArrayBuffer>>} */ (
|
|
124
|
+
signAsync(message, this.#privateKey)
|
|
125
|
+
)
|
|
110
126
|
}
|
|
111
127
|
|
|
112
128
|
/**
|
package/src/signers/eip191.js
CHANGED
package/src/signers/es256k.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { getPublicKey, signAsync, utils } from '@noble/secp256k1'
|
|
2
2
|
import { base64pad, base64url } from 'iso-base/rfc4648'
|
|
3
|
-
import { u8 } from 'iso-base/utils'
|
|
4
3
|
import { tag, untag } from 'iso-base/varint'
|
|
5
4
|
import { DID } from 'iso-did'
|
|
6
5
|
import { DIDKey } from 'iso-did/key'
|
|
@@ -53,14 +52,17 @@ export class ES256KSigner extends DID {
|
|
|
53
52
|
/**
|
|
54
53
|
* Generate a new signer
|
|
55
54
|
*
|
|
56
|
-
* @param {Uint8Array} [bytes]
|
|
55
|
+
* @param {Uint8Array<ArrayBuffer>} [bytes]
|
|
57
56
|
*/
|
|
58
57
|
static generate(bytes) {
|
|
59
|
-
const privateKey = bytes || utils.
|
|
58
|
+
const privateKey = bytes || utils.randomSecretKey()
|
|
60
59
|
const publicKey = getPublicKey(privateKey)
|
|
61
60
|
|
|
62
61
|
return new ES256KSigner(
|
|
63
|
-
DIDKey.fromPublicKey(
|
|
62
|
+
DIDKey.fromPublicKey(
|
|
63
|
+
'secp256k1',
|
|
64
|
+
/** @type {Uint8Array<ArrayBuffer>} */ (publicKey)
|
|
65
|
+
),
|
|
64
66
|
privateKey
|
|
65
67
|
)
|
|
66
68
|
}
|
|
@@ -76,7 +78,11 @@ export class ES256KSigner extends DID {
|
|
|
76
78
|
const publicKey = getPublicKey(privateKey)
|
|
77
79
|
|
|
78
80
|
return new ES256KSigner(
|
|
79
|
-
didKeyOrVerifiableDID(
|
|
81
|
+
didKeyOrVerifiableDID(
|
|
82
|
+
'secp256k1',
|
|
83
|
+
/** @type {Uint8Array<ArrayBuffer>} */ (publicKey),
|
|
84
|
+
did
|
|
85
|
+
),
|
|
80
86
|
privateKey
|
|
81
87
|
)
|
|
82
88
|
}
|
|
@@ -92,7 +98,11 @@ export class ES256KSigner extends DID {
|
|
|
92
98
|
const publicKey = getPublicKey(privateKey)
|
|
93
99
|
|
|
94
100
|
return new ES256KSigner(
|
|
95
|
-
didKeyOrVerifiableDID(
|
|
101
|
+
didKeyOrVerifiableDID(
|
|
102
|
+
'secp256k1',
|
|
103
|
+
/** @type {Uint8Array<ArrayBuffer>} */ (publicKey),
|
|
104
|
+
did
|
|
105
|
+
),
|
|
96
106
|
privateKey
|
|
97
107
|
)
|
|
98
108
|
}
|
|
@@ -100,12 +110,11 @@ export class ES256KSigner extends DID {
|
|
|
100
110
|
/**
|
|
101
111
|
* Sign a message
|
|
102
112
|
*
|
|
103
|
-
* @param {Uint8Array} message
|
|
113
|
+
* @param {Uint8Array<ArrayBuffer>} message
|
|
104
114
|
*/
|
|
105
115
|
async sign(message) {
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
return sig.toCompactRawBytes()
|
|
116
|
+
const sig = await signAsync(message, this.#privateKey)
|
|
117
|
+
return /** @type {Uint8Array<ArrayBuffer>} */ (sig)
|
|
109
118
|
}
|
|
110
119
|
|
|
111
120
|
/**
|
package/src/signers/rsa.js
CHANGED
package/src/spki.js
CHANGED
|
@@ -15,14 +15,14 @@ const SPKI_PARAMS_ENCODED = new Uint8Array([
|
|
|
15
15
|
])
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* @param {Uint8Array} key
|
|
18
|
+
* @param {Uint8Array<ArrayBuffer>} key
|
|
19
19
|
*/
|
|
20
20
|
function encode(key) {
|
|
21
21
|
return encodeSequence([SPKI_PARAMS_ENCODED, encodeBitString(key)])
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* @param {Uint8Array} info
|
|
25
|
+
* @param {Uint8Array<ArrayBuffer>} info
|
|
26
26
|
*/
|
|
27
27
|
function decode(info) {
|
|
28
28
|
// go into the top-level SEQUENCE
|
package/src/types.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type SignatureType =
|
|
|
10
10
|
| 'EIP191'
|
|
11
11
|
|
|
12
12
|
export interface Sign {
|
|
13
|
-
sign: (message: Uint8Array) => Promise<Uint8Array
|
|
13
|
+
sign: (message: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export interface ISigner<Export extends CryptoKeyPair | string = string>
|
|
@@ -21,8 +21,8 @@ export interface ISigner<Export extends CryptoKeyPair | string = string>
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export interface VerifyInput {
|
|
24
|
-
signature: Uint8Array
|
|
25
|
-
message: Uint8Array
|
|
24
|
+
signature: Uint8Array<ArrayBuffer>
|
|
25
|
+
message: Uint8Array<ArrayBuffer>
|
|
26
26
|
did: VerifiableDID
|
|
27
27
|
}
|
|
28
28
|
export type Verify = (input: VerifyInput) => Promise<boolean>
|
package/src/verifiers/ecdsa.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { verifyAsync as secpVerify } from '@noble/secp256k1'
|
|
2
2
|
import { webcrypto } from 'iso-base/crypto'
|
|
3
3
|
import { decompress, isCompressed } from 'iso-base/ec-compression'
|
|
4
|
-
import { u8 } from 'iso-base/utils'
|
|
5
4
|
import { createEcdsaParams } from '../signers/ecdsa.js'
|
|
6
5
|
|
|
7
6
|
/**
|
|
@@ -45,9 +44,7 @@ async function es256kVerify({ signature, message, did }) {
|
|
|
45
44
|
throw new Error('Invalid signature length')
|
|
46
45
|
}
|
|
47
46
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return secpVerify(signature, u8(hash), did.verifiableDid.publicKey)
|
|
47
|
+
return await secpVerify(signature, message, did.verifiableDid.publicKey)
|
|
51
48
|
}
|
|
52
49
|
|
|
53
50
|
/** @type {import('../types.js').Verifier<'ES256' | 'ES384' | 'ES512' | 'ES256K'>} */
|
package/src/verifiers/eip191.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { keccak_256 } from '@noble/hashes/sha3'
|
|
2
|
-
import { Signature } from '@noble/secp256k1'
|
|
2
|
+
import { recoverPublicKeyAsync, Signature, verifyAsync } from '@noble/secp256k1'
|
|
3
3
|
import { hex } from 'iso-base/rfc4648'
|
|
4
4
|
import { utf8 } from 'iso-base/utf8'
|
|
5
5
|
import { concat } from 'iso-base/utils'
|
|
6
|
-
import { DIDPkh } from 'iso-did/pkh'
|
|
7
|
-
import * as Address from 'ox/Address'
|
|
8
|
-
import * as PublicKey from 'ox/PublicKey'
|
|
9
6
|
import * as SignatureOx from 'ox/Signature'
|
|
10
7
|
|
|
11
8
|
const PREFIX = '\x19Ethereum Signed Message:\n'
|
|
@@ -14,14 +11,13 @@ const PREFIX = '\x19Ethereum Signed Message:\n'
|
|
|
14
11
|
* Convert a 0x signature to a Uint8Array
|
|
15
12
|
*
|
|
16
13
|
* @param {`0x${string}`} signature
|
|
17
|
-
* @returns {Uint8Array}
|
|
18
14
|
*/
|
|
19
15
|
export function hexToBytes(signature) {
|
|
20
16
|
return hex.decode(signature.slice(2))
|
|
21
17
|
}
|
|
22
18
|
|
|
23
19
|
/**
|
|
24
|
-
* @param {
|
|
20
|
+
* @param {Uint8Array<ArrayBuffer>} data
|
|
25
21
|
*/
|
|
26
22
|
export function getSignPayload(data) {
|
|
27
23
|
const prefixBytes = utf8.decode(`${PREFIX}${data.length}`)
|
|
@@ -29,16 +25,19 @@ export function getSignPayload(data) {
|
|
|
29
25
|
}
|
|
30
26
|
|
|
31
27
|
/** @type {import('../types.js').Verify} */
|
|
32
|
-
export function verify({ signature, message
|
|
33
|
-
const
|
|
34
|
-
const
|
|
28
|
+
export async function verify({ signature, message }) {
|
|
29
|
+
const msgHash = getSignPayload(message)
|
|
30
|
+
const sigRecovered = Signature.fromBytes(signature.slice(0, 64))
|
|
35
31
|
.addRecoveryBit(SignatureOx.vToYParity(signature[64]))
|
|
36
|
-
.
|
|
37
|
-
|
|
32
|
+
.toBytes('recovered')
|
|
33
|
+
const pubKey = await recoverPublicKeyAsync(sigRecovered, msgHash, {
|
|
34
|
+
prehash: false,
|
|
35
|
+
})
|
|
38
36
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
return await verifyAsync(sigRecovered, msgHash, pubKey, {
|
|
38
|
+
prehash: false,
|
|
39
|
+
format: 'recovered',
|
|
40
|
+
})
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
/** @type {import('../types').Verifier<'EIP191'>} */
|