Function fromSecretKey [src]

Create a key pair from an existing secret key. Note that with EdDSA, storing the seed, and recovering the key pair from it is recommended over storing the entire secret key. The seed of an exiting key pair can be obtained with key_pair.secret_key.seed(), and the secret key can then be recomputed using SecretKey.generateDeterministic().

Prototype

pub fn fromSecretKey(secret_key: SecretKey) (NonCanonicalError || EncodingError || IdentityElementError)!KeyPair

Parameters

secret_key: SecretKey

Source

pub fn fromSecretKey(secret_key: SecretKey) (NonCanonicalError || EncodingError || IdentityElementError)!KeyPair { // It is critical for EdDSA to use the correct public key. // In order to enforce this, a SecretKey implicitly includes a copy of the public key. // With runtime safety, we can still afford checking that the public key is correct. if (std.debug.runtime_safety) { const pk_p = try Curve.fromBytes(secret_key.publicKeyBytes()); const recomputed_kp = try generateDeterministic(secret_key.seed()); if (!mem.eql(u8, &recomputed_kp.public_key.toBytes(), &pk_p.toBytes())) { return error.NonCanonical; } } return KeyPair{ .public_key = try PublicKey.fromBytes(secret_key.publicKeyBytes()), .secret_key = secret_key, }; }