keyPair static method

MlDsa65KeyPair keyPair({
  1. List<int>? seed,
})

Generates a key pair, from seed (32 bytes) when given.

Implementation

static MlDsa65KeyPair keyPair({List<int>? seed}) => using((arena) {
  if (seed != null) {
    if (seed.length != seedLength) {
      throw ArgumentError.value(
        seed.length,
        'seed',
        'ML-DSA-65 seed is $seedLength bytes',
      );
    }
    final pkey = keyFromOctetParam(arena, algorithm, 'seed', seed);
    return MlDsa65KeyPair(
      rawPublicBytes(arena, pkey),
      rawPrivateBytes(arena, pkey),
      Uint8List.fromList(seed),
    );
  }
  return withGeneratedKey(
    arena,
    algorithm,
    (pkey) => MlDsa65KeyPair(
      rawPublicBytes(arena, pkey),
      rawPrivateBytes(arena, pkey),
      octetParam(arena, pkey, 'seed'),
    ),
  );
});