crypton icon indicating copy to clipboard operation
crypton copied to clipboard

Verification of the digital signature using EC key failed

Open jifang opened this issue 1 year ago • 1 comments

import 'dart:typed_data';

import 'package:crypton/crypton.dart';

main() {
  ECKeypair ecKeypair = ECKeypair.fromRandom();
  for (int i = 0; i < 100; i++) {
    String message = i.toRadixString(16);
    final List<int> codeUnits = message.codeUnits;
    final Uint8List unit8List = Uint8List.fromList(codeUnits);
    final signature = ecKeypair.privateKey.createSHA256Signature(unit8List);
    bool verified = ecKeypair.publicKey.verifySHA256Signature(unit8List, signature);
    if (!verified) {
      print('verified failed: $unit8List');
    }
  }
}

On average, the fail rate is about 5%. RSAKey seems fine though.

jifang avatar Nov 29 '23 08:11 jifang

Hmm, that seems wired. I'm gonna look into it

konstantinullrich avatar Nov 29 '23 20:11 konstantinullrich