bip340 0.0.2 copy "bip340: ^0.0.2" to clipboard
bip340: ^0.0.2 copied to clipboard

outdated

BIP340 (Schnorr) signature and verification.

example/example.dart

import 'dart:core';
import 'dart:math';
import 'package:http/http.dart' as http;
import 'package:bip340/bip340.dart' as bip340;
import 'package:csv/csv.dart' as csv;

void main() async {
  var data = await http.read(
      "https://raw.githubusercontent.com/bitcoin/bips/master/bip-0340/test-vectors.csv");

  List<List<dynamic>> vectors = csv.CsvToListConverter().convert(
    data,
    shouldParseNumbers: false,
  );
  for (var i = 1; i < vectors.length; i++) {
    var line = vectors[i];
    var errorMessage = line[7].length == 0 ? "<blank>" : line[7];

    if (line[3].length > 0) {
      var sig = bip340.sign(line[1], line[4], line[3]);
      var expected = line[5].toLowerCase();
      if (sig != expected) {
        print("SIGN error on line $i: ${errorMessage}.");
        print("  got signature '$sig', expected '${expected}'.");
      } else {
        print("SIGN line $i is correct.");
      }
    }

    var ok = bip340.verify(line[2], line[4], line[5]);
    var expected = line[6].toLowerCase();
    if ((ok && expected == 'true') || (!ok && expected == 'false')) {
      print("VERIFY line $i is correct.");
    } else {
      print("VERIFY error on line $i: ${errorMessage}.");
      print("  verify() returned '$ok', expected '$expected'");
    }
  }
}
5
likes
0
pub points
78%
popularity

Publisher

unverified uploader

BIP340 (Schnorr) signature and verification.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

convert, crypto, pointycastle

More

Packages that depend on bip340