MlDsaPublicKey.create constructor

MlDsaPublicKey.create({
  1. required ThresholdParams params,
  2. required Uint8List ceremonyId,
  3. required Uint8List publicKeyBytes,
})

Creates a validated public key.

Implementation

factory MlDsaPublicKey.create({
  required ThresholdParams params,
  required Uint8List ceremonyId,
  required Uint8List publicKeyBytes,
}) {
  validateCeremonyId(ceremonyId);
  final profile = MlDsaThresholdProfile.fromScheme(params.scheme);
  if (publicKeyBytes.length != profile.publicKeyLength) {
    throw InvalidParams(
      'ML-DSA public key length ${publicKeyBytes.length} != ${profile.publicKeyLength}',
    );
  }
  return MlDsaPublicKey._(
    params: params,
    ceremonyId: Uint8List.fromList(ceremonyId),
    bytes: Uint8List.fromList(publicKeyBytes),
  );
}