示例#1
0
class AdvancedEncryptTestCase(unittest.TestCase):

    ''' Tests AES-based encryption. '''

    def setUp(self):

        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_memcache_stub()

        from openfire.handlers.main import Landing
        self.request = Request.blank('/')
        self.response = Response()

        self.handler = Landing(self.request, self.response)

    def tearDown(self):
        self.testbed.deactivate()

    def test_aes_support(self):

        # Try to import AES
        self.assertTrue(AES, 'Could not load PyCrypt AES support. All advanced encryption tests will fail.')

    @unittest.expectedFailure
    def test_advanced_encryption(self):

        # prepare cleartext
        advanced_cleartext = "hello this is a test of the advanced encryption mechanism"

        # encrypt and decrypt
        encrypted_text = self.handler.encrypt(advanced_cleartext, simple=False, cipher=True)
        decrypted_text = self.handler.decrypt(encrypted_text)

        self.assertEqual(advanced_cleartext, decrypted_text, 'Advanced encryption failed to properly encrypt or decrypt, because the resulting cleartext does not match.')

    @unittest.expectedFailure
    def test_advanced_key_encryption(self):

        # prepare key
        key_original = ndb.Key('TestKind', 'sample_keyname', parent=ndb.Key('TestParent', 1234))
        key_cleartext = key_original.urlsafe()

        # encrypt and decrypt
        encrypted_key = self.handler.encrypt(key_cleartext, simple=False, cipher=True)
        decrypted_key = self.handler.decrypt(encrypted_key)

        try:
            key_reconstructed = ndb.Key(urlsafe=decrypted_key)
        except Exception:
            key_reconstructed = False

        self.assertEqual(key_cleartext, decrypted_key, 'Advanced encryption failed to properly encrypt or decrypt the key, because the resulting cleartext key does not match.')

        self.assertTrue(key_reconstructed, 'Could not build key object from decoded cleartext key. Advanced encryption probably mangled it.')
        self.assertEqual(key_original, key_reconstructed, 'The resulting encrypted+decrypted key does not match the original key object.')
示例#2
0
    def setUp(self):

        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_memcache_stub()

        from openfire.handlers.main import Landing
        self.request = Request.blank('/')
        self.response = Response()

        self.handler = Landing(self.request, self.response)
示例#3
0
class BasicEncryptTestCase(unittest.TestCase):

    ''' Tests basic b64 obfuscation. '''

    def setUp(self):

        self.testbed = testbed.Testbed()
        self.testbed.activate()
        self.testbed.init_datastore_v3_stub()
        self.testbed.init_memcache_stub()

        from openfire.handlers.main import Landing
        self.request = Request.blank('/')
        self.response = Response()

        self.handler = Landing(self.request, self.response)

    def tearDown(self):
        self.testbed.deactivate()

    def test_basic_encryption(self):

        # prepare cleartext
        simple_cleartext = "hello this is a test of the basic encryption mechanism"

        # encrypt and decrypt
        encrypted_text = self.handler.encrypt(simple_cleartext, simple=True, cipher=False)
        self.assertTrue(encrypted_text, 'Simple encryption failed to encrypt a cleartext string.')

    def test_basic_encryption_decryption(self):

        # prepare cleartext
        simple_cleartext = "hello this is a test of the basic encryption mechanism"

        # encrypt and decrypt
        encrypted_text = self.handler.encrypt(simple_cleartext, simple=True, cipher=False)
        decrypted_text = self.handler.decrypt(encrypted_text)

        self.assertTrue(encrypted_text, 'Simple encryption failed to encrypt a cleartext string.')
        self.assertTrue(decrypted_text, 'Simple encryption failed to decrypt a ciphertext string.')
        self.assertEqual(simple_cleartext, decrypted_text, 'Simple encryption failed to properly encrypt or decrypt, because the resulting cleartext after decryption does not match the original.')

    def test_basic_key_encryption_decryption(self):

        # prepare key
        key_original = ndb.Key('TestKind', 'sample_keyname', parent=ndb.Key('TestParent', 1234))
        key_cleartext = key_original.urlsafe()

        # encrypt and decrypt
        encrypted_key = self.handler.encrypt(key_cleartext, simple=True, cipher=False)
        decrypted_key = self.handler.decrypt(encrypted_key)

        try:
            key_reconstructed = ndb.Key(urlsafe=decrypted_key)
        except Exception:
            key_reconstructed = False

        self.assertEqual(key_cleartext, decrypted_key, 'Simple encryption failed to properly encrypt or decrypt the key, because the resulting cleartext key after decryption does not match the original cleartext key.')

        self.assertTrue(key_reconstructed, 'Could not build key object from decoded cleartext key. Simple encryption probably mangled it.')
        self.assertEqual(key_original, key_reconstructed, 'The resulting encrypted+decrypted key does not match the original key object.')