@did-btcr2/common 7.0.0 → 8.0.1
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/canonicalization.js +7 -7
- package/dist/cjs/canonicalization.js.map +1 -1
- package/dist/esm/canonicalization.js +7 -7
- package/dist/esm/canonicalization.js.map +1 -1
- package/dist/types/canonicalization.d.ts +5 -5
- package/dist/types/canonicalization.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/canonicalization.ts +7 -7
|
@@ -64,11 +64,11 @@ export function hash(canonicalized) {
|
|
|
64
64
|
* Encodes hash bytes using the specified encoding.
|
|
65
65
|
*
|
|
66
66
|
* @param {HashBytes} hashBytes - The hash bytes to encode.
|
|
67
|
-
* @param {CanonicalizationEncoding} [encoding='
|
|
67
|
+
* @param {CanonicalizationEncoding} [encoding='base64url'] - The encoding format.
|
|
68
68
|
* @returns {string} The encoded string.
|
|
69
69
|
* @throws {CanonicalizationError} If the encoding is not supported.
|
|
70
70
|
*/
|
|
71
|
-
export function
|
|
71
|
+
export function encode(hashBytes, encoding = 'base64url') {
|
|
72
72
|
const normalized = normalizeEncoding(encoding);
|
|
73
73
|
switch (normalized) {
|
|
74
74
|
case 'hex': return hex.encode(hashBytes);
|
|
@@ -80,11 +80,11 @@ export function encodeHash(hashBytes, encoding = 'hex') {
|
|
|
80
80
|
* Decodes an encoded hash string back to bytes.
|
|
81
81
|
*
|
|
82
82
|
* @param {string} encoded - The encoded hash string.
|
|
83
|
-
* @param {CanonicalizationEncoding} [encoding='
|
|
83
|
+
* @param {CanonicalizationEncoding} [encoding='base64url'] - The encoding format.
|
|
84
84
|
* @returns {HashBytes} The decoded hash bytes.
|
|
85
85
|
* @throws {CanonicalizationError} If the encoding is not supported.
|
|
86
86
|
*/
|
|
87
|
-
export function
|
|
87
|
+
export function decode(encoded, encoding = 'base64url') {
|
|
88
88
|
const normalized = normalizeEncoding(encoding);
|
|
89
89
|
switch (normalized) {
|
|
90
90
|
case 'hex': return hex.decode(encoded);
|
|
@@ -93,7 +93,7 @@ export function decodeHash(encoded, encoding = 'hex') {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
|
-
* Implements {@link
|
|
96
|
+
* Implements {@link https://dcdpr.github.io/did-btcr2/algorithms.html#json-document-hashing | 8.c JSON Document Hashing}.
|
|
97
97
|
*
|
|
98
98
|
* Full pipeline: Canonicalize (JCS) -> Hash (SHA-256) -> Encode.
|
|
99
99
|
*
|
|
@@ -103,7 +103,7 @@ export function decodeHash(encoded, encoding = 'hex') {
|
|
|
103
103
|
*/
|
|
104
104
|
export function canonicalHash(object, options) {
|
|
105
105
|
const algorithm = normalizeAlgorithm(options?.algorithm ?? 'jcs');
|
|
106
|
-
const encoding = normalizeEncoding(options?.encoding ?? '
|
|
107
|
-
return
|
|
106
|
+
const encoding = normalizeEncoding(options?.encoding ?? 'base64url');
|
|
107
|
+
return encode(hash(canonicalize(object, algorithm)), encoding);
|
|
108
108
|
}
|
|
109
109
|
//# sourceMappingURL=canonicalization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalization.js","sourceRoot":"","sources":["../../src/canonicalization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAWpD,MAAM,oBAAoB,GAA2C,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACtF,MAAM,mBAAmB,GAA0C,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAE3G;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,SAAoC;IAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAkC,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,qBAAqB,CAAC,0BAA0B,SAAS,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,KAAkC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,QAAkC;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAiC,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,KAAiC,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,MAAwB,EAAE,YAAuC,KAAK;IACjG,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,mEAAmE;YACnE,iEAAiE;YACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD;YACE,MAAM,IAAI,qBAAqB,CAAC,0BAA0B,SAAS,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,aAAqB;IACxC,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"canonicalization.js","sourceRoot":"","sources":["../../src/canonicalization.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,11 +64,11 @@ export function hash(canonicalized) {
|
|
|
64
64
|
* Encodes hash bytes using the specified encoding.
|
|
65
65
|
*
|
|
66
66
|
* @param {HashBytes} hashBytes - The hash bytes to encode.
|
|
67
|
-
* @param {CanonicalizationEncoding} [encoding='
|
|
67
|
+
* @param {CanonicalizationEncoding} [encoding='base64url'] - The encoding format.
|
|
68
68
|
* @returns {string} The encoded string.
|
|
69
69
|
* @throws {CanonicalizationError} If the encoding is not supported.
|
|
70
70
|
*/
|
|
71
|
-
export function
|
|
71
|
+
export function encode(hashBytes, encoding = 'base64url') {
|
|
72
72
|
const normalized = normalizeEncoding(encoding);
|
|
73
73
|
switch (normalized) {
|
|
74
74
|
case 'hex': return hex.encode(hashBytes);
|
|
@@ -80,11 +80,11 @@ export function encodeHash(hashBytes, encoding = 'hex') {
|
|
|
80
80
|
* Decodes an encoded hash string back to bytes.
|
|
81
81
|
*
|
|
82
82
|
* @param {string} encoded - The encoded hash string.
|
|
83
|
-
* @param {CanonicalizationEncoding} [encoding='
|
|
83
|
+
* @param {CanonicalizationEncoding} [encoding='base64url'] - The encoding format.
|
|
84
84
|
* @returns {HashBytes} The decoded hash bytes.
|
|
85
85
|
* @throws {CanonicalizationError} If the encoding is not supported.
|
|
86
86
|
*/
|
|
87
|
-
export function
|
|
87
|
+
export function decode(encoded, encoding = 'base64url') {
|
|
88
88
|
const normalized = normalizeEncoding(encoding);
|
|
89
89
|
switch (normalized) {
|
|
90
90
|
case 'hex': return hex.decode(encoded);
|
|
@@ -93,7 +93,7 @@ export function decodeHash(encoded, encoding = 'hex') {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
|
-
* Implements {@link
|
|
96
|
+
* Implements {@link https://dcdpr.github.io/did-btcr2/algorithms.html#json-document-hashing | 8.c JSON Document Hashing}.
|
|
97
97
|
*
|
|
98
98
|
* Full pipeline: Canonicalize (JCS) -> Hash (SHA-256) -> Encode.
|
|
99
99
|
*
|
|
@@ -103,7 +103,7 @@ export function decodeHash(encoded, encoding = 'hex') {
|
|
|
103
103
|
*/
|
|
104
104
|
export function canonicalHash(object, options) {
|
|
105
105
|
const algorithm = normalizeAlgorithm(options?.algorithm ?? 'jcs');
|
|
106
|
-
const encoding = normalizeEncoding(options?.encoding ?? '
|
|
107
|
-
return
|
|
106
|
+
const encoding = normalizeEncoding(options?.encoding ?? 'base64url');
|
|
107
|
+
return encode(hash(canonicalize(object, algorithm)), encoding);
|
|
108
108
|
}
|
|
109
109
|
//# sourceMappingURL=canonicalization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalization.js","sourceRoot":"","sources":["../../src/canonicalization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAWpD,MAAM,oBAAoB,GAA2C,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACtF,MAAM,mBAAmB,GAA0C,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAE3G;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,SAAoC;IAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAkC,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,qBAAqB,CAAC,0BAA0B,SAAS,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,KAAkC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,QAAkC;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAiC,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,KAAiC,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,MAAwB,EAAE,YAAuC,KAAK;IACjG,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,mEAAmE;YACnE,iEAAiE;YACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD;YACE,MAAM,IAAI,qBAAqB,CAAC,0BAA0B,SAAS,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,aAAqB;IACxC,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"canonicalization.js","sourceRoot":"","sources":["../../src/canonicalization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAWpD,MAAM,oBAAoB,GAA2C,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACtF,MAAM,mBAAmB,GAA0C,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAE3G;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,SAAoC;IAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAkC,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,qBAAqB,CAAC,0BAA0B,SAAS,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,KAAkC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,QAAkC;IAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAiC,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,KAAiC,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,MAAwB,EAAE,YAAuC,KAAK;IACjG,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACjD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,mEAAmE;YACnE,iEAAiE;YACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD;YACE,MAAM,IAAI,qBAAqB,CAAC,0BAA0B,SAAS,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,aAAqB;IACxC,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,SAAoB,EAAE,WAAqC,WAAW;IAC3F,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK,CAAC,CAAO,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,KAAK,QAAQ,CAAC,CAAI,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,KAAK,WAAW,CAAC,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,WAAqC,WAAW;IACtF,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK,CAAC,CAAO,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,QAAQ,CAAC,CAAI,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,WAAW,CAAC,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,MAAwB,EAAE,OAAiC;IACvF,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,IAAI,WAAW,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -25,22 +25,22 @@ export declare function hash(canonicalized: string): HashBytes;
|
|
|
25
25
|
* Encodes hash bytes using the specified encoding.
|
|
26
26
|
*
|
|
27
27
|
* @param {HashBytes} hashBytes - The hash bytes to encode.
|
|
28
|
-
* @param {CanonicalizationEncoding} [encoding='
|
|
28
|
+
* @param {CanonicalizationEncoding} [encoding='base64url'] - The encoding format.
|
|
29
29
|
* @returns {string} The encoded string.
|
|
30
30
|
* @throws {CanonicalizationError} If the encoding is not supported.
|
|
31
31
|
*/
|
|
32
|
-
export declare function
|
|
32
|
+
export declare function encode(hashBytes: HashBytes, encoding?: CanonicalizationEncoding): string;
|
|
33
33
|
/**
|
|
34
34
|
* Decodes an encoded hash string back to bytes.
|
|
35
35
|
*
|
|
36
36
|
* @param {string} encoded - The encoded hash string.
|
|
37
|
-
* @param {CanonicalizationEncoding} [encoding='
|
|
37
|
+
* @param {CanonicalizationEncoding} [encoding='base64url'] - The encoding format.
|
|
38
38
|
* @returns {HashBytes} The decoded hash bytes.
|
|
39
39
|
* @throws {CanonicalizationError} If the encoding is not supported.
|
|
40
40
|
*/
|
|
41
|
-
export declare function
|
|
41
|
+
export declare function decode(encoded: string, encoding?: CanonicalizationEncoding): HashBytes;
|
|
42
42
|
/**
|
|
43
|
-
* Implements {@link
|
|
43
|
+
* Implements {@link https://dcdpr.github.io/did-btcr2/algorithms.html#json-document-hashing | 8.c JSON Document Hashing}.
|
|
44
44
|
*
|
|
45
45
|
* Full pipeline: Canonicalize (JCS) -> Hash (SHA-256) -> Encode.
|
|
46
46
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalization.d.ts","sourceRoot":"","sources":["../../src/canonicalization.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEtE,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;CACrC;AAiCD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,GAAE,yBAAiC,GAAG,MAAM,CAY3G;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"canonicalization.d.ts","sourceRoot":"","sources":["../../src/canonicalization.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEtE,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;CACrC;AAiCD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,GAAE,yBAAiC,GAAG,MAAM,CAY3G;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAE,wBAAsC,GAAG,MAAM,CAOrG;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,wBAAsC,GAAG,SAAS,CAOnG;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAIjG"}
|
package/package.json
CHANGED
package/src/canonicalization.ts
CHANGED
|
@@ -79,11 +79,11 @@ export function hash(canonicalized: string): HashBytes {
|
|
|
79
79
|
* Encodes hash bytes using the specified encoding.
|
|
80
80
|
*
|
|
81
81
|
* @param {HashBytes} hashBytes - The hash bytes to encode.
|
|
82
|
-
* @param {CanonicalizationEncoding} [encoding='
|
|
82
|
+
* @param {CanonicalizationEncoding} [encoding='base64url'] - The encoding format.
|
|
83
83
|
* @returns {string} The encoded string.
|
|
84
84
|
* @throws {CanonicalizationError} If the encoding is not supported.
|
|
85
85
|
*/
|
|
86
|
-
export function
|
|
86
|
+
export function encode(hashBytes: HashBytes, encoding: CanonicalizationEncoding = 'base64url'): string {
|
|
87
87
|
const normalized = normalizeEncoding(encoding);
|
|
88
88
|
switch (normalized) {
|
|
89
89
|
case 'hex': return hex.encode(hashBytes);
|
|
@@ -96,11 +96,11 @@ export function encodeHash(hashBytes: HashBytes, encoding: CanonicalizationEncod
|
|
|
96
96
|
* Decodes an encoded hash string back to bytes.
|
|
97
97
|
*
|
|
98
98
|
* @param {string} encoded - The encoded hash string.
|
|
99
|
-
* @param {CanonicalizationEncoding} [encoding='
|
|
99
|
+
* @param {CanonicalizationEncoding} [encoding='base64url'] - The encoding format.
|
|
100
100
|
* @returns {HashBytes} The decoded hash bytes.
|
|
101
101
|
* @throws {CanonicalizationError} If the encoding is not supported.
|
|
102
102
|
*/
|
|
103
|
-
export function
|
|
103
|
+
export function decode(encoded: string, encoding: CanonicalizationEncoding = 'base64url'): HashBytes {
|
|
104
104
|
const normalized = normalizeEncoding(encoding);
|
|
105
105
|
switch (normalized) {
|
|
106
106
|
case 'hex': return hex.decode(encoded);
|
|
@@ -110,7 +110,7 @@ export function decodeHash(encoded: string, encoding: CanonicalizationEncoding =
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
/**
|
|
113
|
-
* Implements {@link
|
|
113
|
+
* Implements {@link https://dcdpr.github.io/did-btcr2/algorithms.html#json-document-hashing | 8.c JSON Document Hashing}.
|
|
114
114
|
*
|
|
115
115
|
* Full pipeline: Canonicalize (JCS) -> Hash (SHA-256) -> Encode.
|
|
116
116
|
*
|
|
@@ -120,6 +120,6 @@ export function decodeHash(encoded: string, encoding: CanonicalizationEncoding =
|
|
|
120
120
|
*/
|
|
121
121
|
export function canonicalHash(object: Record<any, any>, options?: CanonicalizationOptions): string {
|
|
122
122
|
const algorithm = normalizeAlgorithm(options?.algorithm ?? 'jcs');
|
|
123
|
-
const encoding = normalizeEncoding(options?.encoding ?? '
|
|
124
|
-
return
|
|
123
|
+
const encoding = normalizeEncoding(options?.encoding ?? 'base64url');
|
|
124
|
+
return encode(hash(canonicalize(object, algorithm)), encoding);
|
|
125
125
|
}
|