x25519 0.1.2 copy "x25519: ^0.1.2" to clipboard
x25519: ^0.1.2 copied to clipboard

Dart port of x25519 from Go Cryptography curve25519.

Curve25519 #

Dart port of Curve25519

Pub package

Usage #


import 'package:x25519/x25519.dart';

void genKeyAndX25519() {
  var aliceKeyPair = generateKeyPair();
  var bobKeyPair = generateKeyPair();

  var aliceSharedKey = X25519(aliceKeyPair.privateKey, bobKeyPair.publicKey);
  var bobSharedKey = X25519(bobKeyPair.privateKey, aliceKeyPair.publicKey);

  assert(ListEquality().equals(aliceSharedKey, bobSharedKey));
}

void useX25519() {
  const expectedHex =
      '89161fde887b2b53de549af483940106ecc114d6982daa98256de23bdf77661a';
  var x = List<int>.filled(32, 0);
  x[0] = 1;

  for (var i = 0; i < 200; i++) {
    x = X25519(x, basePoint);
  }
  assert(HEX.encode(x) == expectedHex);
}

Benchmark #

Simulate from pinenacl-dart Benchmark

MacBook Pro (16-inch, 2019), macOS Big Sur, with 2.4GHz i9 32GB

JiT (Dart VM) Benchmark

dart test test/benchmark/curve25519_benchmark.dart

type iterations time
generateKeyPair 1259 iterations 5001 ms
X25519 1745 iterations 5001 ms

AoT (native binary)

dart2native test/benchmark/curve25519_benchmark.dart -o curve25519_benchmark
./curve25519_benchmark

type iterations time
generateKeyPair 1751 iterations 5002 ms
X25519 2266 iterations 5000 ms

JS (Dart2JS) benchmark

dart test test/benchmark/curve25519_benchmark.dart -p chrome

type iterations time
generateKeyPair 242 iterations 5022 ms
X25519 244 iterations 5013 ms
2
likes
160
points
28.8k
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Dart port of x25519 from Go Cryptography curve25519.

Repository (GitHub)
View/report issues

License

Apache-2.0 (license)

Dependencies

adaptive_number, collection

More

Packages that depend on x25519