예제 #1
0
        public SslManagedSocketConnection(BsdContext bsdContext, SslVersion sslVersion, int socketFd, ISocket socket)
        {
            _bsdContext = bsdContext;
            _sslVersion = sslVersion;

            SocketFd = socketFd;
            Socket   = socket;
        }
예제 #2
0
 public SslStatus(bool isSecureConnection, CertStatus certStatus, SslVersion sslVersion, SslContentStatus contentStatus, X509Certificate2 certificate)
 {
     IsSecureConnection = isSecureConnection;
     CertStatus         = certStatus;
     SslVersion         = sslVersion;
     ContentStatus      = contentStatus;
     X509Certificate    = certificate;
 }
예제 #3
0
 public ISslConnection(ulong processId, SslVersion sslVersion)
 {
     _processId        = processId;
     _sslVersion       = sslVersion;
     _ioMode           = IoMode.Blocking;
     _sessionCacheMode = SessionCacheMode.None;
     _verifyOption     = VerifyOption.PeerCa | VerifyOption.HostName;
 }
예제 #4
0
 public SslStatus(bool isSecureConnection, CertStatus certStatus, SslVersion sslVersion, SslContentStatus contentStatus, X509Certificate2 certificate)
 {
     this.isSecureConnection = isSecureConnection;
     this.certStatus = certStatus;
     this.sslVersion = sslVersion;
     this.contentStatus = contentStatus;
     this.certificate = certificate;
 }
예제 #5
0
        // CreateContext(nn::ssl::sf::SslVersion, u64, pid) -> object<nn::ssl::sf::ISslContext>
        public ResultCode CreateContext(ServiceCtx context)
        {
            SslVersion sslVersion     = (SslVersion)context.RequestData.ReadUInt32();
            ulong      pidPlaceholder = context.RequestData.ReadUInt64();

            MakeObject(context, new ISslContext(context.Request.HandleDesc.PId, sslVersion));

            Logger.Stub?.PrintStub(LogClass.ServiceSsl, new { sslVersion });

            return(ResultCode.Success);
        }
예제 #6
0
            private void _read()
            {
                _version          = new SslVersion(m_io, this, m_root);
                _cipherSpecLength = m_io.ReadU2be();
                _sessionIdLength  = m_io.ReadU2be();
                _challengeLength  = m_io.ReadU2be();
                __raw_cipherSpecs = m_io.ReadBytes(CipherSpecLength);
                var io___raw_cipherSpecs = new KaitaiStream(__raw_cipherSpecs);

                _cipherSpecs = new SslCipherList(io___raw_cipherSpecs, this, m_root);
                _sessionId   = m_io.ReadBytes(SessionIdLength);
                _challenge   = m_io.ReadBytes(ChallengeLength);
            }
예제 #7
0
        private static SslProtocols TranslateSslVersion(SslVersion version)
        {
            switch (version & SslVersion.VersionMask)
            {
            case SslVersion.Auto:
                return(SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12 | SslProtocols.Tls13);

            case SslVersion.TlsV10:
                return(SslProtocols.Tls);

            case SslVersion.TlsV11:
                return(SslProtocols.Tls11);

            case SslVersion.TlsV12:
                return(SslProtocols.Tls12);

            case SslVersion.TlsV13:
                return(SslProtocols.Tls13);

            default:
                throw new NotImplementedException(version.ToString());
            }
        }
예제 #8
0
 public ISslContext(ulong processId, SslVersion sslVersion)
 {
     _processId  = processId;
     _sslVersion = sslVersion;
 }