EDDSAPrivateKey.fromKhalow constructor

EDDSAPrivateKey.fromKhalow(
  1. EDPoint generator,
  2. List<int> secretKey
)

Creates an EdDSA private key from a private key value for Khalow curves.

Parameters:

  • generator: The Edwards curve generator point.
  • privateKey: The private key bytes for Khalow curves.

Implementation

factory EDDSAPrivateKey.fromKhalow(EDPoint generator, List<int> secretKey) {
  final baselen = generator.curve.baselen;
  assert(secretKey.length == baselen || secretKey.length == baselen * 2);
  if (secretKey.length < baselen) {
    throw ArgumentException.invalidOperationArguments(
      "EDDSAPrivateKey",
      name: "secretKey",
      reason: "Invalid secret key bytes length.",
    );
  }
  final List<int> privateKeyPart = secretKey.sublist(0, baselen);
  final List<int> extendedKey = secretKey.sublist(baselen);
  final secret = BigintUtils.fromBytes(
    privateKeyPart,
    byteOrder: Endian.little,
  );
  return EDDSAPrivateKey._(
    generator: generator,
    privateKey: privateKeyPart,
    secret: secret,
    extendedKey: extendedKey,
  );
}