This commit is contained in:
2022-07-21 03:28:35 +00:00
parent d7c883d6df
commit 51b34b0e1d
30103 changed files with 4152204 additions and 23 deletions
+141
View File
@@ -0,0 +1,141 @@
"use strict";
/**
* encoder.js
*/
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var env = __importStar(require("./env"));
/**
* Encode ArrayBuffer or TypedArray To Base64
* @param data
* @return {*}
*/
exports.encodeBase64 = function (data) {
var str = '';
if (typeof data === 'string')
str = data;
else
str = exports.arrayBufferToString(data);
var btoa = env.getEnvBtoa();
return btoa(str);
};
/**
* Decode Base64 to Uint8Array
* @param str
* @return {Uint8Array|string|*}
*/
exports.decodeBase64 = function (str) {
var atob = env.getEnvAtob();
var binary = atob(str);
var data = exports.stringToArrayBuffer(binary);
return getAsciiIfAscii(data);
};
/**
* if input data is an ArrayBuffer or TypedArray, it would be returned as Uint8Array
* @param data
* @return {Uint8Array}
*/
var sanitizeTypedArrayAndArrayBuffer = function (data) {
if (data instanceof Uint8Array)
return data;
if (ArrayBuffer.isView(data) && typeof data.buffer !== 'undefined') { // TypedArray except Uint8Array
return new Uint8Array(data.buffer);
}
else if (data instanceof ArrayBuffer) { // ArrayBuffer
return new Uint8Array(data);
}
else
throw new Error('Input must be an ArrayBuffer or a TypedArray');
};
/**
* Check if the given Uint8Array can be expressed in Ascii Text
* @param data
* @return {Uint8Array|string|*}
*/
var getAsciiIfAscii = function (data) {
var flag = true;
for (var i = 0; i < data.length; i++) {
if (data[i] > 0x7e || (data[i] < 0x20 && data[i] !== 0x0d && data[i] !== 0x0a)) {
flag = false;
break;
}
}
var returnData = null;
if (flag) {
returnData = '';
for (var i = 0; i < data.length; i++)
returnData += String.fromCharCode(data[i]);
}
else
returnData = data;
return returnData;
};
/**
* Encode ArrayBuffer or TypedArray to base64url string
* @param data
* @return {string}
*/
exports.encodeBase64Url = function (data) { return exports.encodeBase64(data).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); };
/**
* Decode Base64Url string to Uint8Array
* @param str
* @return {Uint8Array}
*/
exports.decodeBase64Url = function (str) {
str = str.replace(/-/g, '+').replace(/_/g, '/');
// str = str + "=".repeat(str.length % 4); // this sometimes causes error...
return exports.decodeBase64(str);
};
/**
* Encode ArrayBuffer or TypedArray to hex string
* @param data
* @return {string}
*/
exports.arrayBufferToHexString = function (data) {
var arr = sanitizeTypedArrayAndArrayBuffer(data);
var hexStr = '';
for (var i = 0; i < arr.length; i++) {
var hex = (arr[i] & 0xff).toString(16);
hex = (hex.length === 1) ? "0" + hex : hex;
hexStr += hex;
}
return hexStr;
};
/**
* Decode hex string to Uint8Array
* @param str
* @return {Uint8Array}
*/
exports.hexStringToArrayBuffer = function (str) {
var arr = [];
var len = str.length;
for (var i = 0; i < len; i += 2)
arr.push(parseInt(str.substr(i, 2), 16));
return new Uint8Array(arr);
};
/**
* Encode ArrayBuffer or TypedArray to string with code (like output of legacy atob)
* @param data
* @return {string}
*/
exports.arrayBufferToString = function (data) {
var bytes = sanitizeTypedArrayAndArrayBuffer(data);
var arr = new Array(bytes.length);
bytes.forEach(function (x, i) { arr[i] = x; });
return String.fromCharCode.apply(null, arr);
};
/**
* Decode string with code (like output of legacy atob) to Uint8Array
* @param str
* @return {Uint8Array}
*/
exports.stringToArrayBuffer = function (str) {
var bytes = new Uint8Array(str.length);
return bytes.map(function (_x, i) { return str.charCodeAt(i); });
};
+40
View File
@@ -0,0 +1,40 @@
"use strict";
/**
* this module handles the difference between window (browser) and node js for specific functions and libraries.
* env.js
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.getEnvBtoa = function () {
if (typeof window !== 'undefined')
return window.btoa; // browser
else
return nodeBtoa; // node
};
exports.getEnvAtob = function () {
if (typeof window !== 'undefined')
return window.atob; // browser
else
return nodeAtob; // node
};
var nodeBtoa = function (str) {
if (typeof Buffer === 'undefined')
throw new Error('UnsupportedEnvironment');
var buffer;
var type = Object.prototype.toString.call(str).slice(8, -1);
var typedArrays = ['ArrayBuffer', 'TypedArray', 'Uint8Array', 'Int8Array', 'Uint8ClampedArray', 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', 'Float32Array', 'Float64Array'];
if (Buffer.isBuffer(str)) {
buffer = str;
}
else if (typedArrays.indexOf(type) >= 0) {
buffer = Buffer.from(str);
}
else {
buffer = Buffer.from(str.toString(), 'binary');
}
return buffer.toString('base64');
};
var nodeAtob = function (str) {
if (typeof Buffer === 'undefined')
throw new Error('UnsupportedEnvironment');
return Buffer.from(str, 'base64').toString('binary');
};
+77
View File
@@ -0,0 +1,77 @@
"use strict";
/**
* formatter.js
*/
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var encoder = __importStar(require("./encoder"));
var supportedPEMTypes = {
'public': 'PUBLIC KEY',
'private': 'PRIVATE KEY',
'encryptedPrivate': 'ENCRYPTED PRIVATE KEY',
'certificate': 'CERTIFICATE',
'certRequest': 'CERTIFICATE REQUEST'
};
/**
* Convert PEM armored string to Uint8Array
* @param keydataB64Pem
* @return {Uint8Array}
*/
exports.pemToBin = function (keydataB64Pem) {
var keydataB64 = dearmorPem(keydataB64Pem);
return encoder.decodeBase64(keydataB64);
};
/**
* Convert ArrayBuffer or TypedArray to PEM armored string with a specified type
* @param keydata
* @param type
* @return {string}
*/
exports.binToPem = function (keydata, type) {
var keydataB64 = encoder.encodeBase64(keydata);
return formatAsPem(keydataB64, type);
};
/**
* Armor the given Base64 string and return PEM formatted string
* @param str
* @param type
* @return {string}
*/
var formatAsPem = function (str, type) {
if (Object.keys(supportedPEMTypes).indexOf(type) < 0)
throw new Error('Unsupported type');
var typeString = supportedPEMTypes[type];
var finalString = "-----BEGIN " + typeString + "-----\n";
while (str.length > 0) {
finalString += str.substring(0, 64) + "\n";
str = str.substring(64);
}
finalString = finalString + "-----END " + typeString + "-----";
return finalString;
};
/**
* Dearmor the given PEM string and return Base64 string
* @param str
* @return {string}
*/
var dearmorPem = function (str) {
// const beginRegExp = RegExp('^-----[\s]*BEGIN[^-]*KEY-----$', 'gm');
// const endRegExp = RegExp('^-----[\s]*END[^-]*KEY-----$', 'gm');
var beginRegExp = RegExp('^-----[\s]*BEGIN[^-]*-----$', 'gm');
var endRegExp = RegExp('^-----[\s]*END[^-]*-----$', 'gm');
// check if the object starts from 'begin'
try {
var dearmored = str.split(beginRegExp)[1].split(endRegExp)[0];
dearmored = dearmored.replace(/\r?\n/g, '');
return dearmored;
}
catch (e) {
throw new Error('Invalid format as PEM');
}
};
+17
View File
@@ -0,0 +1,17 @@
"use strict";
/**
* index.ts
**/
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var encoder = __importStar(require("./encoder"));
exports.encoder = encoder;
var formatter = __importStar(require("./formatter"));
exports.formatter = formatter;
exports.default = { encoder: encoder, formatter: formatter };
+1
View File
@@ -0,0 +1 @@
!function(r,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.jseu=e():r.jseu=e()}(this,function(){return function(r){var e={};function t(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return r[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=r,t.c=e,t.d=function(r,e,n){t.o(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:n})},t.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},t.t=function(r,e){if(1&e&&(r=t(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var o in r)t.d(n,o,function(e){return r[e]}.bind(null,o));return n},t.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(e,"a",e),e},t.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},t.p="/home/circleci/repo/dist",t(t.s=1)}([function(r,e,t){"use strict";var n=this&&this.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(null!=r)for(var t in r)Object.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e.default=r,e};Object.defineProperty(e,"__esModule",{value:!0});var o=n(t(3));e.encodeBase64=function(r){var t="";return t="string"==typeof r?r:e.arrayBufferToString(r),o.getEnvBtoa()(t)},e.decodeBase64=function(r){var t=o.getEnvAtob()(r),n=e.stringToArrayBuffer(t);return i(n)};var u=function(r){if(r instanceof Uint8Array)return r;if(ArrayBuffer.isView(r)&&void 0!==r.buffer)return new Uint8Array(r.buffer);if(r instanceof ArrayBuffer)return new Uint8Array(r);throw new Error("Input must be an ArrayBuffer or a TypedArray")},i=function(r){for(var e=!0,t=0;t<r.length;t++)if(r[t]>126||r[t]<32&&13!==r[t]&&10!==r[t]){e=!1;break}var n=null;if(e){n="";for(t=0;t<r.length;t++)n+=String.fromCharCode(r[t])}else n=r;return n};e.encodeBase64Url=function(r){return e.encodeBase64(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},e.decodeBase64Url=function(r){return r=r.replace(/-/g,"+").replace(/_/g,"/"),e.decodeBase64(r)},e.arrayBufferToHexString=function(r){for(var e=u(r),t="",n=0;n<e.length;n++){var o=(255&e[n]).toString(16);t+=o=1===o.length?"0"+o:o}return t},e.hexStringToArrayBuffer=function(r){for(var e=[],t=r.length,n=0;n<t;n+=2)e.push(parseInt(r.substr(n,2),16));return new Uint8Array(e)},e.arrayBufferToString=function(r){var e=u(r),t=new Array(e.length);return e.forEach(function(r,e){t[e]=r}),String.fromCharCode.apply(null,t)},e.stringToArrayBuffer=function(r){return new Uint8Array(r.length).map(function(e,t){return r.charCodeAt(t)})}},function(r,e,t){r.exports=t(2)},function(r,e,t){"use strict";var n=this&&this.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(null!=r)for(var t in r)Object.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e.default=r,e};Object.defineProperty(e,"__esModule",{value:!0});n(t(0)),n(t(4))},function(r,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getEnvBtoa=function(){return"undefined"!=typeof window?window.btoa:n},e.getEnvAtob=function(){return"undefined"!=typeof window?window.atob:o};var n=function(r){if("undefined"==typeof Buffer)throw new Error("UnsupportedEnvironment");var e=Object.prototype.toString.call(r).slice(8,-1);return(Buffer.isBuffer(r)?r:["ArrayBuffer","TypedArray","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"].indexOf(e)>=0?Buffer.from(r):Buffer.from(r.toString(),"binary")).toString("base64")},o=function(r){if("undefined"==typeof Buffer)throw new Error("UnsupportedEnvironment");return Buffer.from(r,"base64").toString("binary")}},function(r,e,t){"use strict";var n=this&&this.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(null!=r)for(var t in r)Object.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e.default=r,e};Object.defineProperty(e,"__esModule",{value:!0});var o=n(t(0)),u={public:"PUBLIC KEY",private:"PRIVATE KEY",encryptedPrivate:"ENCRYPTED PRIVATE KEY",certificate:"CERTIFICATE",certRequest:"CERTIFICATE REQUEST"};e.pemToBin=function(r){var e=f(r);return o.decodeBase64(e)},e.binToPem=function(r,e){var t=o.encodeBase64(r);return i(t,e)};var i=function(r,e){if(Object.keys(u).indexOf(e)<0)throw new Error("Unsupported type");for(var t=u[e],n="-----BEGIN "+t+"-----\n";r.length>0;)n+=r.substring(0,64)+"\n",r=r.substring(64);return n=n+"-----END "+t+"-----"},f=function(r){var e=RegExp("^-----[s]*BEGIN[^-]*-----$","gm"),t=RegExp("^-----[s]*END[^-]*-----$","gm");try{var n=r.split(e)[1].split(t)[0];return n=n.replace(/\r?\n/g,"")}catch(r){throw new Error("Invalid format as PEM")}}}])});