def test_rsa_basic(self):
        silently_remove('./rsa-test.public_key.pem')
        silently_remove('./rsa-test.private_key.pem')

        crypto = LocalRsaProvider(dir='./', key='rsa-test', passphrase='1234')

        with patch.object(oss2.utils,
                          'random_aes256_key',
                          return_value=unittests.common.fixed_aes_key,
                          autospect=True):
            with patch.object(oss2.utils,
                              'random_counter',
                              return_value=unittests.common.fixed_aes_start,
                              autospect=True):
                crypto.get_key()
                crypto.get_start()
                header = crypto.build_header()
                self.assertEqual(
                    unittests.common.fixed_aes_key,
                    crypto.decrypt_oss_meta_data(header,
                                                 'x-oss-meta-oss-crypto-key'))
                self.assertEqual(
                    unittests.common.fixed_aes_start,
                    crypto.decrypt_oss_meta_data(
                        header, 'x-oss-meta-oss-crypto-start',
                        lambda x: int(x)))
                self.assertEqual(None,
                                 crypto.decrypt_oss_meta_data(header, '1231'))

        silently_remove('./rsa-test.public_key.pem')
        silently_remove('./rsa-test.private_key.pem')
    def test_rsa_basic(self):
        silently_remove('./rsa-test.public_key.pem')
        silently_remove('./rsa-test.private_key.pem')

        crypto = LocalRsaProvider(dir='./', key='rsa-test', passphrase='1234')

        with patch.object(oss2.utils, 'random_aes256_key', return_value=unittests.common.fixed_aes_key, autospect=True):
            with patch.object(oss2.utils, 'random_counter', return_value=unittests.common.fixed_aes_start, autospect=True):
                crypto.get_key()
                crypto.get_start()
                header = crypto.build_header()
                self.assertEqual(unittests.common.fixed_aes_key, crypto.decrypt_oss_meta_data(header, 'x-oss-meta-oss-crypto-key'))
                self.assertEqual(unittests.common.fixed_aes_start, crypto.decrypt_oss_meta_data(header, 'x-oss-meta-oss-crypto-start', lambda x:int(x)))
                self.assertEqual(None, crypto.decrypt_oss_meta_data(header, '1231'))

        silently_remove('./rsa-test.public_key.pem')
        silently_remove('./rsa-test.private_key.pem')
    def test_rsa_adapter(self):
        silently_remove('./rsa-test.public_key.pem')
        silently_remove('./rsa-test.private_key.pem')

        content = b'1234'*10

        rsa = LocalRsaProvider(dir='./', key='rsa-test', passphrase='1234')
        key = rsa.get_key()
        start = rsa.get_start()
        adapter = rsa.make_encrypt_adapter(content, key, start)
        encrypt_content = adapter.read()
        self.assertNotEqual(content, encrypt_content)

        adapter1 = rsa.make_decrypt_adapter(encrypt_content, key, start)
        self.assertEqual(content, adapter1.read())

        silently_remove('./rsa-test.public_key.pem')
        silently_remove('./rsa-test.private_key.pem')
    def test_rsa_adapter(self):
        silently_remove('./rsa-test.public_key.pem')
        silently_remove('./rsa-test.private_key.pem')

        content = b'1234' * 10

        rsa = LocalRsaProvider(dir='./', key='rsa-test', passphrase='1234')
        key = rsa.get_key()
        start = rsa.get_start()
        adapter = rsa.make_encrypt_adapter(content, key, start)
        encrypt_content = adapter.read()
        self.assertNotEqual(content, encrypt_content)

        adapter1 = rsa.make_decrypt_adapter(encrypt_content, key, start)
        self.assertEqual(content, adapter1.read())

        silently_remove('./rsa-test.public_key.pem')
        silently_remove('./rsa-test.private_key.pem')