import * as CryptoJS from 'crypto-js'; import { Keys } from './typings/keys'; import { ECKCDSA } from './ec-kcdsa'; import { Converter } from './converter'; /** * Generate the Master Public Key and Master Private Keys for a new passphrase * @param passPhrase The passphrase * @return EC-KCDSA sign key pair + agreement key * @module crypto */ export const generateMasterKeys = (passPhrase: string): Keys => { const hashedPassPhrase = CryptoJS.SHA256(passPhrase); const keys = ECKCDSA.keygen(Converter.convertWordArrayToByteArray(hashedPassPhrase)); return { publicKey: Converter.convertByteArrayToHexString(keys.p), signPrivateKey: Converter.convertByteArrayToHexString(keys.s), agreementPrivateKey: Converter.convertByteArrayToHexString(keys.k) }; };