From 213a7ae8aa86920f8dea36ac9753297a06f22551 Mon Sep 17 00:00:00 2001 From: beerpsi Date: Mon, 10 Feb 2025 08:40:37 +0000 Subject: [PATCH] chore: use inline dependency metadata --- segafs/makesegafs.py | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/segafs/makesegafs.py b/segafs/makesegafs.py index 75b2394..45ba270 100644 --- a/segafs/makesegafs.py +++ b/segafs/makesegafs.py @@ -1,3 +1,10 @@ +# /// script +# requires-python = ">=3.12" +# dependencies = [ +# "construct", +# "pycryptodome", +# ] +# /// # pyright: reportMissingTypeStubs=false, reportOperatorIssue=false, reportUnknownArgumentType=false, reportUnknownMemberType=false from math import ceil import os @@ -91,13 +98,18 @@ SIGKEY = bytes.fromhex( # created, and the path to the original file, then just a bunch of random # bytes. The private key used to decrypt the header metadata is unknown. HEADER_META_PUBKEY = RSA.import_key("""-----BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsRMLnJuczNpfoqPpHQ3o -5XNkjKXO6P3ToV/45Az5dNaHVL7uEu9vPI7a2KYFQnNYgD3UUHFahfTcljzLOkcH -1aVrhm8gaB/5mygjUJWcN+kKyB7sASqhL22RC7NlxtDY15ozli/b0MagVoaBAV5D -MytUCa73GPRGY0x9v/wTvtmFclYCWjJ9c2QzrCrQ9eNTVyETwh5q6qKEARHGZgCX -rWmdCsa/+oS+3pLbUGFlHCSZtCvvWCJgmgurlTGAGzoxrieO6XDEg2AGiRprWWL2 -BGNh7gwgnSq6FWnKSf2Qe7xoFcTpV5QhNFBQjrq0KnBDRfz5EXJnMoKxNYL6reqR -uwIDAQAB +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA8f+6o4yvruBLMM2S7eDb +zj/qyJXzAS0y2EYsuG1as/iypwfPnE2gf8H1s6WQmyACt1AKHUx/wQ8BFiq3iPTf +8a5A7JL0j8GvM1wnxK5uvh9DjI87zvT//lG87w85g6FjiIF8L1VnsTWayR7RCPA6 +PCEj8xojPFt8aRSJCtFj5lHHCVnGwvke7GvKqurK4ChzkMOtT51TPHh6TxJn2bWM +e6tRxZak5hpQVfJjbI4WJHTAf6zW6JgapuoBeIRSexOfhoJqIwCpTuakFHNR/8S1 +cmXgLGsxis1GKkNIWHsLHNbbj5nOUplNKjEh5+r4LP8befsp2M2pd76hmEJPp76T +F89SKPiGH94DpRuiabk9s9YGPxXTeqLcFJbRm+FboHfDZPKiCi/7eJzvhMI0p3V+ +XZ2IH0PLZ3U4n0mXSGb775X7570SogziOTRWHmv6NnlIi+157THLCpHVsb2+3ro6 +TQ6ngalXgGKxfjAJJlauXBjACTPyI97/owqqHLHSq7St6BFSEKonbkbvWNMsX6Oz +lvn7AFIAkcdKVV83Y+xWIvbw5NPT6iyeoXxv+/w+oqcstU4DiiAZp1gJuMABxWki +o9b87jSZx0qORHqXjdNZsM1yZO+/A2VT2xeBTpW/UOAfIDC0aOhAD6rtAix45d4+ +ehEDoy8d0wPMyN3VrZ8J2l0CAwEAAQ== -----END PUBLIC KEY----- """) # ---- @@ -221,7 +233,7 @@ with open(INPUT_FILE, "rb") as fin, open(OUTPUT_FILE, "w+b") as fout: null_byte_count = BOOTID["block_size"] - (total_written % BOOTID["block_size"]) while null_byte_count > 0: - page_iv = get_page_iv(iv, total_written) + page_iv = get_page_iv(ENCRYPTION_IV, total_written) cipher = AES.new(ENCRYPTION_KEY, AES.MODE_CBC, page_iv) encrypted = cipher.encrypt(b"\x00" * 4096) total_written += fout.write(encrypted)