idmission-web-sdk 1.0.61 → 1.0.62
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/index.js +7 -0
- package/dist/sdk2.cjs.development.js +51 -14
- package/dist/sdk2.cjs.development.js.map +1 -1
- package/dist/sdk2.cjs.production.js +1 -1
- package/dist/sdk2.cjs.production.js.map +1 -1
- package/dist/sdk2.esm.js +51 -14
- package/dist/sdk2.esm.js.map +1 -1
- package/dist/sdk2.umd.development.js +20072 -0
- package/dist/sdk2.umd.development.js.map +1 -0
- package/dist/sdk2.umd.production.js +2 -0
- package/dist/sdk2.umd.production.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/package.json +1 -3
package/dist/index.js
ADDED
|
@@ -7,7 +7,6 @@ var React = require('react');
|
|
|
7
7
|
var ReactDOM = require('react-dom/client');
|
|
8
8
|
var styled = require('styled-components');
|
|
9
9
|
var reactI18next = require('react-i18next');
|
|
10
|
-
var jsrsasign = require('jsrsasign');
|
|
11
10
|
var tf = require('@tensorflow/tfjs');
|
|
12
11
|
var useResizeObserver = require('use-resize-observer');
|
|
13
12
|
var LanguageDetector = require('i18next-browser-languagedetector');
|
|
@@ -47,7 +46,7 @@ var LanguageDetector__default = /*#__PURE__*/_interopDefaultLegacy(LanguageDetec
|
|
|
47
46
|
var i18n__default = /*#__PURE__*/_interopDefaultLegacy(i18n);
|
|
48
47
|
var SignatureCanvas__default = /*#__PURE__*/_interopDefaultLegacy(SignatureCanvas);
|
|
49
48
|
|
|
50
|
-
var webSdkVersion = '1.0.
|
|
49
|
+
var webSdkVersion = '1.0.62';
|
|
51
50
|
|
|
52
51
|
function getPlatform() {
|
|
53
52
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -1108,7 +1107,7 @@ var SubmissionProvider = function SubmissionProvider(_a) {
|
|
|
1108
1107
|
React.useEffect(function () {
|
|
1109
1108
|
(function () {
|
|
1110
1109
|
return tslib.__awaiter(void 0, void 0, void 0, function () {
|
|
1111
|
-
var parsed, iss, publicKey, resp, e_3, valid, exp;
|
|
1110
|
+
var parsed, iss, publicKey, resp, e_3, valid, parts, e_4, exp;
|
|
1112
1111
|
return tslib.__generator(this, function (_a) {
|
|
1113
1112
|
switch (_a.label) {
|
|
1114
1113
|
case 0:
|
|
@@ -1123,28 +1122,44 @@ var SubmissionProvider = function SubmissionProvider(_a) {
|
|
|
1123
1122
|
iss = parsed.iss;
|
|
1124
1123
|
_a.label = 1;
|
|
1125
1124
|
case 1:
|
|
1126
|
-
_a.trys.push([1,
|
|
1125
|
+
_a.trys.push([1, 4,, 5]);
|
|
1127
1126
|
return [4 /*yield*/, fetch(iss).then(function (r) {
|
|
1128
1127
|
return r.json();
|
|
1129
1128
|
})];
|
|
1130
1129
|
case 2:
|
|
1131
1130
|
resp = _a.sent();
|
|
1132
|
-
|
|
1133
|
-
return [3 /*break*/, 4];
|
|
1131
|
+
return [4 /*yield*/, importRsaKey("-----BEGIN PUBLIC KEY-----\n".concat(resp.public_key, "\n-----END PUBLIC KEY-----"))];
|
|
1134
1132
|
case 3:
|
|
1133
|
+
publicKey = _a.sent();
|
|
1134
|
+
return [3 /*break*/, 5];
|
|
1135
|
+
case 4:
|
|
1135
1136
|
e_3 = _a.sent();
|
|
1136
1137
|
console.error('error fetching public key', e_3);
|
|
1137
1138
|
setTokenError(new TokenPublicKeyError(e_3, iss));
|
|
1138
1139
|
return [2 /*return*/, setTokenState('PUBLIC_KEY_LOAD_FAILED')];
|
|
1139
|
-
case
|
|
1140
|
+
case 5:
|
|
1140
1141
|
valid = false;
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
}
|
|
1142
|
+
_a.label = 6;
|
|
1143
|
+
case 6:
|
|
1144
|
+
_a.trys.push([6, 8,, 9]);
|
|
1145
|
+
parts = token.split('.');
|
|
1146
|
+
return [4 /*yield*/, window.crypto.subtle.verify({
|
|
1147
|
+
name: 'RSASSA-PKCS1-v1_5'
|
|
1148
|
+
}, publicKey,
|
|
1149
|
+
//from generateKey or importKey above
|
|
1150
|
+
str2ab(parts[1]),
|
|
1151
|
+
//ArrayBuffer of the signature
|
|
1152
|
+
str2ab(parts[2]) //ArrayBuffer of the data
|
|
1153
|
+
)];
|
|
1154
|
+
case 7:
|
|
1155
|
+
_a.sent();
|
|
1156
|
+
valid = true;
|
|
1157
|
+
return [3 /*break*/, 9];
|
|
1158
|
+
case 8:
|
|
1159
|
+
e_4 = _a.sent();
|
|
1160
|
+
console.error('error validating token', e_4);
|
|
1161
|
+
return [3 /*break*/, 9];
|
|
1162
|
+
case 9:
|
|
1148
1163
|
if (!valid) return [2 /*return*/, setTokenState('INVALID_SIGNATURE')];
|
|
1149
1164
|
exp = parsed.exp;
|
|
1150
1165
|
if (Date.now() >= exp * 1000) {
|
|
@@ -1211,6 +1226,28 @@ var SubmissionProvider = function SubmissionProvider(_a) {
|
|
|
1211
1226
|
onRetry: onRetry
|
|
1212
1227
|
})));
|
|
1213
1228
|
};
|
|
1229
|
+
function str2ab(str) {
|
|
1230
|
+
var buf = new ArrayBuffer(str.length);
|
|
1231
|
+
var bufView = new Uint8Array(buf);
|
|
1232
|
+
for (var i = 0, strLen = str.length; i < strLen; i++) {
|
|
1233
|
+
bufView[i] = str.charCodeAt(i);
|
|
1234
|
+
}
|
|
1235
|
+
return buf;
|
|
1236
|
+
}
|
|
1237
|
+
function importRsaKey(pem) {
|
|
1238
|
+
// fetch the part of the PEM string between header and footer
|
|
1239
|
+
var pemHeader = '-----BEGIN PUBLIC KEY-----';
|
|
1240
|
+
var pemFooter = '-----END PUBLIC KEY-----';
|
|
1241
|
+
var pemContents = pem.substring(pemHeader.length, pem.length - pemFooter.length - 1);
|
|
1242
|
+
// base64 decode the string to get the binary data
|
|
1243
|
+
var binaryDerString = window.atob(pemContents);
|
|
1244
|
+
// convert from a binary string to an ArrayBuffer
|
|
1245
|
+
var binaryDer = str2ab(binaryDerString);
|
|
1246
|
+
return window.crypto.subtle.importKey('spki', binaryDer, {
|
|
1247
|
+
name: 'RSASSA-PKCS1-v1_5',
|
|
1248
|
+
hash: 'SHA-256'
|
|
1249
|
+
}, true, ['verify']);
|
|
1250
|
+
}
|
|
1214
1251
|
|
|
1215
1252
|
var DocumentType;
|
|
1216
1253
|
(function (DocumentType) {
|