@super-protocol/sdk-js 3.0.3 → 3.0.4
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/crypto/index.d.ts +1 -0
- package/dist/cjs/crypto/index.js +15 -1
- package/dist/cjs/crypto/nodejs/NativeCrypto.d.ts +0 -12
- package/dist/cjs/crypto/nodejs/NativeCrypto.js +9 -20
- package/dist/cjs/crypto/utils.d.ts +13 -0
- package/dist/cjs/crypto/utils.js +25 -0
- package/dist/mjs/crypto/index.d.ts +1 -0
- package/dist/mjs/crypto/index.js +2 -1
- package/dist/mjs/crypto/nodejs/NativeCrypto.d.ts +0 -12
- package/dist/mjs/crypto/nodejs/NativeCrypto.js +9 -20
- package/dist/mjs/crypto/utils.d.ts +13 -0
- package/dist/mjs/crypto/utils.js +16 -0
- package/package.json +1 -1
package/dist/cjs/crypto/index.js
CHANGED
|
@@ -10,14 +10,28 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
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
|
+
});
|
|
13
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
20
|
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
16
28
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
29
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
30
|
};
|
|
19
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.cryptoUtils = void 0;
|
|
20
33
|
const Crypto_js_1 = __importDefault(require("./Crypto.js"));
|
|
21
34
|
exports.default = Crypto_js_1.default;
|
|
22
35
|
__exportStar(require("./types.js"), exports);
|
|
23
|
-
|
|
36
|
+
exports.cryptoUtils = __importStar(require("./utils.js"));
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNERBQWlDO0FBQ2pDLGtCQUFlLG1CQUFNLENBQUM7QUFDdEIsNkNBQTJCO0FBQzNCLDBEQUEwQyJ9
|
|
@@ -10,18 +10,6 @@ import { Encoding, EncryptionWithMacIV, Hash, HashAlgorithm } from '@super-proto
|
|
|
10
10
|
*
|
|
11
11
|
*/
|
|
12
12
|
declare class NativeCrypto {
|
|
13
|
-
/**
|
|
14
|
-
* Here would be better to check cipher type using
|
|
15
|
-
* ```
|
|
16
|
-
* getCipherInfo(cipher)!.mode === 'mode'
|
|
17
|
-
* ```
|
|
18
|
-
* but it doesn't work in browser
|
|
19
|
-
*/
|
|
20
|
-
static readonly isCCM: (cipher: string) => boolean;
|
|
21
|
-
static readonly isGCM: (cipher: string) => boolean;
|
|
22
|
-
static readonly isOCB: (cipher: string) => boolean;
|
|
23
|
-
static readonly isECB: (cipher: string) => boolean;
|
|
24
|
-
static readonly isRC4: (cipher: string) => boolean;
|
|
25
13
|
/**
|
|
26
14
|
* Here would be better to check cipher type using
|
|
27
15
|
* ```
|
|
@@ -3,22 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const crypto_1 = require("crypto");
|
|
4
4
|
const events_1 = require("events");
|
|
5
5
|
const dto_js_1 = require("@super-protocol/dto-js");
|
|
6
|
+
const utils_js_1 = require("../utils.js");
|
|
6
7
|
/**
|
|
7
8
|
*
|
|
8
9
|
*/
|
|
9
10
|
class NativeCrypto {
|
|
10
|
-
/**
|
|
11
|
-
* Here would be better to check cipher type using
|
|
12
|
-
* ```
|
|
13
|
-
* getCipherInfo(cipher)!.mode === 'mode'
|
|
14
|
-
* ```
|
|
15
|
-
* but it doesn't work in browser
|
|
16
|
-
*/
|
|
17
|
-
static isCCM = (cipher) => /ccm/i.test(cipher) || cipher === 'chacha20-poly1305';
|
|
18
|
-
static isGCM = (cipher) => /gcm/i.test(cipher);
|
|
19
|
-
static isOCB = (cipher) => /ocb/i.test(cipher);
|
|
20
|
-
static isECB = (cipher) => /ecb/i.test(cipher) || cipher === 'des-ede' || cipher === 'des-ede3';
|
|
21
|
-
static isRC4 = (cipher) => /^rc4/i.test(cipher);
|
|
22
11
|
/**
|
|
23
12
|
* Here would be better to check cipher type using
|
|
24
13
|
* ```
|
|
@@ -55,7 +44,7 @@ class NativeCrypto {
|
|
|
55
44
|
* but it doesn't work in browser
|
|
56
45
|
*/
|
|
57
46
|
static getIVLength(cipher) {
|
|
58
|
-
if (
|
|
47
|
+
if ((0, utils_js_1.isCCM)(cipher) || (0, utils_js_1.isGCM)(cipher) || (0, utils_js_1.isOCB)(cipher)) {
|
|
59
48
|
return 12;
|
|
60
49
|
}
|
|
61
50
|
if (/wrap\-pad/.test(cipher)) {
|
|
@@ -75,10 +64,10 @@ class NativeCrypto {
|
|
|
75
64
|
return (0, crypto_1.randomBytes)(length);
|
|
76
65
|
}
|
|
77
66
|
static createCipher(cipher, key, iv) {
|
|
78
|
-
if (
|
|
67
|
+
if ((0, utils_js_1.isECB)(cipher) || (0, utils_js_1.isRC4)(cipher)) {
|
|
79
68
|
throw new Error(`Cipher "${cipher}" is not supported`);
|
|
80
69
|
}
|
|
81
|
-
if (
|
|
70
|
+
if ((0, utils_js_1.isCCM)(cipher) || (0, utils_js_1.isOCB)(cipher)) {
|
|
82
71
|
const options = {
|
|
83
72
|
authTagLength: 16,
|
|
84
73
|
};
|
|
@@ -88,7 +77,7 @@ class NativeCrypto {
|
|
|
88
77
|
}
|
|
89
78
|
static createDecipher(cipher, key, iv, mac) {
|
|
90
79
|
const options = {};
|
|
91
|
-
if (
|
|
80
|
+
if ((0, utils_js_1.isCCM)(cipher) || (0, utils_js_1.isOCB)(cipher)) {
|
|
92
81
|
options.authTagLength = 16;
|
|
93
82
|
}
|
|
94
83
|
const decipher = (0, crypto_1.createDecipheriv)(cipher, key, iv, options);
|
|
@@ -105,10 +94,10 @@ class NativeCrypto {
|
|
|
105
94
|
const cipher = this.createCipher(cipherName, key, iv);
|
|
106
95
|
result.ciphertext = cipher.update(content, inputEncoding, outputEncoding);
|
|
107
96
|
result.ciphertext += cipher.final(outputEncoding);
|
|
108
|
-
if (!
|
|
97
|
+
if (!(0, utils_js_1.isECB)(cipherName) && !(0, utils_js_1.isRC4)(cipherName)) {
|
|
109
98
|
result.iv = iv.toString(outputEncoding);
|
|
110
99
|
}
|
|
111
|
-
if (
|
|
100
|
+
if ((0, utils_js_1.isCCM)(cipherName) || (0, utils_js_1.isGCM)(cipherName) || (0, utils_js_1.isOCB)(cipherName)) {
|
|
112
101
|
result.mac = cipher.getAuthTag().toString(outputEncoding);
|
|
113
102
|
}
|
|
114
103
|
return result;
|
|
@@ -120,7 +109,7 @@ class NativeCrypto {
|
|
|
120
109
|
inputStream.pipe(cipher).pipe(outputStream);
|
|
121
110
|
await (0, events_1.once)(outputStream, 'finish');
|
|
122
111
|
result.iv = iv.toString(encoding);
|
|
123
|
-
if (
|
|
112
|
+
if ((0, utils_js_1.isCCM)(cipherName) || (0, utils_js_1.isGCM)(cipherName) || (0, utils_js_1.isOCB)(cipherName)) {
|
|
124
113
|
result.mac = cipher.getAuthTag().toString(encoding);
|
|
125
114
|
}
|
|
126
115
|
return result;
|
|
@@ -162,4 +151,4 @@ class NativeCrypto {
|
|
|
162
151
|
}
|
|
163
152
|
}
|
|
164
153
|
exports.default = NativeCrypto;
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF0aXZlQ3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NyeXB0by9ub2RlanMvTmF0aXZlQ3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsbUNBVWdCO0FBRWhCLG1DQUE4QjtBQUM5QixtREFBNEY7QUFDNUYsMENBQWdFO0FBRWhFOztHQUVHO0FBQ0gsTUFBTSxZQUFZO0lBQ2hCOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBYztRQUN2QyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUsseUJBQXlCLEVBQUUsQ0FBQztZQUNqRixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUssMEJBQTBCLEVBQUUsQ0FBQztZQUNyRixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQWM7UUFDdEMsSUFBSSxJQUFBLGdCQUFLLEVBQUMs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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Here would be better to check cipher type using
|
|
3
|
+
* ```
|
|
4
|
+
* getCipherInfo(cipher)!.mode === 'mode'
|
|
5
|
+
* ```
|
|
6
|
+
* but it doesn't work in browser
|
|
7
|
+
*/
|
|
8
|
+
export declare const isCCM: (cipher: string) => boolean;
|
|
9
|
+
export declare const isGCM: (cipher: string) => boolean;
|
|
10
|
+
export declare const isOCB: (cipher: string) => boolean;
|
|
11
|
+
export declare const isECB: (cipher: string) => boolean;
|
|
12
|
+
export declare const isRC4: (cipher: string) => boolean;
|
|
13
|
+
export declare const isAuthTagRequired: (cipherName: string) => boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isAuthTagRequired = exports.isRC4 = exports.isECB = exports.isOCB = exports.isGCM = exports.isCCM = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Here would be better to check cipher type using
|
|
6
|
+
* ```
|
|
7
|
+
* getCipherInfo(cipher)!.mode === 'mode'
|
|
8
|
+
* ```
|
|
9
|
+
* but it doesn't work in browser
|
|
10
|
+
*/
|
|
11
|
+
const isCCM = (cipher) => /ccm/i.test(cipher) || cipher === 'chacha20-poly1305';
|
|
12
|
+
exports.isCCM = isCCM;
|
|
13
|
+
const isGCM = (cipher) => /gcm/i.test(cipher);
|
|
14
|
+
exports.isGCM = isGCM;
|
|
15
|
+
const isOCB = (cipher) => /ocb/i.test(cipher);
|
|
16
|
+
exports.isOCB = isOCB;
|
|
17
|
+
const isECB = (cipher) => /ecb/i.test(cipher) || cipher === 'des-ede' || cipher === 'des-ede3';
|
|
18
|
+
exports.isECB = isECB;
|
|
19
|
+
const isRC4 = (cipher) => /^rc4/i.test(cipher);
|
|
20
|
+
exports.isRC4 = isRC4;
|
|
21
|
+
const isAuthTagRequired = (cipherName) => {
|
|
22
|
+
return (0, exports.isCCM)(cipherName) || (0, exports.isGCM)(cipherName) || (0, exports.isOCB)(cipherName);
|
|
23
|
+
};
|
|
24
|
+
exports.isAuthTagRequired = isAuthTagRequired;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7R0FNRztBQUNJLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUssbUJBQW1CLENBQUM7QUFEM0MsUUFBQSxLQUFLLFNBQ3NDO0FBQ2pELE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQXpELFFBQUEsS0FBSyxTQUFvRDtBQUMvRCxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUF6RCxRQUFBLEtBQUssU0FBb0Q7QUFDL0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLFVBQVUsQ0FBQztBQUQxRCxRQUFBLEtBQUssU0FDcUQ7QUFDaEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFBMUQsUUFBQSxLQUFLLFNBQXFEO0FBRWhFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxVQUFrQixFQUFXLEVBQUU7SUFDL0QsT0FBTyxJQUFBLGFBQUssRUFBQyxVQUFVLENBQUMsSUFBSSxJQUFBLGFBQUssRUFBQyxVQUFVLENBQUMsSUFBSSxJQUFBLGFBQUssRUFBQyxVQUFVLENBQUMsQ0FBQztBQUNyRSxDQUFDLENBQUM7QUFGVyxRQUFBLGlCQUFpQixxQkFFNUIifQ==
|
package/dist/mjs/crypto/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Crypto from './Crypto.js';
|
|
2
2
|
export default Crypto;
|
|
3
3
|
export * from './types.js';
|
|
4
|
-
|
|
4
|
+
export * as cryptoUtils from './utils.js';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxlQUFlLE1BQU0sQ0FBQztBQUN0QixjQUFjLFlBQVksQ0FBQztBQUMzQixPQUFPLEtBQUssV0FBVyxNQUFNLFlBQVksQ0FBQyJ9
|
|
@@ -10,18 +10,6 @@ import { Encoding, EncryptionWithMacIV, Hash, HashAlgorithm } from '@super-proto
|
|
|
10
10
|
*
|
|
11
11
|
*/
|
|
12
12
|
declare class NativeCrypto {
|
|
13
|
-
/**
|
|
14
|
-
* Here would be better to check cipher type using
|
|
15
|
-
* ```
|
|
16
|
-
* getCipherInfo(cipher)!.mode === 'mode'
|
|
17
|
-
* ```
|
|
18
|
-
* but it doesn't work in browser
|
|
19
|
-
*/
|
|
20
|
-
static readonly isCCM: (cipher: string) => boolean;
|
|
21
|
-
static readonly isGCM: (cipher: string) => boolean;
|
|
22
|
-
static readonly isOCB: (cipher: string) => boolean;
|
|
23
|
-
static readonly isECB: (cipher: string) => boolean;
|
|
24
|
-
static readonly isRC4: (cipher: string) => boolean;
|
|
25
13
|
/**
|
|
26
14
|
* Here would be better to check cipher type using
|
|
27
15
|
* ```
|
|
@@ -1,22 +1,11 @@
|
|
|
1
1
|
import { createCipheriv, createDecipheriv, randomBytes, createHash, } from 'crypto';
|
|
2
2
|
import { once } from 'events';
|
|
3
3
|
import { Encoding } from '@super-protocol/dto-js';
|
|
4
|
+
import { isCCM, isECB, isGCM, isOCB, isRC4 } from '../utils.js';
|
|
4
5
|
/**
|
|
5
6
|
*
|
|
6
7
|
*/
|
|
7
8
|
class NativeCrypto {
|
|
8
|
-
/**
|
|
9
|
-
* Here would be better to check cipher type using
|
|
10
|
-
* ```
|
|
11
|
-
* getCipherInfo(cipher)!.mode === 'mode'
|
|
12
|
-
* ```
|
|
13
|
-
* but it doesn't work in browser
|
|
14
|
-
*/
|
|
15
|
-
static isCCM = (cipher) => /ccm/i.test(cipher) || cipher === 'chacha20-poly1305';
|
|
16
|
-
static isGCM = (cipher) => /gcm/i.test(cipher);
|
|
17
|
-
static isOCB = (cipher) => /ocb/i.test(cipher);
|
|
18
|
-
static isECB = (cipher) => /ecb/i.test(cipher) || cipher === 'des-ede' || cipher === 'des-ede3';
|
|
19
|
-
static isRC4 = (cipher) => /^rc4/i.test(cipher);
|
|
20
9
|
/**
|
|
21
10
|
* Here would be better to check cipher type using
|
|
22
11
|
* ```
|
|
@@ -53,7 +42,7 @@ class NativeCrypto {
|
|
|
53
42
|
* but it doesn't work in browser
|
|
54
43
|
*/
|
|
55
44
|
static getIVLength(cipher) {
|
|
56
|
-
if (
|
|
45
|
+
if (isCCM(cipher) || isGCM(cipher) || isOCB(cipher)) {
|
|
57
46
|
return 12;
|
|
58
47
|
}
|
|
59
48
|
if (/wrap\-pad/.test(cipher)) {
|
|
@@ -73,10 +62,10 @@ class NativeCrypto {
|
|
|
73
62
|
return randomBytes(length);
|
|
74
63
|
}
|
|
75
64
|
static createCipher(cipher, key, iv) {
|
|
76
|
-
if (
|
|
65
|
+
if (isECB(cipher) || isRC4(cipher)) {
|
|
77
66
|
throw new Error(`Cipher "${cipher}" is not supported`);
|
|
78
67
|
}
|
|
79
|
-
if (
|
|
68
|
+
if (isCCM(cipher) || isOCB(cipher)) {
|
|
80
69
|
const options = {
|
|
81
70
|
authTagLength: 16,
|
|
82
71
|
};
|
|
@@ -86,7 +75,7 @@ class NativeCrypto {
|
|
|
86
75
|
}
|
|
87
76
|
static createDecipher(cipher, key, iv, mac) {
|
|
88
77
|
const options = {};
|
|
89
|
-
if (
|
|
78
|
+
if (isCCM(cipher) || isOCB(cipher)) {
|
|
90
79
|
options.authTagLength = 16;
|
|
91
80
|
}
|
|
92
81
|
const decipher = createDecipheriv(cipher, key, iv, options);
|
|
@@ -103,10 +92,10 @@ class NativeCrypto {
|
|
|
103
92
|
const cipher = this.createCipher(cipherName, key, iv);
|
|
104
93
|
result.ciphertext = cipher.update(content, inputEncoding, outputEncoding);
|
|
105
94
|
result.ciphertext += cipher.final(outputEncoding);
|
|
106
|
-
if (!
|
|
95
|
+
if (!isECB(cipherName) && !isRC4(cipherName)) {
|
|
107
96
|
result.iv = iv.toString(outputEncoding);
|
|
108
97
|
}
|
|
109
|
-
if (
|
|
98
|
+
if (isCCM(cipherName) || isGCM(cipherName) || isOCB(cipherName)) {
|
|
110
99
|
result.mac = cipher.getAuthTag().toString(outputEncoding);
|
|
111
100
|
}
|
|
112
101
|
return result;
|
|
@@ -118,7 +107,7 @@ class NativeCrypto {
|
|
|
118
107
|
inputStream.pipe(cipher).pipe(outputStream);
|
|
119
108
|
await once(outputStream, 'finish');
|
|
120
109
|
result.iv = iv.toString(encoding);
|
|
121
|
-
if (
|
|
110
|
+
if (isCCM(cipherName) || isGCM(cipherName) || isOCB(cipherName)) {
|
|
122
111
|
result.mac = cipher.getAuthTag().toString(encoding);
|
|
123
112
|
}
|
|
124
113
|
return result;
|
|
@@ -160,4 +149,4 @@ class NativeCrypto {
|
|
|
160
149
|
}
|
|
161
150
|
}
|
|
162
151
|
export default NativeCrypto;
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF0aXZlQ3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NyeXB0by9ub2RlanMvTmF0aXZlQ3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxjQUFjLEVBQ2QsZ0JBQWdCLEVBS2hCLFdBQVcsRUFFWCxVQUFVLEdBQ1gsTUFBTSxRQUFRLENBQUM7QUFFaEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUE0QyxNQUFNLHdCQUF3QixDQUFDO0FBQzVGLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhFOztHQUVHO0FBQ0gsTUFBTSxZQUFZO0lBQ2hCOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBYztRQUN2QyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUsseUJBQXlCLEVBQUUsQ0FBQztZQUNqRixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUssMEJBQTBCLEVBQUUsQ0FBQztZQUNyRixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQWM7UUFDdEMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUNELElBQUksb0NBQW9DLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDdEQsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFjO1FBQ3BDLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNNLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBYztRQUNuQyxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsRUFBVTtRQUNoRSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsTUFBTSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLE9BQU8sR0FBcUI7Z0JBQ2hDLGFBQWEsRUFBRSxFQUFFO2FBQ2xCLENBQUM7WUFDRixPQUFPLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ00sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFjLEVBQUUsR0FBVyxFQUFFLEVBQVUsRUFBRSxHQUFZO1FBQ2hGLE1BQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7UUFDckMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFnQixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQWdCLENBQUM7UUFDeEYsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUNuQixHQUFXLEVBQ1gsT0FBZSxFQUNmLFVBQWtCLEVBQ2xCLGlCQUEyQixRQUFRLENBQUMsTUFBTTtJQUMxQyw2Q0FBNkM7SUFDN0MsZ0JBQWdDLFFBQVE7UUFFeEMsTUFBTSxFQUFFLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBaUMsRUFBRSxDQUFDO1FBRWhELE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5RCxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUMxRSxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sQ0FBQyxHQUFHLEdBQUksTUFBb0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDL0IsR0FBVyxFQUNYLFdBQXVCLEVBQ3ZCLFlBQXlCLEVBQ3pCLFVBQWUsRUFDZixXQUFxQixRQUFRLENBQUMsTUFBTTtRQUVwQyxNQUFNLEVBQUUsR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFpQyxFQUFFLENBQUM7UUFFaEQsTUFBTSxNQUFNLEdBQVcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTlELFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVDLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVuQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sQ0FBQyxHQUFHLEdBQUksTUFBb0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUNuQixHQUFXLEVBQ1gsT0FBZSxFQUNmLFVBQWtCLEVBQ2xCLE1BR0MsRUFDRCxnQkFBMEIsUUFBUSxDQUFDLE1BQU07SUFDekMsNkNBQTZDO0lBQzdDLGlCQUFpQyxRQUFRO1FBRXpDLE1BQU0sUUFBUSxHQUFhLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV4RixJQUFJLFNBQVMsR0FBVyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDaEYsU0FBUyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFNUMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUMvQixHQUFXLEVBQ1gsV0FBdUIsRUFDdkIsWUFBeUIsRUFDekIsVUFBa0IsRUFDbEIsTUFHQztRQUVELE1BQU0sUUFBUSxHQUFhLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV2RixXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDaEMsSUFBWSxFQUNaLFNBQXdCLEVBQ3hCLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTTtRQUUxQixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixPQUFPO1lBQ0wsSUFBSSxFQUFFLFNBQVM7WUFDZixRQUFRO1lBQ1IsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUNoQyxXQUFxQixFQUNyQixTQUF3QixFQUN4QixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU07UUFFMUIsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5DLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQztvQkFDTixJQUFJLEVBQUUsU0FBUztvQkFDZixRQUFRO29CQUNSLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztpQkFDNUIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsZUFBZSxZQUFZLENBQUMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Here would be better to check cipher type using
|
|
3
|
+
* ```
|
|
4
|
+
* getCipherInfo(cipher)!.mode === 'mode'
|
|
5
|
+
* ```
|
|
6
|
+
* but it doesn't work in browser
|
|
7
|
+
*/
|
|
8
|
+
export declare const isCCM: (cipher: string) => boolean;
|
|
9
|
+
export declare const isGCM: (cipher: string) => boolean;
|
|
10
|
+
export declare const isOCB: (cipher: string) => boolean;
|
|
11
|
+
export declare const isECB: (cipher: string) => boolean;
|
|
12
|
+
export declare const isRC4: (cipher: string) => boolean;
|
|
13
|
+
export declare const isAuthTagRequired: (cipherName: string) => boolean;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Here would be better to check cipher type using
|
|
3
|
+
* ```
|
|
4
|
+
* getCipherInfo(cipher)!.mode === 'mode'
|
|
5
|
+
* ```
|
|
6
|
+
* but it doesn't work in browser
|
|
7
|
+
*/
|
|
8
|
+
export const isCCM = (cipher) => /ccm/i.test(cipher) || cipher === 'chacha20-poly1305';
|
|
9
|
+
export const isGCM = (cipher) => /gcm/i.test(cipher);
|
|
10
|
+
export const isOCB = (cipher) => /ocb/i.test(cipher);
|
|
11
|
+
export const isECB = (cipher) => /ecb/i.test(cipher) || cipher === 'des-ede' || cipher === 'des-ede3';
|
|
12
|
+
export const isRC4 = (cipher) => /^rc4/i.test(cipher);
|
|
13
|
+
export const isAuthTagRequired = (cipherName) => {
|
|
14
|
+
return isCCM(cipherName) || isGCM(cipherName) || isOCB(cipherName);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxLQUFLLG1CQUFtQixDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEUsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxVQUFVLENBQUM7QUFDdkUsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXZFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsVUFBa0IsRUFBVyxFQUFFO0lBQy9ELE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFDIn0=
|