Change Ed25519 constructor

This commit is contained in:
vrde 2017-05-14 14:41:04 +02:00 committed by Matthias Kretschmann
parent 2ad44e1744
commit 8a86f954f9
Signed by: m
GPG Key ID: 606EEEF3C479A91F
2 changed files with 4 additions and 14 deletions

View File

@ -6,22 +6,12 @@ import sha3 from 'js-sha3';
* @public
* @class Keypair Ed25519 keypair in base58 (as BigchainDB expects base58 keys)
* @type {Object}
* @param {number} [secret] A seed that will be used as a key derivation function
* @param {Buffer} [seed] A seed that will be used as a key derivation function
* @property {string} publicKey
* @property {string} privateKey
*/
export default function Ed25519Keypair(secret) {
let keyPair;
if (secret) {
// Quick and dirty: use key derivation function instead
const secretHash = sha3.sha3_256
.create()
.update(secret)
.array();
keyPair = nacl.sign.keyPair.fromSeed(new Uint8Array(secretHash))
} else {
keyPair = nacl.sign.keyPair();
}
export default function Ed25519Keypair(seed) {
const keyPair = seed ? nacl.sign.keyPair.fromSeed(seed) : nacl.sign.keyPair();
this.publicKey = base58.encode(keyPair.publicKey);
// tweetnacl's generated secret key is the secret key + public key (resulting in a 64-byte buffer)
this.privateKey = base58.encode(keyPair.secretKey.slice(0, 32));

View File

@ -8,7 +8,7 @@
*/
export default function makeOutput(condition, amount = 1) {
return {
amount: amount,
amount: amount.toString(),
condition,
'public_keys': condition.details.hasOwnProperty('public_key') ?
[condition.details.public_key] : [],