docs: def post_build(self, pkt, pay):
          """
          We encrypt the premaster secret (the 48 bytes) with either the server
          certificate or the temporary RSA key provided in a server key exchange
          message. After that step, we add the 2 bytes to provide the length, as
          described in implementation notes at the end of section 7.4.7.1.
          """
          enc = pkt
  
          s = self.tls_session
          s.pre_master_secret = enc
          s.compute_ms_and_derive_keys()
  
          if s.server_tmp_rsa_key is not None:
              enc = s.server_tmp_rsa_key.encrypt(pkt, t="pkcs")
          elif s.server_certs is not None and len(s.server_certs) > 0:
              enc = s.server_certs[0].encrypt(pkt, t="pkcs")
          else:
              warning("No material to encrypt Pre Master Secret")
  
          tmp_len = b""
          if s.tls_version >= 0x0301:
              tmp_len = struct.pack("!H", len(enc))
          return tmp_len + enc + pay