x25519 0.1.0 x25519: ^0.1.0 copied to clipboard
Dart port of x25519 from Go Cryptography curve25519.
import 'package:collection/collection.dart';
import 'package:hex/hex.dart';
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);
}