@super-protocol/sdk-js 2.1.9-beta.6 → 2.1.9-beta.7
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/Crypto.d.ts +19 -1
- package/dist/cjs/crypto/Crypto.js +41 -1
- package/dist/cjs/crypto/nodejs/ECIES.d.ts +6 -0
- package/dist/cjs/crypto/nodejs/ECIES.js +37 -4
- package/dist/mjs/crypto/Crypto.d.ts +19 -1
- package/dist/mjs/crypto/Crypto.js +41 -1
- package/dist/mjs/crypto/nodejs/ECIES.d.ts +6 -0
- package/dist/mjs/crypto/nodejs/ECIES.js +15 -2
- package/package.json +1 -1
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
|
-
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
import { CryptoAlgorithm, Encryption, Hash, EncryptionKey } from '@super-protocol/dto-js';
|
|
5
6
|
import fs from 'fs';
|
|
7
|
+
import { Keys } from './nodejs/ECIES.js';
|
|
6
8
|
import { Readable } from 'stream';
|
|
9
|
+
import { BinaryToTextEncoding } from 'crypto';
|
|
10
|
+
import { HashAlgorithm } from '@super-protocol/dto-js';
|
|
7
11
|
declare class Crypto {
|
|
8
12
|
/**
|
|
9
13
|
* Used to encrypt data before sending it to blockchain
|
|
@@ -51,5 +55,19 @@ declare class Crypto {
|
|
|
51
55
|
*/
|
|
52
56
|
static createHash(inputStream: Readable, hashInfo: Omit<Hash, 'hash'>): Promise<Hash>;
|
|
53
57
|
static getPublicKey(privateKey: EncryptionKey): EncryptionKey;
|
|
58
|
+
static generateKeys(algo: CryptoAlgorithm): Promise<Keys>;
|
|
59
|
+
static sign(params: {
|
|
60
|
+
data: Buffer | string;
|
|
61
|
+
privateKey: string | Buffer;
|
|
62
|
+
outputFormat?: BinaryToTextEncoding;
|
|
63
|
+
algo?: HashAlgorithm;
|
|
64
|
+
}): string;
|
|
65
|
+
static verify(params: {
|
|
66
|
+
data: Buffer | string;
|
|
67
|
+
publicKey: string | Buffer;
|
|
68
|
+
signatureFormat?: BinaryToTextEncoding;
|
|
69
|
+
algo?: HashAlgorithm;
|
|
70
|
+
signature: string;
|
|
71
|
+
}): boolean;
|
|
54
72
|
}
|
|
55
73
|
export default Crypto;
|
|
@@ -9,6 +9,8 @@ const ARIA_js_1 = __importDefault(require("./nodejs/ARIA.js"));
|
|
|
9
9
|
const ECIES_js_1 = __importDefault(require("./nodejs/ECIES.js"));
|
|
10
10
|
const RSA_Hybrid_js_1 = __importDefault(require("./nodejs/RSA-Hybrid.js"));
|
|
11
11
|
const NativeCrypto_js_1 = __importDefault(require("./nodejs/NativeCrypto.js"));
|
|
12
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
13
|
+
const dto_js_2 = require("@super-protocol/dto-js");
|
|
12
14
|
class Crypto {
|
|
13
15
|
/**
|
|
14
16
|
* Used to encrypt data before sending it to blockchain
|
|
@@ -103,6 +105,44 @@ class Crypto {
|
|
|
103
105
|
throw Error(`${privateKey.algo} algorithm not supported`);
|
|
104
106
|
}
|
|
105
107
|
}
|
|
108
|
+
static async generateKeys(algo) {
|
|
109
|
+
switch (algo) {
|
|
110
|
+
case dto_js_1.CryptoAlgorithm.ECIES:
|
|
111
|
+
return await ECIES_js_1.default.generateKeys();
|
|
112
|
+
default:
|
|
113
|
+
throw Error(`${algo} algorithm not supported`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
static sign(params) {
|
|
117
|
+
const { data, outputFormat = 'base64', algo = dto_js_2.HashAlgorithm.SHA256 } = params;
|
|
118
|
+
if (!params.privateKey) {
|
|
119
|
+
throw new Error('sign failed, private key is not assigned');
|
|
120
|
+
}
|
|
121
|
+
const privateKey = crypto_1.default.createPrivateKey({
|
|
122
|
+
key: params.privateKey,
|
|
123
|
+
format: 'der',
|
|
124
|
+
type: 'pkcs8',
|
|
125
|
+
});
|
|
126
|
+
const signer = crypto_1.default.createSign(algo);
|
|
127
|
+
signer.write(data);
|
|
128
|
+
signer.end();
|
|
129
|
+
return signer.sign(privateKey, outputFormat);
|
|
130
|
+
}
|
|
131
|
+
static verify(params) {
|
|
132
|
+
const { data, signature, signatureFormat = 'base64', algo = dto_js_2.HashAlgorithm.SHA256 } = params;
|
|
133
|
+
if (!params.publicKey) {
|
|
134
|
+
throw new Error('verify failed, public key is not assigned');
|
|
135
|
+
}
|
|
136
|
+
const publicKey = crypto_1.default.createPublicKey({
|
|
137
|
+
key: params.publicKey,
|
|
138
|
+
format: 'der',
|
|
139
|
+
type: 'spki',
|
|
140
|
+
});
|
|
141
|
+
const verifier = crypto_1.default.createVerify(algo);
|
|
142
|
+
verifier.write(data);
|
|
143
|
+
verifier.end();
|
|
144
|
+
return verifier.verify(publicKey, signature, signatureFormat);
|
|
145
|
+
}
|
|
106
146
|
}
|
|
107
147
|
exports.default = Crypto;
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NyeXB0by9DcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtREFTZ0M7QUFFaEMsNkRBQWtDO0FBQ2xDLCtEQUFvQztBQUNwQyxpRUFBZ0Q7QUFDaEQsMkVBQStDO0FBQy9DLCtFQUFvRDtBQUVwRCxvREFBc0Q7QUFDdEQsbURBQXVEO0FBRXZELE1BQU0sTUFBTTtJQUNWOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFlLEVBQUUsVUFBc0I7UUFDMUQsUUFBUSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsS0FBSyx3QkFBZSxDQUFDLEdBQUc7Z0JBQ3RCLE9BQU8sTUFBTSxnQkFBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFaEQsS0FBSyx3QkFBZSxDQUFDLElBQUk7Z0JBQ3ZCLE9BQU8sTUFBTSxpQkFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFakQsS0FBSyx3QkFBZSxDQUFDLEtBQUs7Z0JBQ3hCLE9BQU8sTUFBTSxrQkFBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFbEQsS0FBSyx3QkFBZSxDQUFDLFNBQVM7Z0JBQzVCLE9BQU8sTUFBTSx1QkFBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFdEQ7Z0JBQ0UsTUFBTSxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUN4QixXQUEwQixFQUMxQixZQUE0QixFQUM1QixVQUFzQjtRQUV0QixRQUFRLFVBQVUsQ0FBQyxJQUFJLEVBQUUs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
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { ECIESEncryption, Encryption, EncryptionKey } from '@super-protocol/dto-js';
|
|
3
|
+
export type Keys = {
|
|
4
|
+
publicKey: Buffer;
|
|
5
|
+
privateKey: Buffer;
|
|
6
|
+
};
|
|
2
7
|
declare class ECIES {
|
|
3
8
|
static encrypt(content: string, encryption: Encryption): ECIESEncryption;
|
|
4
9
|
static decrypt(encryption: ECIESEncryption): string;
|
|
5
10
|
static getPublicFromPrivate(privateKey: Pick<EncryptionKey, 'key' | 'encoding'>): string;
|
|
6
11
|
static getPublicKeyEncryption: (encryption: EncryptionKey) => EncryptionKey;
|
|
12
|
+
static generateKeys(namedCurve?: string): Promise<Keys>;
|
|
7
13
|
}
|
|
8
14
|
export default ECIES;
|
|
@@ -1,10 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
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;
|
|
4
24
|
};
|
|
5
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
26
|
const dto_js_1 = require("@super-protocol/dto-js");
|
|
7
|
-
const crypto_1 =
|
|
27
|
+
const crypto_1 = __importStar(require("crypto"));
|
|
8
28
|
class ECIES {
|
|
9
29
|
static encrypt(content, encryption) {
|
|
10
30
|
if (!encryption.key)
|
|
@@ -72,6 +92,19 @@ class ECIES {
|
|
|
72
92
|
key: this.getPublicFromPrivate(encryption),
|
|
73
93
|
};
|
|
74
94
|
};
|
|
95
|
+
static generateKeys(namedCurve = 'secp256k1') {
|
|
96
|
+
return new Promise((resolve, reject) => {
|
|
97
|
+
(0, crypto_1.generateKeyPair)('ec', { namedCurve }, (err, publicKey, privateKey) => {
|
|
98
|
+
if (err) {
|
|
99
|
+
return reject(err);
|
|
100
|
+
}
|
|
101
|
+
resolve({
|
|
102
|
+
publicKey: publicKey.export({ type: 'spki', format: 'der' }),
|
|
103
|
+
privateKey: privateKey.export({ type: 'pkcs8', format: 'der' }),
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
75
108
|
}
|
|
76
109
|
exports.default = ECIES;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRUNJRVMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3J5cHRvL25vZGVqcy9FQ0lFUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBTWdDO0FBQ2hDLGlEQUFpRDtBQU9qRCxNQUFNLEtBQUs7SUFDVCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQWUsRUFBRSxVQUFzQjtRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUc7WUFBRSxNQUFNLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sSUFBSSxHQUFHLGdCQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFaEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFaEYsTUFBTSxJQUFJLEdBQUcsZ0JBQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTdELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixNQUFNLEVBQUUsR0FBRyxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVsQyxNQUFNLE1BQU0sR0FBRyxnQkFBTSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sR0FBRyxHQUFHLGdCQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFM0UsT0FBTztZQUNMLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDcEMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNqRCxHQUFHLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3RDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtZQUM3QixJQUFJLEVBQUUsd0JBQWUsQ0FBQyxLQUFLO1lBQzNCLFVBQVUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQTJCO1FBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRztZQUFFLE1BQU0sS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFbkUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFDeEQsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQ2pFLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFXLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUM3RCxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxNQUFNLElBQUksR0FBRyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVyRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sSUFBSSxHQUFHLGdCQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUU3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDcEMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLEdBQUcsZ0JBQU07YUFDYixVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQzthQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNwQyxNQUFNLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLGdCQUFNLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RSxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9CLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVyRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxVQUFtRDtRQUNwRixNQUFNLElBQUksR0FBRyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVyRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxVQUF5QixFQUFpQixFQUFFO1FBQzNFLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyx3QkFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlDLE1BQU0sS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLFFBQVEsS0FBSyxpQkFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELE9BQU87WUFDTCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDckIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQzdCLEdBQUcsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDO1NBQzNDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxXQUFXO1FBQzFDLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBQSx3QkFBZSxFQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDUixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsQ0FBQztnQkFDRCxPQUFPLENBQUM7b0JBQ04sU0FBUyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztvQkFDNUQsVUFBVSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztpQkFDaEUsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBR0gsa0JBQWUsS0FBSyxDQUFDIn0=
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
|
-
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
import { CryptoAlgorithm, Encryption, Hash, EncryptionKey } from '@super-protocol/dto-js';
|
|
5
6
|
import fs from 'fs';
|
|
7
|
+
import { Keys } from './nodejs/ECIES.js';
|
|
6
8
|
import { Readable } from 'stream';
|
|
9
|
+
import { BinaryToTextEncoding } from 'crypto';
|
|
10
|
+
import { HashAlgorithm } from '@super-protocol/dto-js';
|
|
7
11
|
declare class Crypto {
|
|
8
12
|
/**
|
|
9
13
|
* Used to encrypt data before sending it to blockchain
|
|
@@ -51,5 +55,19 @@ declare class Crypto {
|
|
|
51
55
|
*/
|
|
52
56
|
static createHash(inputStream: Readable, hashInfo: Omit<Hash, 'hash'>): Promise<Hash>;
|
|
53
57
|
static getPublicKey(privateKey: EncryptionKey): EncryptionKey;
|
|
58
|
+
static generateKeys(algo: CryptoAlgorithm): Promise<Keys>;
|
|
59
|
+
static sign(params: {
|
|
60
|
+
data: Buffer | string;
|
|
61
|
+
privateKey: string | Buffer;
|
|
62
|
+
outputFormat?: BinaryToTextEncoding;
|
|
63
|
+
algo?: HashAlgorithm;
|
|
64
|
+
}): string;
|
|
65
|
+
static verify(params: {
|
|
66
|
+
data: Buffer | string;
|
|
67
|
+
publicKey: string | Buffer;
|
|
68
|
+
signatureFormat?: BinaryToTextEncoding;
|
|
69
|
+
algo?: HashAlgorithm;
|
|
70
|
+
signature: string;
|
|
71
|
+
}): boolean;
|
|
54
72
|
}
|
|
55
73
|
export default Crypto;
|
|
@@ -4,6 +4,8 @@ import ARIA from './nodejs/ARIA.js';
|
|
|
4
4
|
import ECIES from './nodejs/ECIES.js';
|
|
5
5
|
import RSAHybrid from './nodejs/RSA-Hybrid.js';
|
|
6
6
|
import NativeCrypto from './nodejs/NativeCrypto.js';
|
|
7
|
+
import crypto from 'crypto';
|
|
8
|
+
import { HashAlgorithm } from '@super-protocol/dto-js';
|
|
7
9
|
class Crypto {
|
|
8
10
|
/**
|
|
9
11
|
* Used to encrypt data before sending it to blockchain
|
|
@@ -98,6 +100,44 @@ class Crypto {
|
|
|
98
100
|
throw Error(`${privateKey.algo} algorithm not supported`);
|
|
99
101
|
}
|
|
100
102
|
}
|
|
103
|
+
static async generateKeys(algo) {
|
|
104
|
+
switch (algo) {
|
|
105
|
+
case CryptoAlgorithm.ECIES:
|
|
106
|
+
return await ECIES.generateKeys();
|
|
107
|
+
default:
|
|
108
|
+
throw Error(`${algo} algorithm not supported`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
static sign(params) {
|
|
112
|
+
const { data, outputFormat = 'base64', algo = HashAlgorithm.SHA256 } = params;
|
|
113
|
+
if (!params.privateKey) {
|
|
114
|
+
throw new Error('sign failed, private key is not assigned');
|
|
115
|
+
}
|
|
116
|
+
const privateKey = crypto.createPrivateKey({
|
|
117
|
+
key: params.privateKey,
|
|
118
|
+
format: 'der',
|
|
119
|
+
type: 'pkcs8',
|
|
120
|
+
});
|
|
121
|
+
const signer = crypto.createSign(algo);
|
|
122
|
+
signer.write(data);
|
|
123
|
+
signer.end();
|
|
124
|
+
return signer.sign(privateKey, outputFormat);
|
|
125
|
+
}
|
|
126
|
+
static verify(params) {
|
|
127
|
+
const { data, signature, signatureFormat = 'base64', algo = HashAlgorithm.SHA256 } = params;
|
|
128
|
+
if (!params.publicKey) {
|
|
129
|
+
throw new Error('verify failed, public key is not assigned');
|
|
130
|
+
}
|
|
131
|
+
const publicKey = crypto.createPublicKey({
|
|
132
|
+
key: params.publicKey,
|
|
133
|
+
format: 'der',
|
|
134
|
+
type: 'spki',
|
|
135
|
+
});
|
|
136
|
+
const verifier = crypto.createVerify(algo);
|
|
137
|
+
verifier.write(data);
|
|
138
|
+
verifier.end();
|
|
139
|
+
return verifier.verify(publicKey, signature, signatureFormat);
|
|
140
|
+
}
|
|
101
141
|
}
|
|
102
142
|
export default Crypto;
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NyeXB0by9DcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGVBQWUsR0FNaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQztBQUNsQyxPQUFPLElBQUksTUFBTSxrQkFBa0IsQ0FBQztBQUNwQyxPQUFPLEtBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLE1BQWdDLE1BQU0sUUFBUSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxNQUFNLE1BQU07SUFDVjs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBZSxFQUFFLFVBQXNCO1FBQzFELFFBQVEsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLEtBQUssZUFBZSxDQUFDLEdBQUc7Z0JBQ3RCLE9BQU8sTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUVoRCxLQUFLLGVBQWUsQ0FBQyxJQUFJO2dCQUN2QixPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFakQsS0FBSyxlQUFlLENBQUMsS0FBSztnQkFDeEIsT0FBTyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBRWxELEtBQUssZUFBZSxDQUFDLFNBQVM7Z0JBQzVCLE9BQU8sTUFBTSxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUV0RDtnQkFDRSxNQUFNLEtBQUssQ0FBQyxHQUFH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
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { ECIESEncryption, Encryption, EncryptionKey } from '@super-protocol/dto-js';
|
|
3
|
+
export type Keys = {
|
|
4
|
+
publicKey: Buffer;
|
|
5
|
+
privateKey: Buffer;
|
|
6
|
+
};
|
|
2
7
|
declare class ECIES {
|
|
3
8
|
static encrypt(content: string, encryption: Encryption): ECIESEncryption;
|
|
4
9
|
static decrypt(encryption: ECIESEncryption): string;
|
|
5
10
|
static getPublicFromPrivate(privateKey: Pick<EncryptionKey, 'key' | 'encoding'>): string;
|
|
6
11
|
static getPublicKeyEncryption: (encryption: EncryptionKey) => EncryptionKey;
|
|
12
|
+
static generateKeys(namedCurve?: string): Promise<Keys>;
|
|
7
13
|
}
|
|
8
14
|
export default ECIES;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CryptoAlgorithm, Encoding, } from '@super-protocol/dto-js';
|
|
2
|
-
import crypto from 'crypto';
|
|
2
|
+
import crypto, { generateKeyPair } from 'crypto';
|
|
3
3
|
class ECIES {
|
|
4
4
|
static encrypt(content, encryption) {
|
|
5
5
|
if (!encryption.key)
|
|
@@ -67,6 +67,19 @@ class ECIES {
|
|
|
67
67
|
key: this.getPublicFromPrivate(encryption),
|
|
68
68
|
};
|
|
69
69
|
};
|
|
70
|
+
static generateKeys(namedCurve = 'secp256k1') {
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
generateKeyPair('ec', { namedCurve }, (err, publicKey, privateKey) => {
|
|
73
|
+
if (err) {
|
|
74
|
+
return reject(err);
|
|
75
|
+
}
|
|
76
|
+
resolve({
|
|
77
|
+
publicKey: publicKey.export({ type: 'spki', format: 'der' }),
|
|
78
|
+
privateKey: privateKey.export({ type: 'pkcs8', format: 'der' }),
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
70
83
|
}
|
|
71
84
|
export default ECIES;
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRUNJRVMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3J5cHRvL25vZGVqcy9FQ0lFUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUVmLFFBQVEsR0FHVCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sTUFBTSxFQUFFLEVBQUUsZUFBZSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBT2pELE1BQU0sS0FBSztJQUNULE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZSxFQUFFLFVBQXNCO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRztZQUFFLE1BQU0sS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFbkUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWhDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRWhGLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTdELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMs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
|