// Deterministically generates new priv-key bytes from key. func (key PrivKeyEd25519) Generate(index int) PrivKeyEd25519 { newBytes := wire.BinarySha256(struct { PrivKey [64]byte Index int }{key, index}) var newKey [64]byte copy(newKey[:], newBytes) return PrivKeyEd25519(newKey) }
// Generates a new account with private key from SHA256 hash of a secret func GenPrivAccountFromSecret(secret []byte) *PrivAccount { privKey32 := wire.BinarySha256(secret) // Not Ripemd160 because we want 32 bytes. privKeyBytes := new([64]byte) copy(privKeyBytes[:32], privKey32) pubKeyBytes := ed25519.MakePublicKey(privKeyBytes) pubKey := PubKeyEd25519(*pubKeyBytes) privKey := PrivKeyEd25519(*privKeyBytes) return &PrivAccount{ Address: pubKey.Address(), PubKey: pubKey, PrivKey: privKey, } }
// Generates 32 priv key bytes from secret func GenPrivKeyBytesFromSecret(secret string) []byte { return wire.BinarySha256(secret) // Not Ripemd160 because we want 32 bytes. }