code: def change_encryption(self, current_password, cipher, new_password, new_password_id):
          
          if not isinstance(current_password, basestring):
              raise TypeError("current_password can only be an instance of type basestring")
          if not isinstance(cipher, basestring):
              raise TypeError("cipher can only be an instance of type basestring")
          if not isinstance(new_password, basestring):
              raise TypeError("new_password can only be an instance of type basestring")
          if not isinstance(new_password_id, basestring):
              raise TypeError("new_password_id can only be an instance of type basestring")
          progress = self._call("changeEncryption",
                       in_p=[current_password, cipher, new_password, new_password_id])
          progress = IProgress(progress)
          return progress
docs: Starts encryption of this medium. This means that the stored data in the
          medium is encrypted.
          
          This medium will be placed to :py:attr:`MediumState.locked_write` 
          state.
          
          Please note that the results can be either returned straight away,
          or later as the result of the background operation via the object
          returned via the @a progress parameter.
  
          in current_password of type str
              The current password the medium is protected with. Use an empty string to indicate
              that the medium isn't encrypted.
  
          in cipher of type str
              The cipher to use for encryption. An empty string indicates no encryption for the
              result.
  
          in new_password of type str
              The new password the medium should be protected with. An empty password and password ID
              will result in the medium being encrypted with the current password.
  
          in new_password_id of type str
              The ID of the new password when unlocking the medium.
  
          return progress of type :class:`IProgress`
              Progress object to track the operation completion.
  
          raises :class:`VBoxErrorNotSupported`
              Encryption is not supported for this medium because it is attached to more than one VM
  or has children.