chore: use inline dependency metadata

This commit is contained in:
beerpsi
2026-04-19 23:43:37 +07:00
committed by beerpsi
parent ecaec6d942
commit 213a7ae8aa
+20 -8
View File
@@ -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)