tlsfuzzer/tlslite-ng

View on GitHub

Showing 324 of 1,708 total issues

File python_tripledes.py has 333 lines of code (exceeds 250 allowed). Consider refactoring.
Open

#################################################
#               Documentation                   #
#################################################

# Author:   Todd Whiteman
Severity: Minor
Found in tlslite/utils/python_tripledes.py - About 4 hrs to fix

    Function _recvHeader has a Cognitive Complexity of 27 (exceeds 5 allowed). Consider refactoring.
    Open

        def _recvHeader(self):
            """Read a single record header from socket"""
            #Read the next record header
            buf = bytearray(0)
            ssl2 = False
    Severity: Minor
    Found in tlslite/recordlayer.py - About 3 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function _clientGetKeyFromChain has a Cognitive Complexity of 26 (exceeds 5 allowed). Consider refactoring.
    Open

        def _clientGetKeyFromChain(self, certificate, settings, tack_ext=None):
            #Get and check cert chain from the Certificate message
            cert_chain = certificate.cert_chain
            if not cert_chain or cert_chain.getNumCerts() == 0:
                for result in self._sendError(
    Severity: Minor
    Found in tlslite/tlsconnection.py - About 3 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function _getNextRecordFromSocket has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
    Open

        def _getNextRecordFromSocket(self):
            """Read a record, handle errors"""
    
            try:
                # otherwise... read the next record
    Severity: Minor
    Found in tlslite/tlsrecordlayer.py - About 3 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function __init__ has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
    Open

        def __init__(self, key, block_size = 16):
            """Initialise the object, derive keys for encryption and decryption."""
            if block_size != 16 and block_size != 24 and block_size != 32:
                raise ValueError('Invalid block size: ' + str(block_size))
            if len(key) != 16 and len(key) != 24 and len(key) != 32:
    Severity: Minor
    Found in tlslite/utils/rijndael.py - About 3 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function _macThenDecrypt has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
    Open

        def _macThenDecrypt(self, recordType, buf):
            """
            Check MAC of data, then decrypt and remove padding
    
            :raises TLSBadRecordMAC: when the mac value is invalid
    Severity: Minor
    Found in tlslite/recordlayer.py - About 3 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function calc_key has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
    Open

    def calc_key(version, secret, cipher_suite, label, handshake_hashes=None,
                client_random=None, server_random=None, output_length=None):
        """
        Method for calculating different keys depending on input.
        It can be used to calculate finished value, master secret,
    Severity: Minor
    Found in tlslite/mathtls.py - About 3 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function _serverSRPKeyExchange has a Cognitive Complexity of 24 (exceeds 5 allowed). Consider refactoring.
    Open

        def _serverSRPKeyExchange(self, clientHello, serverHello, verifierDB,
                                  cipherSuite, privateKey, serverCertChain,
                                  settings):
            """Perform the server side of SRP key exchange"""
            try:
    Severity: Minor
    Found in tlslite/tlsconnection.py - About 3 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Function calcVerifyBytes has a Cognitive Complexity of 24 (exceeds 5 allowed). Consider refactoring.
    Open

        def calcVerifyBytes(version, handshakeHashes, signatureAlg,
                            premasterSecret, clientRandom, serverRandom,
                            prf_name = None, peer_tag=b'client', key_type="rsa"):
            """Calculate signed bytes for Certificate Verify"""
            if version == (3, 0):
    Severity: Minor
    Found in tlslite/keyexchange.py - About 3 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    RSAKey has 27 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class RSAKey(object):
        """This is an abstract base class for RSA keys.
    
        Particular implementations of RSA keys, such as
        :py:class:`~.openssl_rsakey.OpenSSL_RSAKey`,
    Severity: Minor
    Found in tlslite/utils/rsakey.py - About 3 hrs to fix

      Function __call__ has a Cognitive Complexity of 22 (exceeds 5 allowed). Consider refactoring.
      Open

          def __call__(self, connection):
              """Check a TLSConnection.
      
              When a Checker is passed to a handshake function, this will
              be called at the end of the function.
      Severity: Minor
      Found in tlslite/checker.py - About 3 hrs to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function _handle_pha has a Cognitive Complexity of 22 (exceeds 5 allowed). Consider refactoring.
      Open

          def _handle_pha(self, cert_request):
              cert, p_key = self._client_keypair
      
              handshake_context = self._first_handshake_hashes.copy()
              handshake_context.update(cert_request.write())
      Severity: Minor
      Found in tlslite/tlsrecordlayer.py - About 3 hrs to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function _getNextRecord has a Cognitive Complexity of 22 (exceeds 5 allowed). Consider refactoring.
      Open

          def _getNextRecord(self):
              """read next message from socket, defragment message"""
      
              while True:
                  # support for fragmentation
      Severity: Minor
      Found in tlslite/tlsrecordlayer.py - About 3 hrs to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function _pickServerKeyExchangeSig has a Cognitive Complexity of 22 (exceeds 5 allowed). Consider refactoring.
      Open

          def _pickServerKeyExchangeSig(settings, clientHello, certList=None,
                                        private_key=None,
                                        version=(3, 3), check_alt=True):
              """Pick a hash that matches most closely the supported ones"""
              hashAndAlgsExt = clientHello.getExtension(
      Severity: Minor
      Found in tlslite/tlsconnection.py - About 3 hrs to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      File cryptomath.py has 289 lines of code (exceeds 250 allowed). Consider refactoring.
      Open

      # Authors: 
      #   Trevor Perrin
      #   Martin von Loewis - python 3 port
      #   Yngve Pettersen (ported by Paul Sokolovsky) - TLS 1.2
      #
      Severity: Minor
      Found in tlslite/utils/cryptomath.py - About 2 hrs to fix

        Function decode_meta_block_length has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring.
        Open

        def decode_meta_block_length(br):
            out = MetaBlockLength()
            out.input_end = br.read_bits(1)
            if out.input_end and br.read_bits(1):
                return out
        Severity: Minor
        Found in tlslite/utils/brotlidecpy/decode.py - About 2 hrs to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function parseBinary has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring.
        Open

            def parseBinary(self, cert_bytes):
                """
                Parse a DER-encoded X.509 certificate.
        
                :type bytes: L{str} (in python2) or L{bytearray} of unsigned bytes
        Severity: Minor
        Found in tlslite/x509.py - About 2 hrs to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function _serverTLS13Handshake has 71 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            def _serverTLS13Handshake(self, settings, clientHello, cipherSuite,
                                      privateKey, serverCertChain, version, scheme,
                                      srv_alpns, reqCert):
                """Perform a TLS 1.3 handshake"""
                prf_name, prf_size = self._getPRFParams(cipherSuite)
        Severity: Major
        Found in tlslite/tlsconnection.py - About 2 hrs to fix

          Function update_binders has a Cognitive Complexity of 20 (exceeds 5 allowed). Consider refactoring.
          Open

              def update_binders(client_hello, handshake_hashes, psk_configs,
                                 tickets=None, res_master_secret=None):
                  """
                  Sign the Client Hello using TLS 1.3 PSK binders.
          
          
          Severity: Minor
          Found in tlslite/handshakehelpers.py - About 2 hrs to fix

          Cognitive Complexity

          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

          A method's cognitive complexity is based on a few simple rules:

          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
          • Code is considered more complex for each "break in the linear flow of the code"
          • Code is considered more complex when "flow breaking structures are nested"

          Further reading

          Consider simplifying this complex logical expression.
          Open

                          if isinstance(header, RecordHeader2):
                              data = self._decryptSSL2(data, header.padding)
                              if self.handshake_finished:
                                  header.type = ContentType.application_data
                          # in TLS 1.3, the other party may send an unprotected CCS
          Severity: Critical
          Found in tlslite/recordlayer.py - About 2 hrs to fix
            Severity
            Category
            Status
            Source
            Language