main function

Future<void> main()

Implementation

Future<void> main() async {
  // final algorithm = X25519();

  // // Alice chooses her key pair
  // final aliceKeyPair = await algorithm.newKeyPair();

  // // Alice knows Bob's public key
  // final bobKeyPair = await algorithm.newKeyPair();
  // final bobPublicKey = await bobKeyPair.extractPublicKey();

  // // Alice calculates the shared secret.
  // final sharedSecret = await algorithm.sharedSecretKey(
  //   keyPair: aliceKeyPair,
  //   remotePublicKey: bobPublicKey,
  // );
  // // Encrypt/Decrypt
  // final data = 'asdfg';
  // final message = str2Data(data);
  // var enc_data = await encryptMessage(sharedSecret, message);
  // print(enc_data);
  // var dec_data = await decryptMessage(sharedSecret, enc_data);
  // print(data2Str(dec_data) == data2Str(message));

  Role r1 = Role();
  await r1.initialize();
  Role r2 = Role();
  await r2.initialize();
  await r1.generateSharedSecret(r2.pubKey);
  await r2.generateSharedSecret(r1.pubKey);
  final sharedSecret = r2.secretKey;

  print(r1.toJson());

  print(r1.pubKey);
  print(r1.pubKey.bytes);
  print(r2.pubKey.bytes);
  // print(pubKeyFromData(r1.pubKey.bytes));

  // Encrypt/Decrypt
  final data = 'asdfg';
  final enc_data = await r1.encrypt(data);
  var dec_data = await r1.decrypt(enc_data);
  print("Encrypted: $enc_data");
  print("Decrypted: $dec_data");
  print(data == dec_data);
  // print(jsonEncode({
  //   'c': enc_data.cipherText,
  //   'n': enc_data.nonce,
  //   'm': enc_data.mac.bytes,
  // }));
  // print(SecretBox(enc_data.cipherText,
  //   nonce: enc_data.nonce,
  //   mac: Mac(enc_data.mac.bytes)
  // ));
  // final message = str2Data(data);
  // var enc_data = await encryptMessage(sharedSecret, message);
  // print(enc_data);
  // var dec_data = await decryptMessage(sharedSecret, enc_data);
  // print(data2Str(dec_data) == data2Str(message));

}