docs: def encrypt_key(key, password):
      """Encrypt the password with the public key and return an ASCII representation.
  
      The public key retrieved from the Travis API is loaded as an RSAPublicKey
      object using Cryptography's default backend. Then the given password
      is encrypted with the encrypt() method of RSAPublicKey. The encrypted
      password is then encoded to base64 and decoded into ASCII in order to
      convert the bytes object into a string object.
  
      Parameters
      ----------
      key: str
          Travis CI public RSA key that requires deserialization
      password: str
          the password to be encrypted
  
      Returns
      -------
      encrypted_password: str
          the base64 encoded encrypted password decoded as ASCII
  
      Notes
      -----
      Travis CI uses the PKCS1v15 padding scheme. While PKCS1v15 is secure,
      it is outdated and should be replaced with OAEP.
  
      Example:
      OAEP(mgf=MGF1(algorithm=SHA256()), algorithm=SHA256(), label=None))
      """
      public_key = load_pem_public_key(key.encode(), default_backend())
      encrypted_password = public_key.encrypt(password, PKCS1v15())
      return base64.b64encode(encrypted_password).decode('ascii')