public void Setup() { _echoServer = new SocketServer(new EchoProtocol(false)); _echoServer.Start(11000); _echoClient = new SocketClient(new EchoProtocol(true)); _echoClient.Connect("localhost", 11000); unsafe { var ckp = KeyPair.Generate(); var skp = KeyPair.Generate(); var psk1 = PskRef.Create(); var psk2 = PskRef.Create(psk1.ptr); var sp = new NoiseProtocol(false, skp.PrivateKey, psk1); _noiseServer = new SocketServer(sp); _noiseServer.Start(12000); var cp = new NoiseProtocol(true, ckp.PrivateKey, psk2, skp.PublicKey); _noiseClient = new SocketClient(cp); _noiseClient.Connect("localhost", 12000); } }
public void ActTwoResponderSide(string actOneValidInput, string expectedHashHex, string expectedOutputHex) { WithResponderHandshakeInitiatedToKnownLocalKeys(); var buffer = new ArrayBufferWriter <byte>(50); NoiseProtocol.ProcessHandshakeRequest(new ReadOnlySequence <Byte>(actOneValidInput.ToByteArray()), buffer); var expectedOutput = expectedOutputHex.ToByteArray(); Assert.Equal(expectedOutput.Length, buffer.WrittenCount); Assert.Equal(expectedOutput, buffer.WrittenSpan.ToArray()); Assert.Equal(expectedHashHex.ToByteArray(), NoiseProtocol.HandshakeContext.Hash); }
public void ActOneInitiatorOutputFitsLightningNetworkBolt8testVector(string expectedHashHex, string expectedOutputHex) { WithInitiatorHandshakeInitiatedToKnownLocalAndRemoteKeys(); var buffer = new ArrayBufferWriter <byte>(50); NoiseProtocol.StartNewInitiatorHandshake(Bolt8TestVectorParameters.Responder.PublicKey, buffer); var expectedOutput = expectedOutputHex.ToByteArray(); Assert.Equal(buffer.WrittenCount, expectedOutput.Length); Assert.Equal(buffer.WrittenSpan.ToArray(), expectedOutput); Assert.Equal(expectedHashHex.ToByteArray(), NoiseProtocol.HandshakeContext.Hash); }
public void ActThreeInitiatorSide(string validInputHex, string expectedHashHex, string expectedOutputHex) { WithInitiatorHandshakeInitiatedToKnownLocalAndRemoteKeys(); WithInitiatorActOneCompletedSuccessfully(); var buffer = new ArrayBufferWriter <byte>(); NoiseProtocol.ProcessHandshakeRequest(new ReadOnlySequence <Byte>(validInputHex.ToByteArray()), buffer); var expectedOutput = expectedOutputHex.ToByteArray(); Assert.Equal(expectedOutput.Length, buffer.WrittenCount); Assert.Equal(expectedHashHex.ToByteArray(), NoiseProtocol.HandshakeContext.Hash); Assert.Equal(buffer.WrittenSpan.ToArray(), expectedOutput); }
private void WithInitiatorActOneCompletedSuccessfully() { IBufferWriter <byte> buffer = new ArrayBufferWriter <byte>(50); NoiseProtocol.StartNewInitiatorHandshake(Bolt8TestVectorParameters.Responder.PublicKey, buffer); }