@matter/general 0.16.0-alpha.0-20251111-11cc8c3bd → 0.16.0-alpha.0-20251112-dba1973d5
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/cjs/codec/DerCodec.d.ts +6 -1
- package/dist/cjs/codec/DerCodec.d.ts.map +1 -1
- package/dist/cjs/codec/DerCodec.js +13 -2
- package/dist/cjs/codec/DerCodec.js.map +1 -1
- package/dist/cjs/crypto/Crypto.d.ts +3 -3
- package/dist/cjs/crypto/Crypto.d.ts.map +1 -1
- package/dist/cjs/crypto/Crypto.js.map +1 -1
- package/dist/cjs/crypto/CryptoError.d.ts +5 -0
- package/dist/cjs/crypto/CryptoError.d.ts.map +1 -1
- package/dist/cjs/crypto/CryptoError.js +4 -1
- package/dist/cjs/crypto/CryptoError.js.map +1 -1
- package/dist/cjs/crypto/EcdsaSignature.d.ts +43 -0
- package/dist/cjs/crypto/EcdsaSignature.d.ts.map +1 -0
- package/dist/cjs/crypto/EcdsaSignature.js +74 -0
- package/dist/cjs/crypto/EcdsaSignature.js.map +6 -0
- package/dist/cjs/crypto/NodeJsStyleCrypto.d.ts +4 -3
- package/dist/cjs/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/NodeJsStyleCrypto.js +14 -11
- package/dist/cjs/crypto/NodeJsStyleCrypto.js.map +1 -1
- package/dist/cjs/crypto/StandardCrypto.d.ts +4 -3
- package/dist/cjs/crypto/StandardCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/StandardCrypto.js +5 -21
- package/dist/cjs/crypto/StandardCrypto.js.map +1 -1
- package/dist/cjs/crypto/index.d.ts +1 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -1
- package/dist/cjs/crypto/index.js +1 -0
- package/dist/cjs/crypto/index.js.map +1 -1
- package/dist/esm/codec/DerCodec.d.ts +6 -1
- package/dist/esm/codec/DerCodec.d.ts.map +1 -1
- package/dist/esm/codec/DerCodec.js +13 -2
- package/dist/esm/codec/DerCodec.js.map +1 -1
- package/dist/esm/crypto/Crypto.d.ts +3 -3
- package/dist/esm/crypto/Crypto.d.ts.map +1 -1
- package/dist/esm/crypto/Crypto.js.map +1 -1
- package/dist/esm/crypto/CryptoError.d.ts +5 -0
- package/dist/esm/crypto/CryptoError.d.ts.map +1 -1
- package/dist/esm/crypto/CryptoError.js +4 -1
- package/dist/esm/crypto/CryptoError.js.map +1 -1
- package/dist/esm/crypto/EcdsaSignature.d.ts +43 -0
- package/dist/esm/crypto/EcdsaSignature.d.ts.map +1 -0
- package/dist/esm/crypto/EcdsaSignature.js +54 -0
- package/dist/esm/crypto/EcdsaSignature.js.map +6 -0
- package/dist/esm/crypto/NodeJsStyleCrypto.d.ts +4 -3
- package/dist/esm/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/NodeJsStyleCrypto.js +14 -11
- package/dist/esm/crypto/NodeJsStyleCrypto.js.map +1 -1
- package/dist/esm/crypto/StandardCrypto.d.ts +4 -3
- package/dist/esm/crypto/StandardCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/StandardCrypto.js +5 -21
- package/dist/esm/crypto/StandardCrypto.js.map +1 -1
- package/dist/esm/crypto/index.d.ts +1 -0
- package/dist/esm/crypto/index.d.ts.map +1 -1
- package/dist/esm/crypto/index.js +1 -0
- package/dist/esm/crypto/index.js.map +1 -1
- package/package.json +2 -2
- package/src/codec/DerCodec.ts +19 -3
- package/src/crypto/Crypto.ts +3 -12
- package/src/crypto/CryptoError.ts +5 -0
- package/src/crypto/EcdsaSignature.ts +83 -0
- package/src/crypto/NodeJsStyleCrypto.ts +14 -12
- package/src/crypto/StandardCrypto.ts +6 -28
- package/src/crypto/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DerCodec.d.ts","sourceRoot":"","sources":["../../../src/codec/DerCodec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKzC,oBAAY,MAAM;IACd,QAAQ,cAAc;IACtB,KAAK,SAAS;IACd,KAAK,WAAW;IAChB,QAAQ,cAAc;IACtB,WAAW,aAAa;IACxB,YAAY,UAAU;IACtB,OAAO,SAAS;CACnB;AAED,qBAAa,QAAS,SAAQ,mBAAmB;CAAG;AAEpD,oBAAY,OAAO;IACf,OAAO,IAAO;IACd,OAAO,IAAO;IACd,SAAS,IAAO;IAChB,WAAW,IAAO;IAClB,IAAI,IAAO;IACX,gBAAgB,IAAO;IACvB,UAAU,KAAO;IACjB,QAAQ,KAAO;IACf,GAAG,KAAO;IACV,eAAe,KAAO;IACtB,SAAS,KAAO;IAChB,SAAS,KAAO;IAChB,OAAO,KAAO;IACd,eAAe,KAAO;CACzB;AAUD,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM;UACO,MAAM;;CAEpD,CAAC;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,EAAE,UAAS,GAAQ,QAG3D,CAAC;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,KAAK,EAAE,gBAAW;UACZ,MAAM;;;CAG7C,CAAC;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,QAAQ,GAAG;;;CAGtD,CAAC;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,EAAE,OAAO,KAAK;;;CAG5D,CAAC;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,OAAO,EAAE,OAAO,GAAG;;;CAGxD,CAAC;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK;;CAEnC,CAAC;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,KAAK;;;
|
|
1
|
+
{"version":3,"file":"DerCodec.d.ts","sourceRoot":"","sources":["../../../src/codec/DerCodec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKzC,oBAAY,MAAM;IACd,QAAQ,cAAc;IACtB,KAAK,SAAS;IACd,KAAK,WAAW;IAChB,QAAQ,cAAc;IACtB,WAAW,aAAa;IACxB,YAAY,UAAU;IACtB,OAAO,SAAS;CACnB;AAED,qBAAa,QAAS,SAAQ,mBAAmB;CAAG;AAEpD,oBAAY,OAAO;IACf,OAAO,IAAO;IACd,OAAO,IAAO;IACd,SAAS,IAAO;IAChB,WAAW,IAAO;IAClB,IAAI,IAAO;IACX,gBAAgB,IAAO;IACvB,UAAU,KAAO;IACjB,QAAQ,KAAO;IACf,GAAG,KAAO;IACV,eAAe,KAAO;IACtB,SAAS,KAAO;IAChB,SAAS,KAAO;IAChB,OAAO,KAAO;IACd,eAAe,KAAO;CACzB;AAUD,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM;UACO,MAAM;;CAEpD,CAAC;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,EAAE,UAAS,GAAQ,QAG3D,CAAC;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,KAAK,EAAE,gBAAW;UACZ,MAAM;;;CAG7C,CAAC;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,QAAQ,GAAG;;;CAGtD,CAAC;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,EAAE,OAAO,KAAK;;;CAG5D,CAAC;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,OAAO,EAAE,OAAO,GAAG;;;CAGxD,CAAC;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK;;CAEnC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,KAAK;;;CAwBvC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAClB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACtB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,qBAAa,QAAQ;;IACjB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK;IAqEpC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO;IAInC;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM;CA0KtE"}
|
|
@@ -73,10 +73,21 @@ const DatatypeOverride = (type, value) => ({
|
|
|
73
73
|
const RawBytes = (bytes) => ({
|
|
74
74
|
["_bytes" /* Bytes */]: bytes
|
|
75
75
|
});
|
|
76
|
-
const
|
|
76
|
+
const DerRawUint = (number) => {
|
|
77
77
|
const numberData = Bytes.of(number);
|
|
78
78
|
if (numberData[0] & 128) {
|
|
79
79
|
number = Bytes.concat(new Uint8Array([0]), numberData);
|
|
80
|
+
} else {
|
|
81
|
+
let firstByte = 0;
|
|
82
|
+
while (firstByte < numberData.length - 1) {
|
|
83
|
+
if (numberData[firstByte] || numberData[firstByte + 1] & 128) {
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
firstByte++;
|
|
87
|
+
}
|
|
88
|
+
if (firstByte) {
|
|
89
|
+
number = numberData.slice(firstByte);
|
|
90
|
+
}
|
|
80
91
|
}
|
|
81
92
|
return {
|
|
82
93
|
["_tag" /* TagId */]: 2 /* Integer */,
|
|
@@ -286,12 +297,12 @@ export {
|
|
|
286
297
|
ContextTagged,
|
|
287
298
|
ContextTaggedBytes,
|
|
288
299
|
DatatypeOverride,
|
|
289
|
-
DerBigUint,
|
|
290
300
|
DerBitString,
|
|
291
301
|
DerCodec,
|
|
292
302
|
DerError,
|
|
293
303
|
DerKey,
|
|
294
304
|
DerObject,
|
|
305
|
+
DerRawUint,
|
|
295
306
|
DerType,
|
|
296
307
|
ObjectId,
|
|
297
308
|
RawBytes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/codec/DerCodec.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,2BAA2B;AACpC,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAC3B,SAAS,aAAa;AACtB,SAAS,gBAAgB;AAElB,IAAK,SAAL,kBAAKA,YAAL;AACH,EAAAA,QAAA,cAAW;AACX,EAAAA,QAAA,WAAQ;AACR,EAAAA,QAAA,WAAQ;AACR,EAAAA,QAAA,cAAW;AACX,EAAAA,QAAA,iBAAc;AACd,EAAAA,QAAA,kBAAe;AACf,EAAAA,QAAA,aAAU;AAPF,SAAAA;AAAA,GAAA;AAUL,MAAM,iBAAiB,oBAAoB;AAAC;AAE5C,IAAK,UAAL,kBAAKC,aAAL;AACH,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,eAAY,KAAZ;AACA,EAAAA,kBAAA,iBAAc,KAAd;AACA,EAAAA,kBAAA,UAAO,KAAP;AACA,EAAAA,kBAAA,sBAAmB,KAAnB;AACA,EAAAA,kBAAA,gBAAa,MAAb;AACA,EAAAA,kBAAA,cAAW,MAAX;AACA,EAAAA,kBAAA,SAAM,MAAN;AACA,EAAAA,kBAAA,qBAAkB,MAAlB;AACA,EAAAA,kBAAA,eAAY,MAAZ;AACA,EAAAA,kBAAA,eAAY,MAAZ;AACA,EAAAA,kBAAA,aAAU,MAAV;AACA,EAAAA,kBAAA,qBAAkB,MAAlB;AAdQ,SAAAA;AAAA,GAAA;AAiBZ,MAAM,cAAc;AAEpB,IAAW,WAAX,kBAAWC,cAAX;AACI,EAAAA,oBAAA,eAAY,KAAZ;AACA,EAAAA,oBAAA,iBAAc,MAAd;AACA,EAAAA,oBAAA,qBAAkB,OAAlB;AACA,EAAAA,oBAAA,aAAU,OAAV;AAJO,SAAAA;AAAA,GAAA;AAMJ,MAAM,WAAW,CAAC,cAAsB;AAAA,EAC3C,CAAC,kBAAY,GAAG;AAAA,EAChB,CAAC,oBAAY,GAAG,MAAM,QAAQ,QAAQ;AAC1C;AACO,MAAM,YAAY,CAAC,UAAkB,UAAe,CAAC,OAAO;AAAA,EAC/D,CAAC,0BAAe,GAAG,SAAS,QAAQ;AAAA,EACpC,GAAG;AACP;AACO,MAAM,eAAe,CAAC,MAAa,UAAU,OAAO;AAAA,EACvD,CAAC,kBAAY,GAAG;AAAA,EAChB,CAAC,oBAAY,GAAG;AAAA,EAChB,CAAC,4BAAkB,GAAG;AAC1B;AACO,MAAM,gBAAgB,CAAC,OAAe,WAAiB;AAAA,EAC1D,CAAC,kBAAY,GAAG,QAAQ,4BAA2B;AAAA,EACnD,CAAC,oBAAY,GAAG,UAAU,SAAY,IAAI,WAAW,CAAC,IAAI,SAAS,OAAO,KAAK;AACnF;AACO,MAAM,qBAAqB,CAAC,OAAe,WAAkB;AAAA,EAChE,CAAC,kBAAY,GAAG,QAAQ;AAAA,EACxB,CAAC,oBAAY,GAAG;AACpB;AACO,MAAM,mBAAmB,CAAC,MAAe,WAAgB;AAAA,EAC5D,CAAC,0BAAmB,GAAG;AAAA,EACvB,CAAC,oBAAc,GAAG;AACtB;AACO,MAAM,WAAW,CAAC,WAAkB;AAAA,EACvC,CAAC,oBAAY,GAAG;AACpB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["DerKey", "DerType", "DerClass"]
|
|
6
6
|
}
|
|
@@ -8,6 +8,7 @@ import { MaybePromise } from "#util/Promises.js";
|
|
|
8
8
|
import * as mod from "@noble/curves/abstract/modular.js";
|
|
9
9
|
import * as utils from "@noble/curves/utils.js";
|
|
10
10
|
import { Entropy } from "../util/Entropy.js";
|
|
11
|
+
import { EcdsaSignature } from "./EcdsaSignature.js";
|
|
11
12
|
import type { PrivateKey, PublicKey } from "./Key.js";
|
|
12
13
|
export declare const ec: {
|
|
13
14
|
mod(a: bigint, b: bigint): bigint;
|
|
@@ -73,7 +74,6 @@ export declare const CRYPTO_EC_CURVE = "prime256v1";
|
|
|
73
74
|
export declare const CRYPTO_EC_KEY_BYTES = 32;
|
|
74
75
|
export declare const CRYPTO_AUTH_TAG_LENGTH = 16;
|
|
75
76
|
export declare const CRYPTO_SYMMETRIC_KEY_LENGTH = 16;
|
|
76
|
-
export type CryptoDsaEncoding = "ieee-p1363" | "der";
|
|
77
77
|
/**
|
|
78
78
|
* These are the cryptographic primitives required to implement the Matter protocol.
|
|
79
79
|
*
|
|
@@ -117,11 +117,11 @@ export declare abstract class Crypto extends Entropy {
|
|
|
117
117
|
/**
|
|
118
118
|
* Create an ECDSA signature.
|
|
119
119
|
*/
|
|
120
|
-
abstract signEcdsa(privateKey: JsonWebKey, data: Bytes | Bytes[]
|
|
120
|
+
abstract signEcdsa(privateKey: JsonWebKey, data: Bytes | Bytes[]): MaybePromise<EcdsaSignature>;
|
|
121
121
|
/**
|
|
122
122
|
* Authenticate an ECDSA signature.
|
|
123
123
|
*/
|
|
124
|
-
abstract verifyEcdsa(publicKey: JsonWebKey, data: Bytes, signature:
|
|
124
|
+
abstract verifyEcdsa(publicKey: JsonWebKey, data: Bytes, signature: EcdsaSignature): MaybePromise<void>;
|
|
125
125
|
/**
|
|
126
126
|
* Create a general-purpose EC key.
|
|
127
127
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,GAAG,MAAM,mCAAmC,CAAC;AAEzD,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEtD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,GAAG,MAAM,mCAAmC,CAAC;AAEzD,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEtD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAyFF,GAAI,yBAGjB,GAAG;;;;;;;;;;;CAxFF,CAAC;AAEF,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AACtD,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAI9C;;;;;;;;;;GAUG;AACH,8BAAsB,MAAO,SAAQ,OAAO;IACxC;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK;IAE3E;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK;IAE3E;;OAEG;IACH,QAAQ,CAAC,aAAa,CAClB,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAClF,YAAY,CAAC,KAAK,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;IAE/G;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;IAErG;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IAE/D;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,YAAY,CAAC,cAAc,CAAC;IAE/F;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC;IAEvG;;OAEG;IACH,QAAQ,CAAC,aAAa,IAAI,YAAY,CAAC,UAAU,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;IAEnF,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM;CAOjC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/Crypto.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AAGvB,YAAY,SAAS;AACrB,SAAS,YAAY;AACrB,YAAY,WAAW;AACvB,SAAS,eAAe;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AAGvB,YAAY,SAAS;AACrB,SAAS,YAAY;AACrB,YAAY,WAAW;AACvB,SAAS,eAAe;AAIjB,MAAM,KAAK;AAAA,EACd;AAAA,EACA,GAAG;AAAA,EACH,GAAG;AACP;AAEO,MAAM,2BAA2B;AACjC,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAC/B,MAAM,8BAA8B;AAE3C,MAAM,SAAS,OAAO,IAAI,QAAQ;AAa3B,MAAe,eAAe,QAAQ;AAAA,EA0DzC,YAAY,WAAoB;AAC5B,UAAM,UAAU,CAAC,SAAS,WAAW,OAAO,KAAK,kBAAkB,GAAG,uBAAuB;AAC7F,QAAI,WAAW;AACX,cAAQ,KAAK,OAAO,SAAS;AAAA,IACjC;AACA,WAAO,MAAM,GAAG,OAAO;AAAA,EAC3B;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -29,4 +29,9 @@ export declare class CryptoDecryptError extends CryptoError {
|
|
|
29
29
|
*/
|
|
30
30
|
export declare class KeyInputError extends CryptoInputError {
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Thrown when verification fails because of an invalid signature format.
|
|
34
|
+
*/
|
|
35
|
+
export declare class SignatureEncodingError extends CryptoVerifyError {
|
|
36
|
+
}
|
|
32
37
|
//# sourceMappingURL=CryptoError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CryptoError.d.ts","sourceRoot":"","sources":["../../../src/crypto/CryptoError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;CAAG;AAE/C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;CAAG;AAEpD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;CAAG;AAErD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;CAAG;AAEtD;;GAEG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;CAAG"}
|
|
1
|
+
{"version":3,"file":"CryptoError.d.ts","sourceRoot":"","sources":["../../../src/crypto/CryptoError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;CAAG;AAE/C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;CAAG;AAEpD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;CAAG;AAErD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;CAAG;AAEtD;;GAEG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;CAAG;AAEtD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;CAAG"}
|
|
@@ -14,11 +14,14 @@ class CryptoDecryptError extends CryptoError {
|
|
|
14
14
|
}
|
|
15
15
|
class KeyInputError extends CryptoInputError {
|
|
16
16
|
}
|
|
17
|
+
class SignatureEncodingError extends CryptoVerifyError {
|
|
18
|
+
}
|
|
17
19
|
export {
|
|
18
20
|
CryptoDecryptError,
|
|
19
21
|
CryptoError,
|
|
20
22
|
CryptoInputError,
|
|
21
23
|
CryptoVerifyError,
|
|
22
|
-
KeyInputError
|
|
24
|
+
KeyInputError,
|
|
25
|
+
SignatureEncodingError
|
|
23
26
|
};
|
|
24
27
|
//# sourceMappingURL=CryptoError.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/CryptoError.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,mBAAmB;AAKrB,MAAM,oBAAoB,YAAY;AAAC;AAKvC,MAAM,yBAAyB,YAAY;AAAC;AAK5C,MAAM,0BAA0B,YAAY;AAAC;AAK7C,MAAM,2BAA2B,YAAY;AAAC;AAK9C,MAAM,sBAAsB,iBAAiB;AAAC;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,mBAAmB;AAKrB,MAAM,oBAAoB,YAAY;AAAC;AAKvC,MAAM,yBAAyB,YAAY;AAAC;AAK5C,MAAM,0BAA0B,YAAY;AAAC;AAK7C,MAAM,2BAA2B,YAAY;AAAC;AAK9C,MAAM,sBAAsB,iBAAiB;AAAC;AAK9C,MAAM,+BAA+B,kBAAkB;AAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Bytes } from "#util/Bytes.js";
|
|
7
|
+
/**
|
|
8
|
+
* An ECDSA signature.
|
|
9
|
+
*
|
|
10
|
+
* Input and output may be IEEE-P1363 or DER encoded. Matter helpfully mixes and matches so we validate input to ensure
|
|
11
|
+
* the correct encoding is specified. Extraction to bytes must explicitly use {@link bytes} or {@link der} to specify
|
|
12
|
+
* the desired format.
|
|
13
|
+
*
|
|
14
|
+
* Currently we only support 256-bit curves.
|
|
15
|
+
*/
|
|
16
|
+
export declare class EcdsaSignature {
|
|
17
|
+
#private;
|
|
18
|
+
constructor(bytes: Bytes, encoding?: string);
|
|
19
|
+
/**
|
|
20
|
+
* Access signature in IEEE P1363 format.
|
|
21
|
+
*/
|
|
22
|
+
get bytes(): AllowSharedBufferSource;
|
|
23
|
+
/**
|
|
24
|
+
* Access signature in DER format.
|
|
25
|
+
*/
|
|
26
|
+
get der(): AllowSharedBufferSource;
|
|
27
|
+
}
|
|
28
|
+
export declare namespace EcdsaSignature {
|
|
29
|
+
/**
|
|
30
|
+
* IEEE P1363 encoding.
|
|
31
|
+
*
|
|
32
|
+
* This is a simple concatenation of the raw R and S elements
|
|
33
|
+
*/
|
|
34
|
+
const IEEE_P1363 = "ieee-p1363";
|
|
35
|
+
/**
|
|
36
|
+
* DER encoding.
|
|
37
|
+
*
|
|
38
|
+
* This encodes R and S elements in a sequence of separate integers.
|
|
39
|
+
*/
|
|
40
|
+
const DER = "der";
|
|
41
|
+
type Encoding = typeof IEEE_P1363 | typeof DER;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=EcdsaSignature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EcdsaSignature.d.ts","sourceRoot":"","sources":["../../../src/crypto/EcdsaSignature.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC;;;;;;;;GAQG;AACH,qBAAa,cAAc;;gBAGX,KAAK,EAAE,KAAK,EAAE,QAAQ,SAAe;IAuBjD;;OAEG;IACH,IAAI,KAAK,4BAER;IAED;;OAEG;IACH,IAAI,GAAG,4BAQN;CACJ;AAED,yBAAiB,cAAc,CAAC;IAC5B;;;;OAIG;IACI,MAAM,UAAU,eAAe,CAAC;IAEvC;;;;OAIG;IACI,MAAM,GAAG,QAAQ,CAAC;IAEzB,KAAY,QAAQ,GAAG,OAAO,UAAU,GAAG,OAAO,GAAG,CAAC;CACzD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { DerCodec, DerError, DerRawUint } from "#codec/DerCodec.js";
|
|
7
|
+
import { Bytes } from "#util/Bytes.js";
|
|
8
|
+
import { SignatureEncodingError } from "./CryptoError.js";
|
|
9
|
+
class EcdsaSignature {
|
|
10
|
+
#bytes;
|
|
11
|
+
constructor(bytes, encoding = "ieee-p1363") {
|
|
12
|
+
if (encoding === "der") {
|
|
13
|
+
try {
|
|
14
|
+
const decoded = DerCodec.decode(bytes);
|
|
15
|
+
const r = DerCodec.decodeBigUint(decoded?._elements?.[0], 32);
|
|
16
|
+
const s = DerCodec.decodeBigUint(decoded?._elements?.[1], 32);
|
|
17
|
+
this.#bytes = Bytes.concat(r, s);
|
|
18
|
+
} catch (cause) {
|
|
19
|
+
DerError.accept(cause);
|
|
20
|
+
throw new SignatureEncodingError("Could not decode DER signature", { cause });
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
if (bytes.byteLength !== 64) {
|
|
24
|
+
throw new SignatureEncodingError("Invalid IEEE P1364 signature length");
|
|
25
|
+
}
|
|
26
|
+
this.#bytes = bytes;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Access signature in IEEE P1363 format.
|
|
31
|
+
*/
|
|
32
|
+
get bytes() {
|
|
33
|
+
return this.#bytes;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Access signature in DER format.
|
|
37
|
+
*/
|
|
38
|
+
get der() {
|
|
39
|
+
const bytes = Bytes.of(this.#bytes);
|
|
40
|
+
const bytesPerComponent = bytes.length / 2;
|
|
41
|
+
return DerCodec.encode({
|
|
42
|
+
r: DerRawUint(bytes.slice(0, bytesPerComponent)),
|
|
43
|
+
s: DerRawUint(bytes.slice(bytesPerComponent))
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
((EcdsaSignature2) => {
|
|
48
|
+
EcdsaSignature2.IEEE_P1363 = "ieee-p1363";
|
|
49
|
+
EcdsaSignature2.DER = "der";
|
|
50
|
+
})(EcdsaSignature || (EcdsaSignature = {}));
|
|
51
|
+
export {
|
|
52
|
+
EcdsaSignature
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=EcdsaSignature.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/crypto/EcdsaSignature.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,UAAU,UAAU,kBAAkB;AAC/C,SAAS,aAAa;AACtB,SAAS,8BAA8B;AAWhC,MAAM,eAAe;AAAA,EACxB;AAAA,EAEA,YAAY,OAAc,WAAW,cAAc;AAC/C,QAAI,aAAa,OAAO;AACpB,UAAI;AACA,cAAM,UAAU,SAAS,OAAO,KAAK;AAErC,cAAM,IAAI,SAAS,cAAc,SAAS,YAAY,CAAC,GAAG,EAAE;AAC5D,cAAM,IAAI,SAAS,cAAc,SAAS,YAAY,CAAC,GAAG,EAAE;AAE5D,aAAK,SAAS,MAAM,OAAO,GAAG,CAAC;AAAA,MACnC,SAAS,OAAO;AACZ,iBAAS,OAAO,KAAK;AAErB,cAAM,IAAI,uBAAuB,kCAAkC,EAAE,MAAM,CAAC;AAAA,MAChF;AAAA,IACJ,OAAO;AAEH,UAAI,MAAM,eAAe,IAAI;AACzB,cAAM,IAAI,uBAAuB,qCAAqC;AAAA,MAC1E;AACA,WAAK,SAAS;AAAA,IAClB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAM;AACN,UAAM,QAAQ,MAAM,GAAG,KAAK,MAAM;AAClC,UAAM,oBAAoB,MAAM,SAAS;AAEzC,WAAO,SAAS,OAAO;AAAA,MACnB,GAAG,WAAW,MAAM,MAAM,GAAG,iBAAiB,CAAC;AAAA,MAC/C,GAAG,WAAW,MAAM,MAAM,iBAAiB,CAAC;AAAA,IAChD,CAAC;AAAA,EACL;AACJ;AAAA,CAEO,CAAUA,oBAAV;AAMI,EAAMA,gBAAA,aAAa;AAOnB,EAAMA,gBAAA,MAAM;AAAA,GAbN;",
|
|
5
|
+
"names": ["EcdsaSignature"]
|
|
6
|
+
}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
import { Bytes } from "#util/Bytes.js";
|
|
7
7
|
import { MaybePromise } from "#util/Promises.js";
|
|
8
8
|
import { Identity } from "#util/Type.js";
|
|
9
|
-
import { Crypto
|
|
9
|
+
import { Crypto } from "./Crypto.js";
|
|
10
|
+
import { EcdsaSignature } from "./EcdsaSignature.js";
|
|
10
11
|
import { PrivateKey, PublicKey } from "./Key.js";
|
|
11
12
|
import type * as NodeJsCryptoApi from "node:crypto";
|
|
12
13
|
/**
|
|
@@ -42,8 +43,8 @@ export declare class NodeJsStyleCrypto extends Crypto {
|
|
|
42
43
|
createPbkdf2Key(secret: Bytes, salt: Bytes, iteration: number, keyLength: number): Promise<Bytes>;
|
|
43
44
|
createHkdfKey(secret: Bytes, salt: Bytes, info: Bytes, length?: number): Promise<Bytes>;
|
|
44
45
|
signHmac(key: Bytes, data: Bytes): Bytes;
|
|
45
|
-
signEcdsa(privateKey: JsonWebKey, data: Bytes | Bytes[]
|
|
46
|
-
verifyEcdsa(publicKey: JsonWebKey, data: Bytes, signature:
|
|
46
|
+
signEcdsa(privateKey: JsonWebKey, data: Bytes | Bytes[]): EcdsaSignature;
|
|
47
|
+
verifyEcdsa(publicKey: JsonWebKey, data: Bytes, signature: EcdsaSignature): void;
|
|
47
48
|
createKeyPair(): PrivateKey;
|
|
48
49
|
generateDhSecret(key: PrivateKey, peerKey: PublicKey): Bytes;
|
|
49
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeJsStyleCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/NodeJsStyleCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACH,MAAM,
|
|
1
|
+
{"version":3,"file":"NodeJsStyleCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/NodeJsStyleCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACH,MAAM,EAOT,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGjD,OAAO,KAAK,KAAK,eAAe,MAAM,aAAa,CAAC;AAKpD;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,QAAQ,CAAC,OAAO,eAAe,CAAC;CAAG;AAEhF;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,MAAM;;IACzC,kBAAkB,SAAa;gBAInB,MAAM,EAAE,mBAAmB;IAMvC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK;IAYlE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK;IAmBvE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAIlC,qBAAqB,IAAI;QAAE,SAAS,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;IAMxD,8BAA8B,CAAC,aAAa,EAAE,KAAK,GAAG;QAClD,SAAS,EAAE,KAAK,CAAC;QACjB,YAAY,EAAE,KAAK,CAAC;KACvB;IAiBD,aAAa,CACT,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAClF,YAAY,CAAC,KAAK,CAAC;IAoBtB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAgBjG,aAAa,CACT,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,MAAoC,GAC7C,OAAO,CAAC,KAAK,CAAC;IAgBjB,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK;IAMxC,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE;IAmBvD,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc;IAezE,aAAa;IAcb,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK;CAM/D"}
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
CRYPTO_SYMMETRIC_KEY_LENGTH
|
|
17
17
|
} from "./Crypto.js";
|
|
18
18
|
import { CryptoDecryptError, CryptoVerifyError } from "./CryptoError.js";
|
|
19
|
+
import { EcdsaSignature } from "./EcdsaSignature.js";
|
|
19
20
|
import { PrivateKey } from "./Key.js";
|
|
20
21
|
class NodeJsStyleCrypto extends Crypto {
|
|
21
22
|
implementationName = "Node.js";
|
|
@@ -130,23 +131,25 @@ class NodeJsStyleCrypto extends Crypto {
|
|
|
130
131
|
hmac.update(Bytes.of(data));
|
|
131
132
|
return Bytes.of(hmac.digest());
|
|
132
133
|
}
|
|
133
|
-
signEcdsa(privateKey, data
|
|
134
|
+
signEcdsa(privateKey, data) {
|
|
134
135
|
const signer = this.#crypto.createSign(CRYPTO_HASH_ALGORITHM);
|
|
135
136
|
if (Array.isArray(data)) {
|
|
136
137
|
data.forEach((chunk) => signer.update(Bytes.of(chunk)));
|
|
137
138
|
} else {
|
|
138
139
|
signer.update(Bytes.of(data));
|
|
139
140
|
}
|
|
140
|
-
return
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
141
|
+
return new EcdsaSignature(
|
|
142
|
+
Bytes.of(
|
|
143
|
+
signer.sign({
|
|
144
|
+
key: privateKey,
|
|
145
|
+
format: "jwk",
|
|
146
|
+
type: "pkcs8",
|
|
147
|
+
dsaEncoding: "ieee-p1363"
|
|
148
|
+
})
|
|
149
|
+
)
|
|
147
150
|
);
|
|
148
151
|
}
|
|
149
|
-
verifyEcdsa(publicKey, data, signature
|
|
152
|
+
verifyEcdsa(publicKey, data, signature) {
|
|
150
153
|
const verifier = this.#crypto.createVerify(CRYPTO_HASH_ALGORITHM);
|
|
151
154
|
verifier.update(Bytes.of(data));
|
|
152
155
|
const success = verifier.verify(
|
|
@@ -154,9 +157,9 @@ class NodeJsStyleCrypto extends Crypto {
|
|
|
154
157
|
key: publicKey,
|
|
155
158
|
format: "jwk",
|
|
156
159
|
type: "spki",
|
|
157
|
-
dsaEncoding
|
|
160
|
+
dsaEncoding: "ieee-p1363"
|
|
158
161
|
},
|
|
159
|
-
Bytes.of(signature)
|
|
162
|
+
Bytes.of(signature.bytes)
|
|
160
163
|
);
|
|
161
164
|
if (!success) throw new CryptoVerifyError("Signature verification failed");
|
|
162
165
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/NodeJsStyleCrypto.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AACpC,SAAS,aAAa;AACtB,SAAS,eAAe;AAGxB;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { Bytes } from "#util/Bytes.js";
|
|
8
8
|
import { MaybePromise } from "#util/Promises.js";
|
|
9
|
-
import { Crypto
|
|
9
|
+
import { Crypto } from "./Crypto.js";
|
|
10
|
+
import { EcdsaSignature } from "./EcdsaSignature.js";
|
|
10
11
|
import { PrivateKey, PublicKey } from "./Key.js";
|
|
11
12
|
import { WebCrypto } from "./WebCrypto.js";
|
|
12
13
|
/**
|
|
@@ -31,8 +32,8 @@ export declare class StandardCrypto extends Crypto {
|
|
|
31
32
|
createPbkdf2Key(secret: Bytes, salt: Bytes, iteration: number, keyLength: number): Promise<ArrayBuffer>;
|
|
32
33
|
createHkdfKey(secret: Bytes, salt: Bytes, info: Bytes, length?: number): Promise<Bytes>;
|
|
33
34
|
signHmac(secret: Bytes, data: Bytes): MaybePromise<Bytes>;
|
|
34
|
-
signEcdsa(key: JsonWebKey, data: Bytes | Bytes[]
|
|
35
|
-
verifyEcdsa(key: JsonWebKey, data: Bytes, signature:
|
|
35
|
+
signEcdsa(key: JsonWebKey, data: Bytes | Bytes[]): Promise<EcdsaSignature>;
|
|
36
|
+
verifyEcdsa(key: JsonWebKey, data: Bytes, signature: EcdsaSignature): Promise<void>;
|
|
36
37
|
createKeyPair(): Promise<PrivateKey>;
|
|
37
38
|
protected generateJwk(): Promise<JsonWebKey>;
|
|
38
39
|
generateDhSecret(key: PrivateKey, peerKey: PublicKey): Promise<Bytes>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/StandardCrypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"StandardCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/StandardCrypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAA+B,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAA2B,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuB3C;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,MAAM;;IACtC,kBAAkB,SAAQ;gBAId,MAAM,GAAE,SAA6B;IAYjD,SAAS,KAAK,MAAM,iBAEnB;IAED,MAAM,CAAC,QAAQ;IAIf,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAMlC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK;IASrE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK;IASrE,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;IAU3F,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAchF,aAAa,CACf,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,MAAoC,GAC7C,OAAO,CAAC,KAAK,CAAC;IAcjB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IAMnD,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE;IAwBhD,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc;IAiBnE,aAAa;cAaH,WAAW;IAkBrB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;cAiC3D,SAAS,CACrB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,GAAG,KAAK,EAC3B,SAAS,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,EAC/G,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;CAQzC"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* Portions copyright 2022-2023 Project CHIP Authors
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
|
-
import { DerBigUint, DerCodec, DerError } from "#codec/DerCodec.js";
|
|
8
7
|
import { Environment } from "#environment/Environment.js";
|
|
9
8
|
import { ImplementationError, NotImplementedError } from "#MatterError.js";
|
|
10
9
|
import { Bytes } from "#util/Bytes.js";
|
|
@@ -13,6 +12,7 @@ import { describeList } from "#util/String.js";
|
|
|
13
12
|
import { Ccm } from "./aes/Ccm.js";
|
|
14
13
|
import { Crypto, CRYPTO_SYMMETRIC_KEY_LENGTH } from "./Crypto.js";
|
|
15
14
|
import { CryptoVerifyError, KeyInputError } from "./CryptoError.js";
|
|
15
|
+
import { EcdsaSignature } from "./EcdsaSignature.js";
|
|
16
16
|
import { CurveType, Key, KeyType } from "./Key.js";
|
|
17
17
|
const SIGNATURE_ALGORITHM = {
|
|
18
18
|
name: "ECDSA",
|
|
@@ -108,7 +108,7 @@ class StandardCrypto extends Crypto {
|
|
|
108
108
|
(key) => this.#subtle.sign("HMAC", key, Bytes.exclusive(data))
|
|
109
109
|
);
|
|
110
110
|
}
|
|
111
|
-
async signEcdsa(key, data
|
|
111
|
+
async signEcdsa(key, data) {
|
|
112
112
|
if (Array.isArray(data)) {
|
|
113
113
|
data = Bytes.concat(...data);
|
|
114
114
|
}
|
|
@@ -125,32 +125,16 @@ class StandardCrypto extends Crypto {
|
|
|
125
125
|
};
|
|
126
126
|
const subtleKey = await this.importKey("jwk", key, SIGNATURE_ALGORITHM, false, ["sign"]);
|
|
127
127
|
const ieeeP1363 = Bytes.of(await this.#subtle.sign(SIGNATURE_ALGORITHM, subtleKey, Bytes.exclusive(data)));
|
|
128
|
-
|
|
129
|
-
const bytesPerComponent = ieeeP1363.byteLength / 2;
|
|
130
|
-
return DerCodec.encode({
|
|
131
|
-
r: DerBigUint(ieeeP1363.slice(0, bytesPerComponent)),
|
|
132
|
-
s: DerBigUint(ieeeP1363.slice(bytesPerComponent))
|
|
133
|
-
});
|
|
128
|
+
return new EcdsaSignature(ieeeP1363);
|
|
134
129
|
}
|
|
135
|
-
async verifyEcdsa(key, data, signature
|
|
130
|
+
async verifyEcdsa(key, data, signature) {
|
|
136
131
|
const { crv, kty, x, y } = key;
|
|
137
132
|
key = { crv, kty, x, y };
|
|
138
133
|
const subtleKey = await this.importKey("jwk", key, SIGNATURE_ALGORITHM, false, ["verify"]);
|
|
139
|
-
if (dsaEncoding === "der") {
|
|
140
|
-
try {
|
|
141
|
-
const decoded = DerCodec.decode(signature);
|
|
142
|
-
const r = DerCodec.decodeBigUint(decoded?._elements?.[0], 32);
|
|
143
|
-
const s = DerCodec.decodeBigUint(decoded?._elements?.[1], 32);
|
|
144
|
-
signature = Bytes.concat(r, s);
|
|
145
|
-
} catch (cause) {
|
|
146
|
-
DerError.accept(cause);
|
|
147
|
-
throw new CryptoVerifyError("Invalid DER signature", { cause });
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
134
|
const verified = await this.#subtle.verify(
|
|
151
135
|
SIGNATURE_ALGORITHM,
|
|
152
136
|
subtleKey,
|
|
153
|
-
Bytes.exclusive(signature),
|
|
137
|
+
Bytes.exclusive(signature.bytes),
|
|
154
138
|
Bytes.exclusive(data)
|
|
155
139
|
);
|
|
156
140
|
if (!verified) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/StandardCrypto.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["name"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
|
package/dist/esm/crypto/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/index.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/general",
|
|
3
|
-
"version": "0.16.0-alpha.0-
|
|
3
|
+
"version": "0.16.0-alpha.0-20251112-dba1973d5",
|
|
4
4
|
"description": "Non-Matter support for Matter.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@noble/curves": "^2.0.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@matter/testing": "0.16.0-alpha.0-
|
|
39
|
+
"@matter/testing": "0.16.0-alpha.0-20251112-dba1973d5"
|
|
40
40
|
},
|
|
41
41
|
"files": [
|
|
42
42
|
"dist/**/*",
|
package/src/codec/DerCodec.ts
CHANGED
|
@@ -74,14 +74,30 @@ export const DatatypeOverride = (type: DerType, value: any) => ({
|
|
|
74
74
|
export const RawBytes = (bytes: Bytes) => ({
|
|
75
75
|
[DerKey.Bytes]: bytes,
|
|
76
76
|
});
|
|
77
|
-
export const DerBigUint = (number: Bytes) => {
|
|
78
|
-
// We don't need bigint support currently, but we can translate here if we ever do
|
|
79
77
|
|
|
78
|
+
/**
|
|
79
|
+
* Optimized path for encoding raw bytes that represent an unsigned integer.
|
|
80
|
+
*
|
|
81
|
+
* This allows to avoid e.g. round tripping a 256-bit number through a bigint when encoding.
|
|
82
|
+
*/
|
|
83
|
+
export const DerRawUint = (number: Bytes) => {
|
|
80
84
|
const numberData = Bytes.of(number);
|
|
81
85
|
|
|
82
|
-
// Ensure value does not encode as negative
|
|
83
86
|
if (numberData[0] & 0x80) {
|
|
87
|
+
// Add 0 prefix so number does not encode as negative
|
|
84
88
|
number = Bytes.concat(new Uint8Array([0]), numberData);
|
|
89
|
+
} else {
|
|
90
|
+
// Drop non-conformant high-value zeros
|
|
91
|
+
let firstByte = 0;
|
|
92
|
+
while (firstByte < numberData.length - 1) {
|
|
93
|
+
if (numberData[firstByte] || numberData[firstByte + 1] & 0x80) {
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
firstByte++;
|
|
97
|
+
}
|
|
98
|
+
if (firstByte) {
|
|
99
|
+
number = numberData.slice(firstByte);
|
|
100
|
+
}
|
|
85
101
|
}
|
|
86
102
|
|
|
87
103
|
return {
|