def unleashEncoder(cls): passPhrase = {0: cls.sigPhrase()} encryption = {0: cls.encryptionPhrase()} cls.encoder = encryptedpickle.EncryptedPickle(passPhrase, encryption) encryptionAlgorithm = { 255: { 'algorithm': 'aes-256-cbc', 'salt_size': 32, 'pbkdf2_algorithm': 'sha256', 'pbkdf2_iterations': 10, }, } cls.encoder.set_algorithms(encryption=encryptionAlgorithm) options = { 'encryption_algorithm_id': 255, 'compression_algorithm_id': 1, 'flags': { 'timestamp': True, }, } cls.encoder.set_options(options)
def encrypt(self, password): """ Encrypts the connection object. :param password: Encryption password :type password: string :return: Encrypted object :rtype: object """ passphrases = {0: password} encoder = encryptedpickle.EncryptedPickle( signature_passphrases=passphrases, encryption_passphrases=passphrases) return encoder.seal(self)
def decrypt(cls, connection, password): """ Decrypts a connection object and returns it :param connection: SSHConnection to be decrypted :type connection: string :param password: Encryption password :type password: string :return: Decrypted object :rtype: SSHConnection """ passphrases = {0: password} encoder = encryptedpickle.EncryptedPickle( signature_passphrases=passphrases, encryption_passphrases=passphrases) return encoder.unseal(connection)