def _EncryptedVolumeAction(self, *unused_args): passwd = self.input_pass.get() try: client_ = self._Authenticate(self.EncryptedVolumePrompt) except glue.Error as e: return self.ShowFatalError(e) action_dict = self.ACTIONS self._PrepTop('Doing: %s...' % action_dict[self.action.get()]) volume_uuid = self.unlock_volume.get() message = None try: passphrase = client_.RetrieveSecret(volume_uuid) except base_client.Error as e: return self.ShowFatalError(e) if self.action.get() == self.REVERT_ACTION: corestorage.RevertVolume(volume_uuid, passphrase) message = 'Volume reverted successfully: %s' % volume_uuid elif self.action.get() == self.UNLOCK_ACTION: corestorage.UnlockVolume(volume_uuid, passphrase) message = 'Volume unlocked successfully: %s' % volume_uuid elif self.action.get() == self.DISPLAY_ACTION: self._PrepTop() Tkinter.Label(self.top_frame, text='').pack(fill=Tkinter.Y, expand=True) Tkinter.Label( self.top_frame, text='Here is the recovery token. Be careful with it.').pack() e = Tkinter.Entry(self.top_frame, width=self.WRAPLENGTH) e.pack(fill=Tkinter.Y, expand=False) e.insert(Tkinter.END, passphrase) e.configure(state='readonly') Tkinter.Label(self.top_frame, text='').pack(fill=Tkinter.Y, expand=True) return elif self.action.get() == self.ROTATE_KEY_ACTION: try: recovery_key = glue.UpdateEscrowPassphrase(passwd, passphrase) except glue.Error as e: return self.ShowFatalError(e.message) try: client_.UploadPassphrase(volume_uuid, recovery_key) except base_client.Error: return self.ShowFatalError(glue.ESCROW_FAILED_MESSAGE) message = 'Key rotated successfully.' if message: self._PrepTop(message) Tkinter.Button( self.top_frame, text='OK', command=self.root.quit ).pack()
def _RotateRecoveryKey(self, client_, volume_uuid, passwd): """Rotate recovery key.""" passphrase = None first_error = None try: passphrase = client_.RetrieveSecret(volume_uuid) except base_client.Error as e: logging.warning(e.message) first_error = e recovery_key = None if passphrase: try: recovery_key = glue.UpdateEscrowPassphrase(passwd, passphrase) except glue.Error as e: logging.warning(e.message) if not first_error: first_error = e if not recovery_key: try: logging.warning('attempting to unlock volume with user key.') recovery_key = glue.UpdateEscrowPassphrase(passwd, passwd) except glue.Error as e: if not first_error: first_error = e logging.warning(e.message) return self.ShowFatalError(first_error.message) try: client_.UploadPassphrase(volume_uuid, recovery_key) except base_client.Error: return self.ShowFatalError(glue.ESCROW_FAILED_MESSAGE) message = 'Key rotated successfully.' self._PrepTop(message) Tkinter.Button( self.top_frame, text='OK', command=self.root.quit ).pack()
def _RotateRecoveryKey(self, client_, volume_uuid, passwd): """Rotate the recovery key.""" recovery_key = None try: recovery_key = glue.UpdateEscrowPassphrase(self.username, passwd) except glue.Error as e: logging.warning(e.message) return self.ShowFatalError(e.message) try: client_.UploadPassphrase(volume_uuid, recovery_key) except base_client.Error: return self.ShowFatalError(glue.ESCROW_FAILED_MESSAGE) message = 'Key rotated successfully.' self._PrepTop(message) Tkinter.Button(self.top_frame, text='OK', command=self.root.quit).pack()