Exemplo n.º 1
0
        public async Task Pipe2PipeTest()
        {
            var readData  = string.Empty;
            var wait      = new System.Threading.ManualResetEvent(false);
            var ipAddress = new IPEndPoint(IPAddress.Loopback, 27777);

            using (var securePipeOptions = new System.IO.Pipelines.Networking.Sockets.SocketListener())
                using (var secureListener = new OpenSslSecurePipeListener(Data.Certificates.RSACertificate))
                {
                    //secureListener.CryptoProvider = new TestingCryptoProvider();
                    secureListener.CryptoProvider.CipherSuites.SetCipherSuites(new CipherSuites.CipherSuite[] { CipherSuites.PredefinedCipherSuites.GetSuiteByName(CipherSuites.PredefinedCipherSuites.PredefinedSuite.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) });
                    securePipeOptions.OnConnection(async(conn) =>
                    {
                        var pipe = await secureListener.CreateConnection(conn);
                        Console.WriteLine("Handshake Done");
                        var reader = await pipe.Input.ReadAsync();
                        readData   = Encoding.UTF8.GetString(reader.Buffer.ToArray());
                        var writer = pipe.Output.Alloc();
                        writer.Append(reader.Buffer);
                        await writer.FlushAsync();
                        wait.Set();
                    });
                    securePipeOptions.Start(ipAddress);

                    var client = await secureListener.CreateClientConnection(await System.IO.Pipelines.Networking.Sockets.SocketConnection.ConnectAsync(ipAddress));


                    //        wait.WaitOne();
                    //        Assert.Equal("", readData);
                }
        }
Exemplo n.º 2
0
 public async Task HandshakeCompletesWithEcdsa()
 {
     using (var bufferPool = new MemoryPool())
         using (var securePipeOptions = new OpenSslSecurePipeListener(Data.Certificates.ECDSACertificate, new PipeOptions(bufferPool)))
         {
             securePipeOptions.CryptoProvider.CipherSuites.SetCipherSuites(new CipherSuites.CipherSuite[] { CipherSuites.PredefinedCipherSuites.GetSuiteByName(CipherSuites.PredefinedCipherSuites.PredefinedSuite.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384) });
             await FullConnectionSSlStreamFacts.SmallMessageFact(new PipeOptions(bufferPool), securePipeOptions);
         }
 }
Exemplo n.º 3
0
 public async Task MultiBuffer()
 {
     using (var bufferPool = new MemoryPool())
     {
         var options = new PipeOptions(bufferPool);
         using (var securePipeOptions = new OpenSslSecurePipeListener(Data.Certificates.RSACertificate, options))
         {
             await FullConnectionSSlStreamFacts.MultiBufferFact(options, securePipeOptions);
         }
     }
 }
Exemplo n.º 4
0
 public async Task HandshakeCompletes(CipherSuites.PredefinedCipherSuites.PredefinedSuite suite, NamedGroup[] supportedNamedGroups)
 {
     using (var bufferPool = new MemoryPool())
         using (var securePipeOptions = new OpenSslSecurePipeListener(Data.Certificates.RSACertificate, new PipeOptions(bufferPool)))
         {
             if (supportedNamedGroups != null)
             {
                 securePipeOptions.CryptoProvider.KeyExchangeProvider.SetSupportedNamedGroups(supportedNamedGroups);
             }
             securePipeOptions.CryptoProvider.CipherSuites.SetCipherSuites(new CipherSuites.CipherSuite[] { CipherSuites.PredefinedCipherSuites.GetSuiteByName(suite) });
             await FullConnectionSSlStreamFacts.SmallMessageFact(new PipeOptions(bufferPool), securePipeOptions);
         }
 }
Exemplo n.º 5
0
        public async Task EphemeralSessionProvider()
        {
            using (var bufferPool = new MemoryPool())
            {
                var options = new PipeOptions(bufferPool);
                using (var securePipeOptions = new OpenSslSecurePipeListener(Data.Certificates.RSACertificate, options))
                {
                    securePipeOptions.UseEphemeralSessionProvider();
                    await FullConnectionSSlStreamFacts.SmallMessageFact(options, securePipeOptions);

                    await FullConnectionSSlStreamFacts.SmallMessageFact(options, securePipeOptions);
                }
            }
        }