main function
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));
}