laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/36963?usp=email )
Change subject: fixup encrypt ......................................................................
fixup encrypt
Change-Id: Idf0245e5077c56cb44f9af89b5a35bf5fbfe0c49 --- M contrib/csv-encrypt-columns.py 1 file changed, 14 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/63/36963/1
diff --git a/contrib/csv-encrypt-columns.py b/contrib/csv-encrypt-columns.py index da94006..ab5d294 100755 --- a/contrib/csv-encrypt-columns.py +++ b/contrib/csv-encrypt-columns.py @@ -23,10 +23,10 @@ import argparse from Cryptodome.Cipher import AES
-from pySim.utils import h2b, b2h +from pySim.utils import h2b, b2h, Hexstr from pySim.card_key_provider import CardKeyProviderCsv
-def dict_keys_to_upper(d: dict): +def dict_keys_to_upper(d: dict) -> dict: return {k.upper():v for k,v in d.items()}
class CsvColumnEncryptor: @@ -34,13 +34,13 @@ self.filename = filename self.transport_keys = dict_keys_to_upper(transport_keys)
- def encrypt_col(self, colname:str, value: str): + def encrypt_col(self, colname:str, value: str) -> Hexstr: #print("Encrypting col %s (val=%s)" % (colname, value)) key = self.transport_keys[colname] cipher = AES.new(h2b(key), AES.MODE_CBC, CardKeyProviderCsv.IV) return b2h(cipher.encrypt(h2b(value)))
- def encrypt(self): + def encrypt(self) -> None: with open(self.filename, 'r') as infile: cr = csv.DictReader(infile) cr.fieldnames = [field.upper() for field in cr.fieldnames] @@ -58,7 +58,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('CSVFILE', help="CSV file name") - parser.add_argument('--csv-column-key', action='append', default=[], + parser.add_argument('--csv-column-key', action='append', required=True, help='per-CSV-column AES transport key')
opts = parser.parse_args()