Ed25519Keypair.fromSecretKey constructor
Create a Ed25519 keypair from a raw secret key byte array.
throws error if the provided secret key is invalid and validation is not skipped.
Implementation
factory Ed25519Keypair.fromSecretKey(
Uint8List secretKey,
{ bool skipValidation = true }
) {
if (secretKey.length == 32) {
return Ed25519Keypair.fromSeed(secretKey);
}
if (secretKey.length != 64) throw ArgumentError("Wrong secretKey size. Expected 64 bytes, got ${secretKey.length}.");
final privateKey = ed25519.PrivateKey(secretKey);
final publicKey = ed25519.public(privateKey);
if (!skipValidation) {
final msg = Uint8List.fromList(utf8.encode('sui validation'));
final signature = ed25519.sign(privateKey,msg);
if (!ed25519.verify(publicKey, msg, signature)) {
throw ArgumentError('provided secretKey is invalid');
}
}
return Ed25519Keypair(secretKey);
}