From f8e05f797ce5b00d1136542b9c834cd8fbb3d8ec Mon Sep 17 00:00:00 2001 From: Nicholas Boucher Date: Thu, 20 Jun 2019 17:05:51 -0700 Subject: [PATCH] Encrypt and Decrypt wrappers for strings --- damgard_jurik/crypto.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/damgard_jurik/crypto.py b/damgard_jurik/crypto.py index d99ec05..738265b 100644 --- a/damgard_jurik/crypto.py +++ b/damgard_jurik/crypto.py @@ -182,6 +182,14 @@ def encrypt_list(self, m_list: List[int]) -> List[EncryptedNumber]: """ return [self.encrypt(m) for m in m_list] + def encrypt_string(self, m: str) -> List[EncryptedNumber]: + """Encrypts a string using it's ASCII values. + + :param m: The plaintext string to be encrypted. + :return: A list containing an EncryptedNumber for each character ASCII value in `m`. + """ + return self.encrypt_list(map(ord, m)) + def __eq__(self, other: Any) -> bool: """Returns whether this PublicKey is equal to `other`. @@ -354,6 +362,14 @@ def decrypt_list(self, c_list: List[EncryptedNumber]) -> List[int]: """ return [self.decrypt(c) for c in c_list] + def decrypt_string(self, c_list: List[EncryptedNumber]) -> str: + """Decrypts each number in a list as a character in a string. + + :param c_list: A list of EncryptedNumbers to be decrypted. + :return: A string containing a character for each decrypted EncryptedNumber in `c_list`. + """ + return "".join([chr(self.decrypt(c)) for c in c_list]) + def keygen(n_bits: int = 64, s: int = 1,