tet_20210804210023.js 1.03 KB
const SM = require('sm-crypto')

function getKeys(secret) {
  // const hash = createHash(Buffer.from(secret))

  // const m = new Uint8Array(nacl.sign.seedLength)
  // for (let i = 0; i < m.length; i++) m[i] = hash[i]

  // const keypair = nacl.sign.keyPair.fromSeed(m)
  /**
   *  {
  publicKey: '0x10d15cb4a3747d9bcf6339ef7b1d8462e86da595e7da3f4dd17bb1b7e3b43cf9c67e41a439ec1ddae15e697b71bbfa2c4f662fce5105fc21c404df9ddae513f7',
  privateKey: '5c3e9a13ff5618cca46bdf5780c4391e89af27eeea044c90ad9684f4fb51c453'
}
   */
  const hash=SM.sm3(secret)
  const keypair =SM.sm2.generateKeyPairHexByHashValue(hash)
  let sigValueHex = SM.sm2.doSignature(secret, keypair.privateKey)
  let verifyResult = SM.sm2.doVerifySignature(secret, sigValueHex, keypair.publicKey) 
  console.log(verifyResult)
  return {
    publicKey: (keypair.publicKey),
    privateKey: (keypair.privateKey)
  }
  
}
function bufToHex(data) {
  return Buffer.from(data).toString('hex')
}
console.log(getKeys("enter boring shaft rent essence foil trick vibrant fabric quote indoor output"))