useEliptic method

dynamic useEliptic()

Implementation

useEliptic() {
  var xpub = "7e_NTgcJO822SEatobzV-iFBldtgip9Sfj8K-gu0SF0";
  var ypub = "ALHLIgvGkn_U5iwj3n4ajpoKDnw65QDNqFFy9VFskKg";

  var xpub1 = base64Decode(base64.normalize(xpub));
  var ypub1 = base64Decode(base64.normalize(ypub));

  var xpub2 = hex.encode(xpub1);
  var ypub2 = hex.encode(ypub1);

  var curve = getSecp256r1();
  var p = AffinePoint.fromXY(
      BigInt.parse(xpub2, radix: 16), BigInt.parse(ypub2, radix: 16));

  var publicServer = PublicKey.fromPoint(curve, p);

  // print("pub server => " + publicServer.toHex());

  // use elliptic curves
  var ec = getSecp256r1();
  var priv = ec.generatePrivateKey();
  var pub = priv.publicKey;
  // print('privateKey: 0x$priv');
  // print('publicKey: 0x$pub');

  // use ecdh
  var privateAlice = ec.generatePrivateKey();
  var publicAlice = privateAlice.publicKey;
  var privateBob = ec.generatePrivateKey();
  var publicBob = privateBob.publicKey;
  var secretAlice = computeSecretHex(privateAlice, publicBob);
  var secretBob = computeSecretHex(privateBob, publicAlice);

  // print('[ELIPTIC] secretAlice: 0x$secretAlice');
  // print('[ELIPTIC] secretBob: 0x$secretBob');

  var secretClientBob = computeSecretHex(privateBob, publicServer);
  var secretClientAlice = computeSecretHex(privateAlice, publicServer);
  // print('[ELIPTIC] secretAliceClient: 0x$secretClientAlice');
  // print('[ELIPTIC] secretBobClient: 0x$secretClientBob');

  var secretTest = computeSecret(privateBob, publicServer);
  useCryptography(secretTest);
}