# Path: sslscan.py

# 
# Path: sslscan/exception.py
# class Timeout(Exception):
#     pass
# 
# Path: sslscan/kb.py
# class CipherResult(object):
#     """
#     This class is used to store all information for a cipher.
#     """
# 
#     def __init__(self, protocol_version, cipher_suite, status=None):
#         self.protocol_version = protocol_version
#         self.cipher_suite = cipher_suite
#         self.status = status
# 
#     @property
#     def protocol_version_name(self):
#         return flextls.helper.get_version_name(self.protocol_version)
# 
#     @property
#     def status_name(self):
#         if self.status < 0:
#             return "failed"
#         if self.status == 0:
#             return "rejected"
#         if self.status > 0:
#             return "accepted"
#         return "unknown"


from datetime import datetime
from flextls.exception import NotEnoughData
from flextls.field import CipherSuiteField, CompressionMethodField
from flextls.field import SSLv2CipherSuiteField
from flextls.protocol.handshake import ClientHello, Handshake, ServerHello, DTLSv10Handshake
from flextls.protocol.handshake import SSLv2ClientHello, SSLv2ServerHello
from flextls.protocol.handshake.extension import EllipticCurves, SignatureAlgorithms, Extension, SessionTicketTLS
from flextls.protocol.record import SSLv2Record, SSLv3Record
from sslscan import modules
from sslscan.exception import Timeout
from sslscan.kb import CipherResult
from sslscan.module.scan import BaseScan
import flextls

            detected_ciphers.append(server_hello.cipher_suite)
            cipher_suites.remove(server_hello.cipher_suite)

            count += 1
            if limit is not False and limit <= count:
                return detected_ciphers

        return detected_ciphers

    def run(self):
        kb = self._scanner.get_knowledge_base()
        for protocol_version in self._scanner.get_enabled_versions():
            if protocol_version == flextls.registry.version.SSLv2:
                cipher_suites = flextls.registry.sslv2.cipher_suites.get_ids()
                detected_ciphers = []
                try:
                    detected_ciphers = self._scan_ssl2_cipher_suites(
                        protocol_version,
                        cipher_suites
                    )
                except Timeout:
                    continue

                for cipher_id in detected_ciphers:
                    cipher_suite = flextls.registry.sslv2.cipher_suites.get(
                        cipher_id
                    )
                    kb.append(
                        "server.ciphers",

# Path: sslscan.py

# 
# Path: sslscan/exception.py
# class Timeout(Exception):
#     pass
# 
# Path: sslscan/kb.py
# class CipherResult(object):
#     """
#     This class is used to store all information for a cipher.
#     """
# 
#     def __init__(self, protocol_version, cipher_suite, status=None):
#         self.protocol_version = protocol_version
#         self.cipher_suite = cipher_suite
#         self.status = status
# 
#     @property
#     def protocol_version_name(self):
#         return flextls.helper.get_version_name(self.protocol_version)
# 
#     @property
#     def status_name(self):
#         if self.status < 0:
#             return "failed"
#         if self.status == 0:
#             return "rejected"
#         if self.status > 0:
#             return "accepted"
#         return "unknown"


# Path: sslscan/module/scan/server_ciphers.py
from datetime import datetime
from flextls.exception import NotEnoughData
from flextls.field import CipherSuiteField, CompressionMethodField
from flextls.field import SSLv2CipherSuiteField
from flextls.protocol.handshake import ClientHello, Handshake, ServerHello, DTLSv10Handshake
from flextls.protocol.handshake import SSLv2ClientHello, SSLv2ServerHello
from flextls.protocol.handshake.extension import EllipticCurves, SignatureAlgorithms, Extension, SessionTicketTLS
from flextls.protocol.record import SSLv2Record, SSLv3Record
from sslscan import modules
from sslscan.exception import Timeout
from sslscan.kb import CipherResult
from sslscan.module.scan import BaseScan
import flextls


            detected_ciphers.append(server_hello.cipher_suite)
            cipher_suites.remove(server_hello.cipher_suite)

            count += 1
            if limit is not False and limit <= count:
                return detected_ciphers

        return detected_ciphers

    def run(self):
        kb = self._scanner.get_knowledge_base()
        for protocol_version in self._scanner.get_enabled_versions():
            if protocol_version == flextls.registry.version.SSLv2:
                cipher_suites = flextls.registry.sslv2.cipher_suites.get_ids()
                detected_ciphers = []
                try:
                    detected_ciphers = self._scan_ssl2_cipher_suites(
                        protocol_version,
                        cipher_suites
                    )
                except Timeout:
                    continue

                for cipher_id in detected_ciphers:
                    cipher_suite = flextls.registry.sslv2.cipher_suites.get(
                        cipher_id
                    )
                    kb.append(
                        "server.ciphers",

                        CipherResult(