docs: def _tls_PRF(secret, label, seed, req_len):
      """
      Provides the implementation of TLS PRF function as defined in
      section 5 of RFC 4346:
  
      PRF(secret, label, seed) = P_MD5(S1, label + seed) XOR
                                 P_SHA-1(S2, label + seed)
  
      Parameters are:
  
      - secret: the secret used by the HMAC in the 2 expansion
                functions (S1 and S2 are the halves of this secret).
      - label: specific label as defined in various sections of the RFC
               depending on the use of the generated PRF keystream
      - seed: the seed used by the expansion functions.
      - req_len: amount of keystream to be generated
      """
      tmp_len = (len(secret) + 1) // 2
      S1 = secret[:tmp_len]
      S2 = secret[-tmp_len:]
  
      a1 = _tls_P_MD5(S1, label + seed, req_len)
      a2 = _tls_P_SHA1(S2, label + seed, req_len)
  
      return strxor(a1, a2)