public void TestNoiseXx() { var rootKey = PublicKeyAuth.GenerateKeyPair(); var Verifier = DiscoHelper.CreatePublicKeyVerifier(rootKey.PublicKey); var clienPair = Asymmetric.GenerateKeyPair(); var serverPair = Asymmetric.GenerateKeyPair(); // init var clientConfig = new Config { KeyPair = clienPair, HandshakePattern = NoiseHandshakeType.NoiseXX, PublicKeyVerifier = Verifier, StaticPublicKeyProof = DiscoHelper.CreateStaticPublicKeyProof(rootKey.PrivateKey, clienPair.PublicKey) }; var serverConfig = new Config { KeyPair = serverPair, HandshakePattern = NoiseHandshakeType.NoiseXX, PublicKeyVerifier = Verifier, StaticPublicKeyProof = DiscoHelper.CreateStaticPublicKeyProof(rootKey.PrivateKey, serverPair.PublicKey) }; this.RunTwoWayTest(clientConfig, serverConfig, 1802); }
/// <summary> /// Generate a disco key pair (X25519 key pair) /// and save it to a file in hexadecimal form. /// </summary> /// <param name="fileName">Filepath to save key</param> /// <returns>Disco key pair</returns> public static KeyPair GenerateAndSaveDiscoKeyPair(string fileName) { var keyPair = Asymmetric.GenerateKeyPair(); File.WriteAllText(fileName, keyPair.ExportPublicKey() + keyPair.ExportPrivateKey()); return(keyPair); }
public void BasicCanDecryptTest() { const string PLAINTEXT = "This is a test of the SmartEncryption system..."; var senderKeys = Asymmetric.GenerateKeyPair(); var recipKeys = Asymmetric.GenerateKeyPair(); var cipher = Asymmetric.Encrypt(Encoding.UTF8.GetBytes(PLAINTEXT), senderKeys.PrivateKey, recipKeys.PublicKey); var plain = Asymmetric.Decrypt(cipher, recipKeys.PrivateKey, senderKeys.PublicKey); Assert.AreEqual(PLAINTEXT, Encoding.UTF8.GetString(plain)); }
public void TestNoiseN() { // init var clientConfig = new Config { KeyPair = Asymmetric.GenerateKeyPair(), HandshakePattern = NoiseHandshakeType.NoiseN }; var serverConfig = new Config { KeyPair = Asymmetric.GenerateKeyPair(), HandshakePattern = NoiseHandshakeType.NoiseN }; this.RunOneWayTest(clientConfig, serverConfig, 1803); }
public async Task TestSeveralWriteRoutines() { var clientConfig = new Config { KeyPair = Asymmetric.GenerateKeyPair(), HandshakePattern = NoiseHandshakeType.NoiseXX, StaticPublicKeyProof = new byte[] { }, PublicKeyVerifier = ConnectionTest.Verifier }; var serverConfig = new Config { KeyPair = Asymmetric.GenerateKeyPair(), HandshakePattern = NoiseHandshakeType.NoiseXX, StaticPublicKeyProof = new byte[] { }, PublicKeyVerifier = ConnectionTest.Verifier }; await this.RunConnectionTest(clientConfig, serverConfig, 1810); }
private void PrepareDisco(int port) { // init var clientConfig = new Config { KeyPair = Asymmetric.GenerateKeyPair(), HandshakePattern = NoiseHandshakeType.NoiseNK }; var serverConfig = new Config { KeyPair = Asymmetric.GenerateKeyPair(), HandshakePattern = NoiseHandshakeType.NoiseNK }; // set up remote keys serverConfig.RemoteKey = clientConfig.KeyPair.PublicKey; clientConfig.RemoteKey = serverConfig.KeyPair.PublicKey; this.PrepareDiscoServer(serverConfig, port); System.Threading.Thread.Sleep(5000); this.PrepareDiscoClient(clientConfig, port); }
public async Task TestHalfDuplex() { // init var clientConfig = new Config { KeyPair = Asymmetric.GenerateKeyPair(), HandshakePattern = NoiseHandshakeType.NoiseXX, PublicKeyVerifier = ConnectionTest.Verifier, StaticPublicKeyProof = new byte[] { }, HalfDuplex = true }; var serverConfig = new Config { KeyPair = Asymmetric.GenerateKeyPair(), HandshakePattern = NoiseHandshakeType.NoiseXX, PublicKeyVerifier = ConnectionTest.Verifier, StaticPublicKeyProof = new byte[] { }, HalfDuplex = true }; await this.RunConnectionTest(clientConfig, serverConfig, 1811, 10); }