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)
Example #2
0
    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)
Example #3
0
    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)