Source code for glideinwms.unittests.test_lib_pubCrypto
#!/usr/bin/env python3
# SPDX-FileCopyrightText: 2009 Fermi Research Alliance, LLC
# SPDX-License-Identifier: Apache-2.0
"""Unit test for glideinwms/lib/pubCrypto.py
"""
import os
import unittest
import xmlrunner
from glideinwms.unittests.unittest_utils import TestImportError
try:
from glideinwms.lib.pubCrypto import RSAKey
except ImportError as err:
raise TestImportError(str(err))
[docs]
class TestPubCrypto(unittest.TestCase):
[docs]
def setUp(self):
self.privkey_file = "priv.pem"
self.pubkey_file = "pub.pem"
self.key_length = 1024
self.cr = RSAKey()
self.cr.new(self.key_length)
self.cr_pub = self.cr.PubRSAKey()
self.cr.save(self.privkey_file)
self.cr_pub.save(self.pubkey_file)
[docs]
def tearDown(self):
os.remove(self.privkey_file)
os.remove(self.pubkey_file)
[docs]
def test_symmetric(self, plaintext="5105105105105100"):
encrypted = self.cr_pub.encrypt(plaintext)
decrypted = self.cr.decrypt(encrypted).decode("utf8")
signed = self.cr.sign(plaintext)
assert self.cr_pub.verify(plaintext, signed)
assert plaintext == decrypted
[docs]
def test_symmetric_base64(self, plaintext="5105105105105100"):
encrypted = self.cr_pub.encrypt_base64(plaintext)
decrypted = self.cr.decrypt_base64(encrypted).decode("utf8")
signed = self.cr.sign_base64(plaintext)
assert self.cr_pub.verify_base64(plaintext, signed)
assert plaintext == decrypted
[docs]
def test_symmetric_hex(self, plaintext="5105105105105100"):
encrypted = self.cr_pub.encrypt_hex(plaintext)
decrypted = self.cr.decrypt_hex(encrypted).decode("utf8")
signed = self.cr.sign_hex(plaintext)
assert self.cr_pub.verify_hex(plaintext, signed)
assert plaintext == decrypted
if __name__ == "__main__":
ofl = "unittests-reports"
unittest.main(testRunner=xmlrunner.XMLTestRunner(output=ofl))