@sphereon/oid4vci-common 0.8.2-unstable.42 → 0.8.2-unstable.48
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/functions/RandomUtils.d.ts +10 -0
- package/dist/functions/RandomUtils.d.ts.map +1 -0
- package/dist/functions/RandomUtils.js +73 -0
- package/dist/functions/RandomUtils.js.map +1 -0
- package/dist/functions/index.d.ts +3 -0
- package/dist/functions/index.d.ts.map +1 -1
- package/dist/functions/index.js +4 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/randomBytes.d.ts +7 -0
- package/dist/functions/randomBytes.d.ts.map +1 -0
- package/dist/functions/randomBytes.js +56 -0
- package/dist/functions/randomBytes.js.map +1 -0
- package/dist/types/Authorization.types.d.ts +2 -2
- package/dist/types/Authorization.types.d.ts.map +1 -1
- package/dist/types/Authorization.types.js +2 -2
- package/dist/types/Authorization.types.js.map +1 -1
- package/lib/__tests__/randomBytes.spec.ts +15 -0
- package/lib/functions/RandomUtils.ts +43 -0
- package/lib/functions/index.ts +3 -0
- package/lib/functions/randomBytes.js +61 -0
- package/lib/types/Authorization.types.ts +2 -2
- package/package.json +14 -3
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SupportedEncodings } from 'uint8arrays/to-string';
|
|
2
|
+
import { CodeChallengeMethod } from '../types';
|
|
3
|
+
export declare const CODE_VERIFIER_DEFAULT_LENGTH = 128;
|
|
4
|
+
export declare const NONCE_LENGTH = 32;
|
|
5
|
+
export declare const generateRandomString: (length: number, encoding?: SupportedEncodings) => string;
|
|
6
|
+
export declare const generateNonce: (length?: number) => string;
|
|
7
|
+
export declare const generateCodeVerifier: (length?: number) => string;
|
|
8
|
+
export declare const createCodeChallenge: (codeVerifier: string, codeChallengeMethod?: CodeChallengeMethod) => string;
|
|
9
|
+
export declare const assertValidCodeVerifier: (codeVerifier: string) => void;
|
|
10
|
+
//# sourceMappingURL=RandomUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RandomUtils.d.ts","sourceRoot":"","sources":["../../lib/functions/RandomUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI/C,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,eAAO,MAAM,oBAAoB,WAAY,MAAM,aAAa,kBAAkB,KAAG,MAEpF,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,MAAM,KAAG,MAE/C,CAAC;AACF,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,MAItD,CAAC;AAEF,eAAO,MAAM,mBAAmB,iBAAkB,MAAM,wBAAwB,mBAAmB,KAAG,MASrG,CAAC;AAEF,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,SAO3D,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.assertValidCodeVerifier = exports.createCodeChallenge = exports.generateCodeVerifier = exports.generateNonce = exports.generateRandomString = exports.NONCE_LENGTH = exports.CODE_VERIFIER_DEFAULT_LENGTH = void 0;
|
|
30
|
+
const sha_js_1 = __importDefault(require("sha.js"));
|
|
31
|
+
const u8a = __importStar(require("uint8arrays"));
|
|
32
|
+
const types_1 = require("../types");
|
|
33
|
+
const randomBytes_1 = require("./randomBytes");
|
|
34
|
+
exports.CODE_VERIFIER_DEFAULT_LENGTH = 128;
|
|
35
|
+
exports.NONCE_LENGTH = 32;
|
|
36
|
+
const generateRandomString = (length, encoding) => {
|
|
37
|
+
return u8a.toString((0, randomBytes_1.randomBytes)(length), encoding).slice(0, length);
|
|
38
|
+
};
|
|
39
|
+
exports.generateRandomString = generateRandomString;
|
|
40
|
+
const generateNonce = (length) => {
|
|
41
|
+
return (0, exports.generateRandomString)(length !== null && length !== void 0 ? length : exports.NONCE_LENGTH);
|
|
42
|
+
};
|
|
43
|
+
exports.generateNonce = generateNonce;
|
|
44
|
+
const generateCodeVerifier = (length) => {
|
|
45
|
+
const codeVerifier = (0, exports.generateRandomString)(length !== null && length !== void 0 ? length : exports.CODE_VERIFIER_DEFAULT_LENGTH, 'base64url');
|
|
46
|
+
(0, exports.assertValidCodeVerifier)(codeVerifier);
|
|
47
|
+
return codeVerifier;
|
|
48
|
+
};
|
|
49
|
+
exports.generateCodeVerifier = generateCodeVerifier;
|
|
50
|
+
const createCodeChallenge = (codeVerifier, codeChallengeMethod) => {
|
|
51
|
+
if (codeChallengeMethod === types_1.CodeChallengeMethod.plain) {
|
|
52
|
+
return codeVerifier;
|
|
53
|
+
}
|
|
54
|
+
else if (!codeChallengeMethod || codeChallengeMethod === types_1.CodeChallengeMethod.S256) {
|
|
55
|
+
return u8a.toString((0, sha_js_1.default)('sha256').update(codeVerifier).digest(), 'base64url');
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Just a precaution if a new method would be introduced
|
|
59
|
+
throw Error(`code challenge method ${codeChallengeMethod} not implemented`);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
exports.createCodeChallenge = createCodeChallenge;
|
|
63
|
+
const assertValidCodeVerifier = (codeVerifier) => {
|
|
64
|
+
const length = codeVerifier.length;
|
|
65
|
+
if (length < 43) {
|
|
66
|
+
throw Error(`code_verifier should have a minimum length of 43; see rfc7636`);
|
|
67
|
+
}
|
|
68
|
+
else if (length > 128) {
|
|
69
|
+
throw Error(`code_verifier should have a maximum length of 128; see rfc7636`);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
exports.assertValidCodeVerifier = assertValidCodeVerifier;
|
|
73
|
+
//# sourceMappingURL=RandomUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RandomUtils.js","sourceRoot":"","sources":["../../lib/functions/RandomUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAyB;AACzB,iDAAmC;AAGnC,oCAA+C;AAE/C,+CAA4C;AAE/B,QAAA,4BAA4B,GAAG,GAAG,CAAC;AACnC,QAAA,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,QAA6B,EAAU,EAAE;IAC5F,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAA,yBAAW,EAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B;AAEK,MAAM,aAAa,GAAG,CAAC,MAAe,EAAU,EAAE;IACvD,OAAO,IAAA,4BAAoB,EAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,oBAAY,CAAC,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AACK,MAAM,oBAAoB,GAAG,CAAC,MAAe,EAAU,EAAE;IAC9D,MAAM,YAAY,GAAG,IAAA,4BAAoB,EAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,oCAA4B,EAAE,WAAW,CAAC,CAAC;IAC/F,IAAA,+BAAuB,EAAC,YAAY,CAAC,CAAC;IACtC,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAJW,QAAA,oBAAoB,wBAI/B;AAEK,MAAM,mBAAmB,GAAG,CAAC,YAAoB,EAAE,mBAAyC,EAAU,EAAE;IAC7G,IAAI,mBAAmB,KAAK,2BAAmB,CAAC,KAAK,EAAE,CAAC;QACtD,OAAO,YAAY,CAAC;IACtB,CAAC;SAAM,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,KAAK,2BAAmB,CAAC,IAAI,EAAE,CAAC;QACpF,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAA,gBAAG,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAChF,CAAC;SAAM,CAAC;QACN,wDAAwD;QACxD,MAAM,KAAK,CAAC,yBAAyB,mBAAmB,kBAAkB,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC;AATW,QAAA,mBAAmB,uBAS9B;AAEK,MAAM,uBAAuB,GAAG,CAAC,YAAoB,EAAE,EAAE;IAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACnC,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QAChB,MAAM,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC/E,CAAC;SAAM,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,uBAAuB,2BAOlC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomBytes } from './randomBytes.js';
|
|
1
2
|
export * from './CredentialRequestUtil';
|
|
2
3
|
export * from './CredentialResponseUtil';
|
|
3
4
|
export * from './CredentialOfferUtil';
|
|
@@ -5,4 +6,6 @@ export * from './Encoding';
|
|
|
5
6
|
export * from './TypeConversionUtils';
|
|
6
7
|
export * from './IssuerMetadataUtils';
|
|
7
8
|
export * from './FormatUtils';
|
|
9
|
+
export { randomBytes };
|
|
10
|
+
export * from './RandomUtils';
|
|
8
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,cAAc,eAAe,CAAC"}
|
package/dist/functions/index.js
CHANGED
|
@@ -14,6 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.randomBytes = void 0;
|
|
18
|
+
const randomBytes_js_1 = require("./randomBytes.js");
|
|
19
|
+
Object.defineProperty(exports, "randomBytes", { enumerable: true, get: function () { return randomBytes_js_1.randomBytes; } });
|
|
17
20
|
__exportStar(require("./CredentialRequestUtil"), exports);
|
|
18
21
|
__exportStar(require("./CredentialResponseUtil"), exports);
|
|
19
22
|
__exportStar(require("./CredentialOfferUtil"), exports);
|
|
@@ -21,4 +24,5 @@ __exportStar(require("./Encoding"), exports);
|
|
|
21
24
|
__exportStar(require("./TypeConversionUtils"), exports);
|
|
22
25
|
__exportStar(require("./IssuerMetadataUtils"), exports);
|
|
23
26
|
__exportStar(require("./FormatUtils"), exports);
|
|
27
|
+
__exportStar(require("./RandomUtils"), exports);
|
|
24
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAA+C;AAQtC,4FARA,4BAAW,OAQA;AAPpB,0DAAwC;AACxC,2DAAyC;AACzC,wDAAsC;AACtC,6CAA2B;AAC3B,wDAAsC;AACtC,wDAAsC;AACtC,gDAA8B;AAE9B,gDAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"randomBytes.d.ts","sourceRoot":"","sources":["../../lib/functions/randomBytes.js"],"names":[],"mappings":";AAUA,oCAEC;;;;AAuBD,oDAsBC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// limit of Crypto.getRandomValues()
|
|
3
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
|
|
4
|
+
const MAX_BYTES = 65536;
|
|
5
|
+
// Node supports requesting up to this number of bytes
|
|
6
|
+
// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48
|
|
7
|
+
const MAX_UINT32 = 4294967295;
|
|
8
|
+
function oldBrowser() {
|
|
9
|
+
throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11');
|
|
10
|
+
}
|
|
11
|
+
// eslint-disable-next-line no-undef
|
|
12
|
+
const _global = typeof globalThis !== 'undefined' ? globalThis : global;
|
|
13
|
+
let crypto = _global.crypto || _global.msCrypto;
|
|
14
|
+
if (!crypto) {
|
|
15
|
+
try {
|
|
16
|
+
// eslint-disable-next-line no-undef
|
|
17
|
+
crypto = require('crypto');
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
throw Error('crypto module is not available');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (crypto && crypto.getRandomValues) {
|
|
24
|
+
// eslint-disable-next-line no-undef
|
|
25
|
+
module.exports = randomBytes;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// eslint-disable-next-line no-undef
|
|
29
|
+
module.exports = oldBrowser;
|
|
30
|
+
}
|
|
31
|
+
function randomBytes(size) {
|
|
32
|
+
// phantomjs needs to throw
|
|
33
|
+
if (size > MAX_UINT32)
|
|
34
|
+
throw new Error('requested too many random bytes');
|
|
35
|
+
// eslint-disable-next-line no-undef
|
|
36
|
+
const bytes = Buffer.allocUnsafe(size);
|
|
37
|
+
if (size > 0) {
|
|
38
|
+
// getRandomValues fails on IE if size == 0
|
|
39
|
+
if (size > MAX_BYTES) {
|
|
40
|
+
// this is the max bytes crypto.getRandomValues
|
|
41
|
+
// can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
|
|
42
|
+
for (let generated = 0; generated < size; generated += MAX_BYTES) {
|
|
43
|
+
// buffer.slice automatically checks if the end is past the end of
|
|
44
|
+
// the buffer so we don't have to here
|
|
45
|
+
crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
crypto.getRandomValues(bytes);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return Uint8Array.from(bytes);
|
|
53
|
+
}
|
|
54
|
+
// eslint-disable-next-line no-undef
|
|
55
|
+
module.exports = { randomBytes };
|
|
56
|
+
//# sourceMappingURL=randomBytes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"randomBytes.js","sourceRoot":"","sources":["../../lib/functions/randomBytes.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,oCAAoC;AACpC,0EAA0E;AAC1E,MAAM,SAAS,GAAG,KAAK,CAAC;AAExB,sDAAsD;AACtD,+EAA+E;AAC/E,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B,SAAS,UAAU;IACjB,MAAM,IAAI,KAAK,CAAC,gHAAgH,CAAC,CAAC;AACpI,CAAC;AAED,oCAAoC;AACpC,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AAExE,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC;AAChD,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,IAAI,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;IACrC,oCAAoC;IACpC,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC;AAC/B,CAAC;KAAM,CAAC;IACN,oCAAoC;IACpC,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,IAAI;IACvB,2BAA2B;IAC3B,IAAI,IAAI,GAAG,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAE1E,oCAAoC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,2CAA2C;QAC3C,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC;YACrB,+CAA+C;YAC/C,oGAAoG;YACpG,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,SAAS,EAAE,CAAC;gBACjE,kEAAkE;gBAClE,sCAAsC;gBACtC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,oCAAoC;AACpC,MAAM,CAAC,OAAO,GAAG,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -133,8 +133,8 @@ export declare enum ResponseType {
|
|
|
133
133
|
AUTH_CODE = "code"
|
|
134
134
|
}
|
|
135
135
|
export declare enum CodeChallengeMethod {
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
plain = "plain",
|
|
137
|
+
S256 = "S256"
|
|
138
138
|
}
|
|
139
139
|
export interface AuthorizationServerOpts {
|
|
140
140
|
allowInsecureEndpoints?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Authorization.types.d.ts","sourceRoot":"","sources":["../../lib/types/Authorization.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,gCAAgC,EAChC,uBAAuB,EAExB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC;IACtC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;OASG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,qBAAqB,EAAE,mBAAmB,CAAC;IAC3C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,GAAG,oBAAoB,CAAC;IACtE;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,6BAA6B,GAAG,uCAAuC,GAAG,2BAA2B,GAAG,MAAM,CAAC;AAElJ,MAAM,MAAM,oBAAoB,GAAG,6BAA6B,GAAG,uCAAuC,GAAG,2BAA2B,CAAC;AAEzI,MAAM,WAAW,6BAA8B,SAAQ,0BAA0B;IAC/E,qBAAqB,CAAC,EAAE,6BAA6B,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,uCAAwC,SAAQ,0BAA0B;IACzF,qBAAqB,CAAC,EAAE,uCAAuC,EAAE,CAAC;CACnE;AAED,MAAM,WAAW,2BAA4B,SAAQ,0BAA0B;IAC7E,qBAAqB,CAAC,EAAE,2BAA2B,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAAC;IACnC;;;;;OAKG;IACH,MAAM,EAAE,uBAAuB,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAGrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,6BAA8B,SAAQ,0BAA0B;IAC/E,MAAM,EAAE,aAAa,GAAG,QAAQ,CAAC;IAEjC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAE5C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,uCAAwC,SAAQ,0BAA0B;IACzF,MAAM,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAEpC;;;;;;OAMG;IACH,qBAAqB,EAAE,gCAAgC,CAAC;CACzD;AAED,MAAM,WAAW,2BAA4B,SAAQ,0BAA0B;IAC7E,MAAM,EAAE,WAAW,CAAC;IAEpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED,oBAAY,UAAU;IACpB,kBAAkB,uBAAuB;IACzC,mBAAmB,yDAAyD;IAC5E,QAAQ,aAAa;CACtB;AAED,oBAAY,QAAQ;IAClB,gBAAgB,sCAAsC;IACtD,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,SAAS,SAAS;CACnB;AAED,oBAAY,mBAAmB;IAC7B,
|
|
1
|
+
{"version":3,"file":"Authorization.types.d.ts","sourceRoot":"","sources":["../../lib/types/Authorization.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,8 @@ var ResponseType;
|
|
|
19
19
|
})(ResponseType || (exports.ResponseType = ResponseType = {}));
|
|
20
20
|
var CodeChallengeMethod;
|
|
21
21
|
(function (CodeChallengeMethod) {
|
|
22
|
-
CodeChallengeMethod["
|
|
23
|
-
CodeChallengeMethod["
|
|
22
|
+
CodeChallengeMethod["plain"] = "plain";
|
|
23
|
+
CodeChallengeMethod["S256"] = "S256";
|
|
24
24
|
})(CodeChallengeMethod || (exports.CodeChallengeMethod = CodeChallengeMethod = {}));
|
|
25
25
|
var AuthzFlowType;
|
|
26
26
|
(function (AuthzFlowType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Authorization.types.js","sourceRoot":"","sources":["../../lib/types/Authorization.types.ts"],"names":[],"mappings":";;;AACA,mDAMyB;AA0IzB,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,uDAAyC,CAAA;IACzC,0FAA4E,CAAA;IAC5E,mCAAqB,CAAA;AACvB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,kEAAsD,CAAA;IACtD,2BAAe,CAAA;AACjB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED,IAAY,YAEX;AAFD,WAAY,YAAY;IACtB,kCAAkB,CAAA;AACpB,CAAC,EAFW,YAAY,4BAAZ,YAAY,QAEvB;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,
|
|
1
|
+
{"version":3,"file":"Authorization.types.js","sourceRoot":"","sources":["../../lib/types/Authorization.types.ts"],"names":[],"mappings":";;;AACA,mDAMyB;AA0IzB,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,uDAAyC,CAAA;IACzC,0FAA4E,CAAA;IAC5E,mCAAqB,CAAA;AACvB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,kEAAsD,CAAA;IACtD,2BAAe,CAAA;AACjB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED,IAAY,YAEX;AAFD,WAAY,YAAY;IACtB,kCAAkB,CAAA;AACpB,CAAC,EAFW,YAAY,4BAAZ,YAAY,QAEvB;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,oCAAa,CAAA;AACf,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B;AAsED,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,oEAAmD,CAAA;IACnD,sEAAqD,CAAA;AACvD,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,2DAA2D;AAC3D,WAAiB,aAAa;IAC5B,SAAgB,OAAO,CAAC,OAA+B;QACrD,IAAI,qCAAqB,IAAI,OAAO,EAAE,CAAC;YACrC,OAAO,aAAa,CAAC,wBAAwB,CAAC;QAChD,CAAC;QACD,OAAO,aAAa,CAAC,uBAAuB,CAAC;IAC/C,CAAC;IALe,qBAAO,UAKtB,CAAA;AACH,CAAC,EAPgB,aAAa,6BAAb,aAAa,QAO7B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { randomBytes } from '../functions';
|
|
2
|
+
|
|
3
|
+
import { UNIT_TEST_TIMEOUT } from './CredentialOfferUtil.spec';
|
|
4
|
+
|
|
5
|
+
describe('randomBytes should', () => {
|
|
6
|
+
it(
|
|
7
|
+
'generate random bytes of length 32',
|
|
8
|
+
() => {
|
|
9
|
+
const bytes = randomBytes(32);
|
|
10
|
+
expect(bytes).toBeDefined();
|
|
11
|
+
expect(bytes.length).toEqual(32);
|
|
12
|
+
},
|
|
13
|
+
UNIT_TEST_TIMEOUT,
|
|
14
|
+
);
|
|
15
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import SHA from 'sha.js';
|
|
2
|
+
import * as u8a from 'uint8arrays';
|
|
3
|
+
import { SupportedEncodings } from 'uint8arrays/to-string';
|
|
4
|
+
|
|
5
|
+
import { CodeChallengeMethod } from '../types';
|
|
6
|
+
|
|
7
|
+
import { randomBytes } from './randomBytes';
|
|
8
|
+
|
|
9
|
+
export const CODE_VERIFIER_DEFAULT_LENGTH = 128;
|
|
10
|
+
export const NONCE_LENGTH = 32;
|
|
11
|
+
|
|
12
|
+
export const generateRandomString = (length: number, encoding?: SupportedEncodings): string => {
|
|
13
|
+
return u8a.toString(randomBytes(length), encoding).slice(0, length);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const generateNonce = (length?: number): string => {
|
|
17
|
+
return generateRandomString(length ?? NONCE_LENGTH);
|
|
18
|
+
};
|
|
19
|
+
export const generateCodeVerifier = (length?: number): string => {
|
|
20
|
+
const codeVerifier = generateRandomString(length ?? CODE_VERIFIER_DEFAULT_LENGTH, 'base64url');
|
|
21
|
+
assertValidCodeVerifier(codeVerifier);
|
|
22
|
+
return codeVerifier;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const createCodeChallenge = (codeVerifier: string, codeChallengeMethod?: CodeChallengeMethod): string => {
|
|
26
|
+
if (codeChallengeMethod === CodeChallengeMethod.plain) {
|
|
27
|
+
return codeVerifier;
|
|
28
|
+
} else if (!codeChallengeMethod || codeChallengeMethod === CodeChallengeMethod.S256) {
|
|
29
|
+
return u8a.toString(SHA('sha256').update(codeVerifier).digest(), 'base64url');
|
|
30
|
+
} else {
|
|
31
|
+
// Just a precaution if a new method would be introduced
|
|
32
|
+
throw Error(`code challenge method ${codeChallengeMethod} not implemented`);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const assertValidCodeVerifier = (codeVerifier: string) => {
|
|
37
|
+
const length = codeVerifier.length;
|
|
38
|
+
if (length < 43) {
|
|
39
|
+
throw Error(`code_verifier should have a minimum length of 43; see rfc7636`);
|
|
40
|
+
} else if (length > 128) {
|
|
41
|
+
throw Error(`code_verifier should have a maximum length of 128; see rfc7636`);
|
|
42
|
+
}
|
|
43
|
+
};
|
package/lib/functions/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomBytes } from './randomBytes.js';
|
|
1
2
|
export * from './CredentialRequestUtil';
|
|
2
3
|
export * from './CredentialResponseUtil';
|
|
3
4
|
export * from './CredentialOfferUtil';
|
|
@@ -5,3 +6,5 @@ export * from './Encoding';
|
|
|
5
6
|
export * from './TypeConversionUtils';
|
|
6
7
|
export * from './IssuerMetadataUtils';
|
|
7
8
|
export * from './FormatUtils';
|
|
9
|
+
export { randomBytes };
|
|
10
|
+
export * from './RandomUtils';
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// limit of Crypto.getRandomValues()
|
|
4
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
|
|
5
|
+
const MAX_BYTES = 65536;
|
|
6
|
+
|
|
7
|
+
// Node supports requesting up to this number of bytes
|
|
8
|
+
// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48
|
|
9
|
+
const MAX_UINT32 = 4294967295;
|
|
10
|
+
|
|
11
|
+
function oldBrowser() {
|
|
12
|
+
throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// eslint-disable-next-line no-undef
|
|
16
|
+
const _global = typeof globalThis !== 'undefined' ? globalThis : global;
|
|
17
|
+
|
|
18
|
+
let crypto = _global.crypto || _global.msCrypto;
|
|
19
|
+
if (!crypto) {
|
|
20
|
+
try {
|
|
21
|
+
// eslint-disable-next-line no-undef
|
|
22
|
+
crypto = require('crypto');
|
|
23
|
+
} catch (err) {
|
|
24
|
+
throw Error('crypto module is not available');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (crypto && crypto.getRandomValues) {
|
|
29
|
+
// eslint-disable-next-line no-undef
|
|
30
|
+
module.exports = randomBytes;
|
|
31
|
+
} else {
|
|
32
|
+
// eslint-disable-next-line no-undef
|
|
33
|
+
module.exports = oldBrowser;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function randomBytes(size) {
|
|
37
|
+
// phantomjs needs to throw
|
|
38
|
+
if (size > MAX_UINT32) throw new Error('requested too many random bytes');
|
|
39
|
+
|
|
40
|
+
// eslint-disable-next-line no-undef
|
|
41
|
+
const bytes = Buffer.allocUnsafe(size);
|
|
42
|
+
|
|
43
|
+
if (size > 0) {
|
|
44
|
+
// getRandomValues fails on IE if size == 0
|
|
45
|
+
if (size > MAX_BYTES) {
|
|
46
|
+
// this is the max bytes crypto.getRandomValues
|
|
47
|
+
// can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
|
|
48
|
+
for (let generated = 0; generated < size; generated += MAX_BYTES) {
|
|
49
|
+
// buffer.slice automatically checks if the end is past the end of
|
|
50
|
+
// the buffer so we don't have to here
|
|
51
|
+
crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES));
|
|
52
|
+
}
|
|
53
|
+
} else {
|
|
54
|
+
crypto.getRandomValues(bytes);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return Uint8Array.from(bytes);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// eslint-disable-next-line no-undef
|
|
61
|
+
module.exports = { randomBytes };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/oid4vci-common",
|
|
3
|
-
"version": "0.8.2-unstable.
|
|
3
|
+
"version": "0.8.2-unstable.48+99f55c2",
|
|
4
4
|
"description": "OpenID 4 Verifiable Credential Issuance Common Types",
|
|
5
5
|
"source": "lib/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -12,12 +12,23 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@sphereon/ssi-types": "^0.18.1",
|
|
14
14
|
"cross-fetch": "^3.1.8",
|
|
15
|
-
"jwt-decode": "^3.1.2"
|
|
15
|
+
"jwt-decode": "^3.1.2",
|
|
16
|
+
"sha.js": "^2.4.11",
|
|
17
|
+
"uint8arrays": "3.1.1"
|
|
16
18
|
},
|
|
17
19
|
"devDependencies": {
|
|
18
20
|
"@types/jest": "^29.5.3",
|
|
21
|
+
"@types/sha.js": "^2.4.4",
|
|
19
22
|
"typescript": "5.3.3"
|
|
20
23
|
},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"msrcrypto": "^1.5.8"
|
|
26
|
+
},
|
|
27
|
+
"peerDependenciesMeta": {
|
|
28
|
+
"msrcrypto": {
|
|
29
|
+
"optional": true
|
|
30
|
+
}
|
|
31
|
+
},
|
|
21
32
|
"engines": {
|
|
22
33
|
"node": ">=18"
|
|
23
34
|
},
|
|
@@ -46,5 +57,5 @@
|
|
|
46
57
|
"publishConfig": {
|
|
47
58
|
"access": "public"
|
|
48
59
|
},
|
|
49
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "99f55c23e907022954b0eb169e276f3ef9ffb8ae"
|
|
50
61
|
}
|