def generate_iv_for_export(self, client_random, server_random,
                               con_end, read_or_write, req_len):
        """
        Generate IV for EXPORT ciphersuite, i.e. weakens it.
        An export IV generation example is given in section 6.3.1 of RFC 2246.
        See also page 86 of EKR's book.
        """
        s = con_end + read_or_write
        s = (s == "clientwrite" or s == "serverread")

        if self.tls_version < 0x0300:
            return None
        elif self.tls_version == 0x0300:
            if s:
                tbh = client_random + server_random
            else:
                tbh = server_random + client_random
            iv = _tls_hash_algs["MD5"]().digest(tbh)[:req_len]
        else:
            iv_block = self.prf("",
                                b"IV block",
                                client_random + server_random,
                                2 * req_len)
            if s:
                iv = iv_block[:req_len]
            else:
                iv = iv_block[req_len:]
        return iv
def generate_iv_for_export ( self , client_random , server_random , con_end , read_or_write , req_len ) : s = con_end + read_or_write s = ( s == "clientwrite" or s == "serverread" ) if self . tls_version < 0x0300 : return None elif self . tls_version == 0x0300 : if s : tbh = client_random + server_random else : tbh = server_random + client_random iv = _tls_hash_algs [ "MD5" ] ( ) . digest ( tbh ) [ : req_len ] else : iv_block = self . prf ( "" , b"IV block" , client_random + server_random , 2 * req_len ) if s : iv = iv_block [ : req_len ] else : iv = iv_block [ req_len : ] return iv
Generate IV for EXPORT ciphersuite, i.e. weakens it.
        An export IV generation example is given in section 6.3.1 of RFC 2246.
        See also page 86 of EKR's book.