コード例 #1
0
        internal TlsClientPipeline(IPipeConnection inputPipe, SSL_CTX context, ClientOptions clientOptions)
        {
            _innerConnection = inputPipe;
            _readInnerPipe   = new Pipe(new PipeOptions(System.Buffers.MemoryPool.Default));
            _writeInnerPipe  = new Pipe(new PipeOptions(System.Buffers.MemoryPool.Default));
            _context         = context;
            _ssl             = SSL_new(_context);

            _clientOptions = clientOptions;

            _readBio  = s_ReadBio.New();
            _writeBio = s_WriteBio.New();
            SSL_set0_rbio(_ssl, _readBio);
            SSL_set0_wbio(_ssl, _writeBio);
            SSL_set_connect_state(_ssl);
        }
コード例 #2
0
ファイル: SslContext.cs プロジェクト: zero10/scallion
        public List <string> GetCipherList()
        {
            List <string> ret = new List <string>();
            SSL_CTX       raw = (SSL_CTX)Marshal.PtrToStructure(ptr, typeof(SSL_CTX));

            Core.Stack <SslCipher> stack = new Core.Stack <SslCipher>(raw.cipher_list, false);
            foreach (SslCipher cipher in stack)
            {
                IntPtr cipher_ptr = Native.SSL_CIPHER_description(cipher.Handle, null, 0);
                if (cipher_ptr != IntPtr.Zero)
                {
                    string strCipher = Marshal.PtrToStringAnsi(cipher_ptr);
                    ret.Add(strCipher);
                    Native.OPENSSL_free(cipher_ptr);
                }
            }
            return(ret);
        }
コード例 #3
0
        public static void SSL_CTX_use_certificate(SSL_CTX ctx, X509 cert)
        {
            var result = Internal_SSL_CTX_use_certificate(ctx, cert);

            ThrowOnErrorReturnCode(result);
        }
コード例 #4
0
 private unsafe extern static int Internal_SSL_CTX_use_certificate(SSL_CTX ctx, X509 cert);
コード例 #5
0
 private unsafe extern static int Internal_SSL_CTX_use_PrivateKey(SSL_CTX ctx, EVP_PKEY pkey);
コード例 #6
0
        public static void SSL_CTX_use_PrivateKey(SSL_CTX ctx, EVP_PKEY key)
        {
            var result = Internal_SSL_CTX_use_PrivateKey(ctx, key);

            ThrowOnErrorReturnCode(result);
        }
コード例 #7
0
        public unsafe static void SSL_CTX_set_max_proto_version(SSL_CTX ctx, TLS_VERSION version)
        {
            var result = SSL_CTX_ctrl(ctx, SSL_CTRL.SSL_CTRL_SET_MAX_PROTO_VERSION, (int)version, null);

            ThrowOnErrorReturnCode(result);
        }
コード例 #8
0
 public static extern SSL SSL_new(SSL_CTX ctx);
コード例 #9
0
ファイル: SSL_CTX_ctrl.cs プロジェクト: mgravell/RedisPing
 private unsafe extern static int SSL_CTX_ctrl(SSL_CTX ctx, SSL_CTRL cmd, int larg, void *ptr);