Move signing related options to a shared place

Move OTA signing flags to payload_signer.py so that we can re-use these
flags in multiple binaries.

Test: th
Bug: 293313353
Change-Id: I44f9910cee37c449397e174a5784f747ec9fb0d6
This commit is contained in:
Kelvin Zhang
2023-11-14 10:58:02 -08:00
parent c68c6b9530
commit 68252b801a
3 changed files with 45 additions and 26 deletions

View File

@@ -16,10 +16,51 @@
import common
import logging
from common import OPTIONS
import shlex
from common import OPTIONS, OptionHandler
logger = logging.getLogger(__name__)
OPTIONS.payload_signer = None
OPTIONS.payload_signer_args = []
OPTIONS.payload_signer_maximum_signature_size = None
OPTIONS.package_key = None
class SignerOptions(OptionHandler):
@staticmethod
def ParseOptions(o, a):
if o in ("-k", "--package_key"):
OPTIONS.package_key = a
elif o == "--payload_signer":
OPTIONS.payload_signer = a
elif o == "--payload_signer_args":
OPTIONS.payload_signer_args = shlex.split(a)
elif o == "--payload_signer_maximum_signature_size":
OPTIONS.payload_signer_maximum_signature_size = a
elif o == "--payload_signer_key_size":
# TODO(xunchang) remove this option after cleaning up the callers.
logger.warning("The option '--payload_signer_key_size' is deprecated."
" Use '--payload_signer_maximum_signature_size' instead.")
OPTIONS.payload_signer_maximum_signature_size = a
else:
return False
return True
def __init__(self):
super().__init__(
["payload_signer=",
"package_key=",
"payload_signer_args=",
"payload_signer_maximum_signature_size=",
"payload_signer_key_size="],
SignerOptions.ParseOptions
)
signer_options = SignerOptions()
class PayloadSigner(object):
"""A class that wraps the payload signing works.