@inco/js 0.8.0-devnet-6 → 0.9.0-devnet-test-3
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/advancedacl/session-key.d.ts +10 -9
- package/dist/cjs/advancedacl/session-key.js +7 -8
- package/dist/cjs/attestedcompute/attested-compute.d.ts +2 -2
- package/dist/cjs/attestedcompute/attested-compute.js +2 -2
- package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +3 -3
- package/dist/cjs/attesteddecrypt/attested-decrypt.js +5 -5
- package/dist/cjs/encryption/encryption.d.ts +8 -10
- package/dist/cjs/encryption/encryption.js +2 -5
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +234 -7
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/server_pb.js +86 -10
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +0 -6
- package/dist/cjs/generated/es/inco/covalidator/compute/v1/types_pb.js +2 -8
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +213 -0
- package/dist/cjs/generated/es/inco/kms/lite/v1/kms_service_pb.js +36 -11
- package/dist/cjs/kms/quorumClient.d.ts +3 -2
- package/dist/cjs/kms/quorumClient.js +30 -27
- package/dist/cjs/lite/index.d.ts +1 -2
- package/dist/cjs/lite/index.js +5 -18
- package/dist/cjs/lite/lightning.d.ts +16 -16
- package/dist/cjs/lite/lightning.js +28 -39
- package/dist/cjs/lite/xwing.d.ts +5 -1
- package/dist/cjs/lite/xwing.js +10 -5
- package/dist/cjs/reencryption/types.d.ts +2 -2
- package/dist/esm/advancedacl/session-key.d.ts +10 -9
- package/dist/esm/advancedacl/session-key.js +7 -8
- package/dist/esm/attestedcompute/attested-compute.d.ts +2 -2
- package/dist/esm/attestedcompute/attested-compute.js +2 -2
- package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +3 -3
- package/dist/esm/attesteddecrypt/attested-decrypt.js +3 -3
- package/dist/esm/encryption/encryption.d.ts +8 -10
- package/dist/esm/encryption/encryption.js +2 -5
- package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +234 -7
- package/dist/esm/generated/es/inco/covalidator/compute/v1/server_pb.js +85 -9
- package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +0 -6
- package/dist/esm/generated/es/inco/covalidator/compute/v1/types_pb.js +2 -8
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +213 -0
- package/dist/esm/generated/es/inco/kms/lite/v1/kms_service_pb.js +35 -10
- package/dist/esm/kms/quorumClient.d.ts +3 -2
- package/dist/esm/kms/quorumClient.js +30 -27
- package/dist/esm/lite/index.d.ts +1 -2
- package/dist/esm/lite/index.js +2 -5
- package/dist/esm/lite/lightning.d.ts +16 -16
- package/dist/esm/lite/lightning.js +29 -40
- package/dist/esm/lite/xwing.d.ts +5 -1
- package/dist/esm/lite/xwing.js +9 -4
- package/dist/esm/reencryption/types.d.ts +2 -2
- package/dist/types/advancedacl/session-key.d.ts +10 -9
- package/dist/types/attestedcompute/attested-compute.d.ts +2 -2
- package/dist/types/attesteddecrypt/attested-decrypt.d.ts +3 -3
- package/dist/types/encryption/encryption.d.ts +8 -10
- package/dist/types/generated/es/inco/covalidator/compute/v1/server_pb.d.ts +234 -7
- package/dist/types/generated/es/inco/covalidator/compute/v1/types_pb.d.ts +0 -6
- package/dist/types/generated/es/inco/kms/lite/v1/kms_service_pb.d.ts +213 -0
- package/dist/types/kms/quorumClient.d.ts +3 -2
- package/dist/types/lite/index.d.ts +1 -2
- package/dist/types/lite/lightning.d.ts +16 -16
- package/dist/types/lite/xwing.d.ts +5 -1
- package/dist/types/reencryption/types.d.ts +2 -2
- package/package.json +3 -6
- package/dist/cjs/lite/ecies.d.ts +0 -26
- package/dist/cjs/lite/ecies.js +0 -146
- package/dist/esm/lite/ecies.d.ts +0 -26
- package/dist/esm/lite/ecies.js +0 -134
- package/dist/types/lite/ecies.d.ts +0 -26
package/dist/cjs/lite/ecies.js
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TEST_NETWORK_PRIVATE_KEY = exports.TEST_NETWORK_PUBKEY = void 0;
|
|
4
|
-
exports.toSecp256k1Keypair = toSecp256k1Keypair;
|
|
5
|
-
exports.generateSecp256k1Keypair = generateSecp256k1Keypair;
|
|
6
|
-
exports.encodeSecp256k1PublicKey = encodeSecp256k1PublicKey;
|
|
7
|
-
exports.decodeSecp256k1PublicKey = decodeSecp256k1PublicKey;
|
|
8
|
-
exports.decodeSecp256k1PrivateKey = decodeSecp256k1PrivateKey;
|
|
9
|
-
exports.encrypt = encrypt;
|
|
10
|
-
exports.getEciesEncryptor = getEciesEncryptor;
|
|
11
|
-
exports.decrypt = decrypt;
|
|
12
|
-
exports.getEciesDecryptor = getEciesDecryptor;
|
|
13
|
-
const ecies_geth_1 = require("ecies-geth");
|
|
14
|
-
const ellipticPkg = require("elliptic");
|
|
15
|
-
const binary_js_1 = require("../binary.js");
|
|
16
|
-
const encryption_js_1 = require("../encryption/encryption.js");
|
|
17
|
-
const handle_js_1 = require("../handle.js");
|
|
18
|
-
const schema_js_1 = require("../schema.js");
|
|
19
|
-
const hadu_js_1 = require("./hadu.js");
|
|
20
|
-
const secp256k1 = new ellipticPkg.ec('secp256k1');
|
|
21
|
-
// These are ECIES keys for testing purposes
|
|
22
|
-
exports.TEST_NETWORK_PUBKEY = '0x02516bda9e68a1c3dce74dc1b6ed7d91a91d51c1e1933947f06331cef59631e9eb';
|
|
23
|
-
exports.TEST_NETWORK_PRIVATE_KEY = '0x384a707568ab63ad2ad9f10135faa0699801db3174f33f7846badc11affb8f57';
|
|
24
|
-
// Convert an ec.KeyPair from the 'elliptic' package (assumed to have geen generated
|
|
25
|
-
// with the secp256k1 curve) to our Secp256k1Keypair type.
|
|
26
|
-
function toSecp256k1Keypair(kp) {
|
|
27
|
-
return {
|
|
28
|
-
scheme: encryption_js_1.encryptionSchemes.ecies,
|
|
29
|
-
kp,
|
|
30
|
-
encodePublicKey() {
|
|
31
|
-
return new Uint8Array(kp.getPublic().encode('array', true));
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
// Generate a new ephemeral keypair for reencryption.
|
|
36
|
-
function generateSecp256k1Keypair() {
|
|
37
|
-
return toSecp256k1Keypair(secp256k1.genKeyPair());
|
|
38
|
-
}
|
|
39
|
-
// EncodePublicKey encodes an ECIES public key it's 33-byte compressed form.
|
|
40
|
-
function encodeSecp256k1PublicKey(pub) {
|
|
41
|
-
return new Uint8Array(pub.encodeCompressed('array'));
|
|
42
|
-
}
|
|
43
|
-
// DecodeSecp256k1PublicKey decodes a 33-byte compressed ECIES public key.
|
|
44
|
-
function decodeSecp256k1PublicKey(pubKeyCompressed) {
|
|
45
|
-
return secp256k1.keyFromPublic(pubKeyCompressed, 'array').getPublic();
|
|
46
|
-
}
|
|
47
|
-
// DecodeSecp256k1PrivateKey returns a ECIES secp256k1 private key based on the provided byte slice which is
|
|
48
|
-
// interpreted as an unsigned 256-bit big-endian integer in the range [0, N-1],
|
|
49
|
-
// where N is the order of the curve.
|
|
50
|
-
// where N is the order of the curve.
|
|
51
|
-
//
|
|
52
|
-
// WARNING: This means passing a slice with more than 32 bytes is truncated and
|
|
53
|
-
// that truncated value is reduced modulo N. Further, 0 is not a valid private
|
|
54
|
-
// key. It is up to the caller to provide a value in the appropriate range of
|
|
55
|
-
// [1, N-1]. Failure to do so will either result in an invalid private key or
|
|
56
|
-
// potentially weak private keys that have bias that could be exploited.
|
|
57
|
-
//
|
|
58
|
-
// This function primarily exists to provide a mechanism for converting
|
|
59
|
-
// serialized private keys that are already known to be good.
|
|
60
|
-
//
|
|
61
|
-
// For more info, refer to the decred/dcrd documentation:
|
|
62
|
-
// ref: https://pkg.go.dev/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.2.0#PrivKeyFromBytes
|
|
63
|
-
//
|
|
64
|
-
// We don't include any curve parameters or ECIES params, as they are assumed to
|
|
65
|
-
// be the ones in ecies.ECIES_AES128_SHA256 from go-ethereum.
|
|
66
|
-
// ref: https://github.com/ethereum/go-ethereum/blob/v1.15.0/crypto/ecies/params.go#L76-L82
|
|
67
|
-
function decodeSecp256k1PrivateKey(privKey) {
|
|
68
|
-
return toSecp256k1Keypair(secp256k1.keyFromPrivate(privKey, 'array'));
|
|
69
|
-
}
|
|
70
|
-
// Given a (usually 3rd-party known) public key, called `pubKeyA`, and an ephemeral
|
|
71
|
-
// private key (usually generated locally), called `privKeyB`, encrypt the `msg`
|
|
72
|
-
// using ECIES, with geth's parameters:
|
|
73
|
-
// ref: https://github.com/ethereum/go-ethereum/blob/v1.15.2/crypto/ecies/ecies.go
|
|
74
|
-
async function encrypt(pubKeyA, plaintext, privKeyB) {
|
|
75
|
-
const pubKeyABuffer = Buffer.from(pubKeyA.encode('array', false));
|
|
76
|
-
const privKeyBBuffer = privKeyB.kp.getPrivate().toArrayLike(Buffer, 'be', 32);
|
|
77
|
-
const ct = await (0, ecies_geth_1.encrypt)(pubKeyABuffer, Buffer.from(plaintext), {
|
|
78
|
-
ephemPrivateKey: privKeyBBuffer,
|
|
79
|
-
});
|
|
80
|
-
return new Uint8Array(ct);
|
|
81
|
-
}
|
|
82
|
-
function getEciesEncryptor({ pubKeyA, privKeyB, }) {
|
|
83
|
-
const pubKeyABuffer = Buffer.from(pubKeyA.encode('array', false));
|
|
84
|
-
const privKeyBBuffer = privKeyB.kp.getPrivate().toArrayLike(Buffer, 'be', 32);
|
|
85
|
-
return async ({ plaintext, context, }) => {
|
|
86
|
-
if (plaintext.scheme !== encryption_js_1.encryptionSchemes.ecies) {
|
|
87
|
-
throw new Error(`Plaintext with scheme ${(0, encryption_js_1.getEncryptionSchemeName)(plaintext.scheme)} cannot be encrypted with ECIES`);
|
|
88
|
-
}
|
|
89
|
-
const inputCiphertextPayloadBytes = Buffer.from((0, hadu_js_1.encodeInput)({ plaintext, context }));
|
|
90
|
-
const ct = await (0, ecies_geth_1.encrypt)(pubKeyABuffer, inputCiphertextPayloadBytes, {
|
|
91
|
-
ephemPrivateKey: privKeyBBuffer,
|
|
92
|
-
});
|
|
93
|
-
const prehandle = (0, handle_js_1.computePrehandle)({
|
|
94
|
-
ciphertext: ct,
|
|
95
|
-
handleType: plaintext.type,
|
|
96
|
-
indexHandle: 0,
|
|
97
|
-
handleVersion: 0,
|
|
98
|
-
});
|
|
99
|
-
const handle = (0, handle_js_1.computeHandle)({
|
|
100
|
-
prehandle,
|
|
101
|
-
context: context,
|
|
102
|
-
});
|
|
103
|
-
// const inputBytes = Buffer.concat([handle, ct]);
|
|
104
|
-
return {
|
|
105
|
-
prehandle: (0, binary_js_1.asBytes32)(prehandle),
|
|
106
|
-
handle: (0, binary_js_1.asBytes32)(handle),
|
|
107
|
-
context,
|
|
108
|
-
ciphertext: {
|
|
109
|
-
scheme: encryption_js_1.encryptionSchemes.ecies,
|
|
110
|
-
type: plaintext.type,
|
|
111
|
-
// The prepended version keeps the bundle self-describing, avoiding a loose parameter.
|
|
112
|
-
// The prepended handle serves as a checksum on the encrypted payload, so we can fail early on an accidental mismatch
|
|
113
|
-
value: (0, encryption_js_1.encodeCiphertextInput)(context.version, (0, binary_js_1.bytesToHex)(handle), (0, binary_js_1.bytesToHex)(ct)),
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
// Given an ephemeral private key, called `privKeyA`, and a ciphertext `ct`,
|
|
119
|
-
// decrypt the ciphertext using ECIES, with geth's parameters:
|
|
120
|
-
// ref: https://github.com/ethereum/go-ethereum/blob/v1.15.2/crypto/ecies/ecies.go
|
|
121
|
-
async function decrypt(privKeyA, ciphertext) {
|
|
122
|
-
const privKeyABuffer = privKeyA.kp.getPrivate().toArrayLike(Buffer, 'be', 32);
|
|
123
|
-
const pt = await (0, ecies_geth_1.decrypt)(privKeyABuffer, Buffer.from(ciphertext));
|
|
124
|
-
return new Uint8Array(pt);
|
|
125
|
-
}
|
|
126
|
-
function getEciesDecryptor({ privKeyA, }) {
|
|
127
|
-
const privKeyABuffer = privKeyA.kp.getPrivate().toArrayLike(Buffer, 'be', 32);
|
|
128
|
-
return async ({ scheme, value, }) => {
|
|
129
|
-
if (scheme !== encryption_js_1.encryptionSchemes.ecies) {
|
|
130
|
-
throw new Error(`Ciphertext with scheme ${(0, encryption_js_1.getEncryptionSchemeName)(scheme)} cannot be decrypted with ECIES`);
|
|
131
|
-
}
|
|
132
|
-
// remove the prepended version and handle
|
|
133
|
-
// We could verify or dispatch on the version here,
|
|
134
|
-
// but the intention is for the SDK to only support one input version at a time.
|
|
135
|
-
const { ciphertext } = (0, encryption_js_1.decodeCiphertextInput)(value);
|
|
136
|
-
const ptBuf = await (0, ecies_geth_1.decrypt)(privKeyABuffer, (0, binary_js_1.bytesFromHexString)(ciphertext));
|
|
137
|
-
const payload = (0, hadu_js_1.decodeInput)(ptBuf);
|
|
138
|
-
const computable = payload.value;
|
|
139
|
-
if (computable.case !== 'scalar') {
|
|
140
|
-
throw new Error(`decrypted plaintext is not a scalar, cannot currently be decrypted, this feature may be implemented on request`);
|
|
141
|
-
}
|
|
142
|
-
const typ = (0, schema_js_1.parse)(encryption_js_1.SupportedFheType, computable.value.type);
|
|
143
|
-
return (0, encryption_js_1.bytesToPlaintext)(computable.value.value, encryption_js_1.encryptionSchemes.ecies, typ);
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGl0ZS9lY2llcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5Q0EsZ0RBVUM7QUFHRCw0REFFQztBQUdELDREQUVDO0FBR0QsNERBSUM7QUFzQkQsOERBSUM7QUFNRCwwQkFhQztBQU9ELDhDQW9EQztBQUtELDBCQU9DO0FBTUQsOENBb0NDO0FBbE9ELDJDQUE4RTtBQUM5RSx3Q0FBd0M7QUFDeEMsNENBQXlFO0FBQ3pFLCtEQWNxQztBQUNyQyw0Q0FBK0Q7QUFFL0QsNENBQXFDO0FBQ3JDLHVDQUFxRDtBQUVyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFbEQsNENBQTRDO0FBQy9CLFFBQUEsbUJBQW1CLEdBQzlCLHNFQUFzRSxDQUFDO0FBQzVELFFBQUEsd0JBQXdCLEdBQ25DLG9FQUFvRSxDQUFDO0FBVXZFLG9GQUFvRjtBQUNwRiwwREFBMEQ7QUFDMUQsU0FBZ0Isa0JBQWtCLENBQ2hDLEVBQTBCO0lBRTFCLE9BQU87UUFDTCxNQUFNLEVBQUUsaUNBQWlCLENBQUMsS0FBSztRQUMvQixFQUFFO1FBQ0YsZUFBZTtZQUNiLE9BQU8sSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxxREFBcUQ7QUFDckQsU0FBZ0Isd0JBQXdCO0lBQ3RDLE9BQU8sa0JBQWtCLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVELDRFQUE0RTtBQUM1RSxTQUFnQix3QkFBd0IsQ0FBQyxHQUFvQjtJQUMzRCxPQUFPLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFD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
|
package/dist/esm/lite/ecies.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as ellipticPkg from 'elliptic';
|
|
2
|
-
import { Decryptor, EciesScheme, Encryptor } from '../encryption/encryption.js';
|
|
3
|
-
import { PubKeyEncodable } from '../reencryption/index.js';
|
|
4
|
-
export declare const TEST_NETWORK_PUBKEY = "0x02516bda9e68a1c3dce74dc1b6ed7d91a91d51c1e1933947f06331cef59631e9eb";
|
|
5
|
-
export declare const TEST_NETWORK_PRIVATE_KEY = "0x384a707568ab63ad2ad9f10135faa0699801db3174f33f7846badc11affb8f57";
|
|
6
|
-
export interface Secp256k1Keypair extends PubKeyEncodable {
|
|
7
|
-
scheme: EciesScheme;
|
|
8
|
-
kp: ellipticPkg.ec.KeyPair;
|
|
9
|
-
}
|
|
10
|
-
export type Secp256k1PubKey = ellipticPkg.curve.base.BasePoint;
|
|
11
|
-
export declare function toSecp256k1Keypair(kp: ellipticPkg.ec.KeyPair): Secp256k1Keypair;
|
|
12
|
-
export declare function generateSecp256k1Keypair(): Secp256k1Keypair;
|
|
13
|
-
export declare function encodeSecp256k1PublicKey(pub: Secp256k1PubKey): Uint8Array;
|
|
14
|
-
export declare function decodeSecp256k1PublicKey(pubKeyCompressed: Uint8Array): Secp256k1PubKey;
|
|
15
|
-
export declare function decodeSecp256k1PrivateKey(privKey: Uint8Array): Secp256k1Keypair;
|
|
16
|
-
export declare function encrypt(pubKeyA: Secp256k1PubKey, plaintext: Uint8Array, privKeyB: Secp256k1Keypair): Promise<Uint8Array>;
|
|
17
|
-
export type EciesEncryptorArgs = {
|
|
18
|
-
pubKeyA: Secp256k1PubKey;
|
|
19
|
-
privKeyB: Secp256k1Keypair;
|
|
20
|
-
};
|
|
21
|
-
export declare function getEciesEncryptor({ pubKeyA, privKeyB, }: EciesEncryptorArgs): Encryptor<EciesScheme>;
|
|
22
|
-
export declare function decrypt(privKeyA: Secp256k1Keypair, ciphertext: Uint8Array): Promise<Uint8Array>;
|
|
23
|
-
export type EciesDecryptorArgs = {
|
|
24
|
-
privKeyA: Secp256k1Keypair;
|
|
25
|
-
};
|
|
26
|
-
export declare function getEciesDecryptor({ privKeyA, }: EciesDecryptorArgs): Decryptor<EciesScheme>;
|
package/dist/esm/lite/ecies.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { decrypt as eciesDecrypt, encrypt as eciesEncrypt } from 'ecies-geth';
|
|
2
|
-
import * as ellipticPkg from 'elliptic';
|
|
3
|
-
import { asBytes32, bytesFromHexString, bytesToHex } from '../binary.js';
|
|
4
|
-
import { bytesToPlaintext, decodeCiphertextInput, encodeCiphertextInput, encryptionSchemes, getEncryptionSchemeName, SupportedFheType, } from '../encryption/encryption.js';
|
|
5
|
-
import { computeHandle, computePrehandle } from '../handle.js';
|
|
6
|
-
import { parse } from '../schema.js';
|
|
7
|
-
import { decodeInput, encodeInput } from './hadu.js';
|
|
8
|
-
const secp256k1 = new ellipticPkg.ec('secp256k1');
|
|
9
|
-
// These are ECIES keys for testing purposes
|
|
10
|
-
export const TEST_NETWORK_PUBKEY = '0x02516bda9e68a1c3dce74dc1b6ed7d91a91d51c1e1933947f06331cef59631e9eb';
|
|
11
|
-
export const TEST_NETWORK_PRIVATE_KEY = '0x384a707568ab63ad2ad9f10135faa0699801db3174f33f7846badc11affb8f57';
|
|
12
|
-
// Convert an ec.KeyPair from the 'elliptic' package (assumed to have geen generated
|
|
13
|
-
// with the secp256k1 curve) to our Secp256k1Keypair type.
|
|
14
|
-
export function toSecp256k1Keypair(kp) {
|
|
15
|
-
return {
|
|
16
|
-
scheme: encryptionSchemes.ecies,
|
|
17
|
-
kp,
|
|
18
|
-
encodePublicKey() {
|
|
19
|
-
return new Uint8Array(kp.getPublic().encode('array', true));
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
// Generate a new ephemeral keypair for reencryption.
|
|
24
|
-
export function generateSecp256k1Keypair() {
|
|
25
|
-
return toSecp256k1Keypair(secp256k1.genKeyPair());
|
|
26
|
-
}
|
|
27
|
-
// EncodePublicKey encodes an ECIES public key it's 33-byte compressed form.
|
|
28
|
-
export function encodeSecp256k1PublicKey(pub) {
|
|
29
|
-
return new Uint8Array(pub.encodeCompressed('array'));
|
|
30
|
-
}
|
|
31
|
-
// DecodeSecp256k1PublicKey decodes a 33-byte compressed ECIES public key.
|
|
32
|
-
export function decodeSecp256k1PublicKey(pubKeyCompressed) {
|
|
33
|
-
return secp256k1.keyFromPublic(pubKeyCompressed, 'array').getPublic();
|
|
34
|
-
}
|
|
35
|
-
// DecodeSecp256k1PrivateKey returns a ECIES secp256k1 private key based on the provided byte slice which is
|
|
36
|
-
// interpreted as an unsigned 256-bit big-endian integer in the range [0, N-1],
|
|
37
|
-
// where N is the order of the curve.
|
|
38
|
-
// where N is the order of the curve.
|
|
39
|
-
//
|
|
40
|
-
// WARNING: This means passing a slice with more than 32 bytes is truncated and
|
|
41
|
-
// that truncated value is reduced modulo N. Further, 0 is not a valid private
|
|
42
|
-
// key. It is up to the caller to provide a value in the appropriate range of
|
|
43
|
-
// [1, N-1]. Failure to do so will either result in an invalid private key or
|
|
44
|
-
// potentially weak private keys that have bias that could be exploited.
|
|
45
|
-
//
|
|
46
|
-
// This function primarily exists to provide a mechanism for converting
|
|
47
|
-
// serialized private keys that are already known to be good.
|
|
48
|
-
//
|
|
49
|
-
// For more info, refer to the decred/dcrd documentation:
|
|
50
|
-
// ref: https://pkg.go.dev/github.com/decred/dcrd/dcrec/secp256k1/v4@v4.2.0#PrivKeyFromBytes
|
|
51
|
-
//
|
|
52
|
-
// We don't include any curve parameters or ECIES params, as they are assumed to
|
|
53
|
-
// be the ones in ecies.ECIES_AES128_SHA256 from go-ethereum.
|
|
54
|
-
// ref: https://github.com/ethereum/go-ethereum/blob/v1.15.0/crypto/ecies/params.go#L76-L82
|
|
55
|
-
export function decodeSecp256k1PrivateKey(privKey) {
|
|
56
|
-
return toSecp256k1Keypair(secp256k1.keyFromPrivate(privKey, 'array'));
|
|
57
|
-
}
|
|
58
|
-
// Given a (usually 3rd-party known) public key, called `pubKeyA`, and an ephemeral
|
|
59
|
-
// private key (usually generated locally), called `privKeyB`, encrypt the `msg`
|
|
60
|
-
// using ECIES, with geth's parameters:
|
|
61
|
-
// ref: https://github.com/ethereum/go-ethereum/blob/v1.15.2/crypto/ecies/ecies.go
|
|
62
|
-
export async function encrypt(pubKeyA, plaintext, privKeyB) {
|
|
63
|
-
const pubKeyABuffer = Buffer.from(pubKeyA.encode('array', false));
|
|
64
|
-
const privKeyBBuffer = privKeyB.kp.getPrivate().toArrayLike(Buffer, 'be', 32);
|
|
65
|
-
const ct = await eciesEncrypt(pubKeyABuffer, Buffer.from(plaintext), {
|
|
66
|
-
ephemPrivateKey: privKeyBBuffer,
|
|
67
|
-
});
|
|
68
|
-
return new Uint8Array(ct);
|
|
69
|
-
}
|
|
70
|
-
export function getEciesEncryptor({ pubKeyA, privKeyB, }) {
|
|
71
|
-
const pubKeyABuffer = Buffer.from(pubKeyA.encode('array', false));
|
|
72
|
-
const privKeyBBuffer = privKeyB.kp.getPrivate().toArrayLike(Buffer, 'be', 32);
|
|
73
|
-
return async ({ plaintext, context, }) => {
|
|
74
|
-
if (plaintext.scheme !== encryptionSchemes.ecies) {
|
|
75
|
-
throw new Error(`Plaintext with scheme ${getEncryptionSchemeName(plaintext.scheme)} cannot be encrypted with ECIES`);
|
|
76
|
-
}
|
|
77
|
-
const inputCiphertextPayloadBytes = Buffer.from(encodeInput({ plaintext, context }));
|
|
78
|
-
const ct = await eciesEncrypt(pubKeyABuffer, inputCiphertextPayloadBytes, {
|
|
79
|
-
ephemPrivateKey: privKeyBBuffer,
|
|
80
|
-
});
|
|
81
|
-
const prehandle = computePrehandle({
|
|
82
|
-
ciphertext: ct,
|
|
83
|
-
handleType: plaintext.type,
|
|
84
|
-
indexHandle: 0,
|
|
85
|
-
handleVersion: 0,
|
|
86
|
-
});
|
|
87
|
-
const handle = computeHandle({
|
|
88
|
-
prehandle,
|
|
89
|
-
context: context,
|
|
90
|
-
});
|
|
91
|
-
// const inputBytes = Buffer.concat([handle, ct]);
|
|
92
|
-
return {
|
|
93
|
-
prehandle: asBytes32(prehandle),
|
|
94
|
-
handle: asBytes32(handle),
|
|
95
|
-
context,
|
|
96
|
-
ciphertext: {
|
|
97
|
-
scheme: encryptionSchemes.ecies,
|
|
98
|
-
type: plaintext.type,
|
|
99
|
-
// The prepended version keeps the bundle self-describing, avoiding a loose parameter.
|
|
100
|
-
// The prepended handle serves as a checksum on the encrypted payload, so we can fail early on an accidental mismatch
|
|
101
|
-
value: encodeCiphertextInput(context.version, bytesToHex(handle), bytesToHex(ct)),
|
|
102
|
-
},
|
|
103
|
-
};
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
// Given an ephemeral private key, called `privKeyA`, and a ciphertext `ct`,
|
|
107
|
-
// decrypt the ciphertext using ECIES, with geth's parameters:
|
|
108
|
-
// ref: https://github.com/ethereum/go-ethereum/blob/v1.15.2/crypto/ecies/ecies.go
|
|
109
|
-
export async function decrypt(privKeyA, ciphertext) {
|
|
110
|
-
const privKeyABuffer = privKeyA.kp.getPrivate().toArrayLike(Buffer, 'be', 32);
|
|
111
|
-
const pt = await eciesDecrypt(privKeyABuffer, Buffer.from(ciphertext));
|
|
112
|
-
return new Uint8Array(pt);
|
|
113
|
-
}
|
|
114
|
-
export function getEciesDecryptor({ privKeyA, }) {
|
|
115
|
-
const privKeyABuffer = privKeyA.kp.getPrivate().toArrayLike(Buffer, 'be', 32);
|
|
116
|
-
return async ({ scheme, value, }) => {
|
|
117
|
-
if (scheme !== encryptionSchemes.ecies) {
|
|
118
|
-
throw new Error(`Ciphertext with scheme ${getEncryptionSchemeName(scheme)} cannot be decrypted with ECIES`);
|
|
119
|
-
}
|
|
120
|
-
// remove the prepended version and handle
|
|
121
|
-
// We could verify or dispatch on the version here,
|
|
122
|
-
// but the intention is for the SDK to only support one input version at a time.
|
|
123
|
-
const { ciphertext } = decodeCiphertextInput(value);
|
|
124
|
-
const ptBuf = await eciesDecrypt(privKeyABuffer, bytesFromHexString(ciphertext));
|
|
125
|
-
const payload = decodeInput(ptBuf);
|
|
126
|
-
const computable = payload.value;
|
|
127
|
-
if (computable.case !== 'scalar') {
|
|
128
|
-
throw new Error(`decrypted plaintext is not a scalar, cannot currently be decrypted, this feature may be implemented on request`);
|
|
129
|
-
}
|
|
130
|
-
const typ = parse(SupportedFheType, computable.value.type);
|
|
131
|
-
return bytesToPlaintext(computable.value.value, encryptionSchemes.ecies, typ);
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGl0ZS9lY2llcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLFlBQVksRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlFLE9BQU8sS0FBSyxXQUFXLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pFLE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIscUJBQXFCLEVBR3JCLHFCQUFxQixFQUNyQixpQkFBaUIsRUFHakIsdUJBQXVCLEVBR3ZCLGdCQUFnQixHQUNqQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFbEQsNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUM5QixzRUFBc0UsQ0FBQztBQUN6RSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FDbkMsb0VBQW9FLENBQUM7QUFVdkUsb0ZBQW9GO0FBQ3BGLDBEQUEwRDtBQUMxRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLEVBQTBCO0lBRTFCLE9BQU87UUFDTCxNQUFNLEVBQUUsaUJBQWlCLENBQUMsS0FBSztRQUMvQixFQUFFO1FBQ0YsZUFBZTtZQUNiLE9BQU8sSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFB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
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as ellipticPkg from 'elliptic';
|
|
2
|
-
import { Decryptor, EciesScheme, Encryptor } from '../encryption/encryption.js';
|
|
3
|
-
import { PubKeyEncodable } from '../reencryption/index.js';
|
|
4
|
-
export declare const TEST_NETWORK_PUBKEY = "0x02516bda9e68a1c3dce74dc1b6ed7d91a91d51c1e1933947f06331cef59631e9eb";
|
|
5
|
-
export declare const TEST_NETWORK_PRIVATE_KEY = "0x384a707568ab63ad2ad9f10135faa0699801db3174f33f7846badc11affb8f57";
|
|
6
|
-
export interface Secp256k1Keypair extends PubKeyEncodable {
|
|
7
|
-
scheme: EciesScheme;
|
|
8
|
-
kp: ellipticPkg.ec.KeyPair;
|
|
9
|
-
}
|
|
10
|
-
export type Secp256k1PubKey = ellipticPkg.curve.base.BasePoint;
|
|
11
|
-
export declare function toSecp256k1Keypair(kp: ellipticPkg.ec.KeyPair): Secp256k1Keypair;
|
|
12
|
-
export declare function generateSecp256k1Keypair(): Secp256k1Keypair;
|
|
13
|
-
export declare function encodeSecp256k1PublicKey(pub: Secp256k1PubKey): Uint8Array;
|
|
14
|
-
export declare function decodeSecp256k1PublicKey(pubKeyCompressed: Uint8Array): Secp256k1PubKey;
|
|
15
|
-
export declare function decodeSecp256k1PrivateKey(privKey: Uint8Array): Secp256k1Keypair;
|
|
16
|
-
export declare function encrypt(pubKeyA: Secp256k1PubKey, plaintext: Uint8Array, privKeyB: Secp256k1Keypair): Promise<Uint8Array>;
|
|
17
|
-
export type EciesEncryptorArgs = {
|
|
18
|
-
pubKeyA: Secp256k1PubKey;
|
|
19
|
-
privKeyB: Secp256k1Keypair;
|
|
20
|
-
};
|
|
21
|
-
export declare function getEciesEncryptor({ pubKeyA, privKeyB, }: EciesEncryptorArgs): Encryptor<EciesScheme>;
|
|
22
|
-
export declare function decrypt(privKeyA: Secp256k1Keypair, ciphertext: Uint8Array): Promise<Uint8Array>;
|
|
23
|
-
export type EciesDecryptorArgs = {
|
|
24
|
-
privKeyA: Secp256k1Keypair;
|
|
25
|
-
};
|
|
26
|
-
export declare function getEciesDecryptor({ privKeyA, }: EciesDecryptorArgs): Decryptor<EciesScheme>;
|