# Information characterizing and identifying an ECU. # ECU_SCHEMA = SCHEMA.Object( # ecu_id = SCHEMA.AnyString(), # ecu_type = SCHEMA.AnyString(), # vin = VIN_SCHEMA) ECU_SERIAL_SCHEMA = SCHEMA.AnyString( ) # Instead, for now, we'll go with an ecu serial number. # Information specifying the target(s) installed on a given ECU. # This object corresponds to not "ECUVersionManifest" in the Uptane # Implementation Specification, but the signed contents of that object. ECU_VERSION_MANIFEST_SCHEMA = SCHEMA.Object( ecu_serial=ECU_SERIAL_SCHEMA, installed_image=TARGETFILE_SCHEMA, timeserver_time=ISO8601_DATETIME_SCHEMA, previous_timeserver_time=ISO8601_DATETIME_SCHEMA, attacks_detected=SCHEMA.AnyString( )) # was expired metadata previously detected? # This object corresponds to "ECUVersionManifest" in ASN.1 in the Uptane # Implementation Specification. SIGNABLE_ECU_VERSION_MANIFEST_SCHEMA = SCHEMA.Object( object_name='SIGNABLE_ECU_VERSION_MANIFEST_SCHEMA', signed=ECU_VERSION_MANIFEST_SCHEMA, signatures=SCHEMA.ListOf(SIGNATURE_SCHEMA)) # Anything encoded as DER is not readily inspected. Its encoding can be checked # this way, and conversion back from ASN.1/DER to a Python dictionary should be # performed before a thorough check of the contents. DER_DATA_SCHEMA = SCHEMA.AnyBytes()
SIG_METHOD_SCHEMA = SCHEMA.AnyString() # A relative file path (e.g., 'metadata/root/'). RELPATH_SCHEMA = SCHEMA.AnyString() RELPATHS_SCHEMA = SCHEMA.ListOf(RELPATH_SCHEMA) # An absolute path. PATH_SCHEMA = SCHEMA.AnyString() PATHS_SCHEMA = SCHEMA.ListOf(PATH_SCHEMA) # Uniform Resource Locator identifier (e.g., 'https://www.updateframework.com/'). URL_SCHEMA = SCHEMA.AnyString() # A dictionary holding version information. VERSION_SCHEMA = SCHEMA.Object(object_name='VERSION_SCHEMA', major=SCHEMA.Integer(lo=0), minor=SCHEMA.Integer(lo=0), fix=SCHEMA.Integer(lo=0)) # An integer representing the numbered version of a metadata file. # Must be 1, or greater. METADATAVERSION_SCHEMA = SCHEMA.Integer(lo=0) # An integer representing length. Must be 0, or greater. LENGTH_SCHEMA = SCHEMA.Integer(lo=0) # An integer representing logger levels, such as logging.CRITICAL (=50). # Must be between 0 and 50. LOGLEVEL_SCHEMA = SCHEMA.Integer(lo=0, hi=50) # A string representing a named object. NAME_SCHEMA = SCHEMA.AnyString()
SIG_METHOD_SCHEMA = SCHEMA.AnyString() # A relative file path (e.g., 'metadata/root/'). RELPATH_SCHEMA = SCHEMA.AnyString() RELPATHS_SCHEMA = SCHEMA.ListOf(RELPATH_SCHEMA) # An absolute path. PATH_SCHEMA = SCHEMA.AnyString() PATHS_SCHEMA = SCHEMA.ListOf(PATH_SCHEMA) # Uniform Resource Locator identifier (e.g., 'https://www.updateframework.com/'). URL_SCHEMA = SCHEMA.AnyString() # A dictionary holding version information. VERSION_SCHEMA = SCHEMA.Object(object_name='version', major=SCHEMA.Integer(lo=0), minor=SCHEMA.Integer(lo=0), fix=SCHEMA.Integer(lo=0)) # An integer representing the numbered version of a metadata file. # Must be 1, or greater. METADATAVERSION_SCHEMA = SCHEMA.Integer(lo=1) # An integer representing length. Must be 0, or greater. LENGTH_SCHEMA = SCHEMA.Integer(lo=0) # A string representing a named object. NAME_SCHEMA = SCHEMA.AnyString() # A value that is either True or False, on or off, etc. TOGGLE_SCHEMA = SCHEMA.Boolean()
SIG_METHOD_SCHEMA = SCHEMA.AnyString() # A relative file path (e.g., 'metadata/root/'). RELPATH_SCHEMA = SCHEMA.AnyString() RELPATHS_SCHEMA = SCHEMA.ListOf(RELPATH_SCHEMA) # An absolute path. PATH_SCHEMA = SCHEMA.AnyString() PATHS_SCHEMA = SCHEMA.ListOf(PATH_SCHEMA) # Uniform Resource Locator identifier (e.g., 'https://www.updateframework.com/'). URL_SCHEMA = SCHEMA.AnyString() # A dictionary holding version information. VERSION_SCHEMA = SCHEMA.Object(object_name='VERSION_SCHEMA', major=SCHEMA.Integer(lo=0), minor=SCHEMA.Integer(lo=0), fix=SCHEMA.Integer(lo=0)) # An integer representing the numbered version of a metadata file. # Must be 1, or greater. METADATAVERSION_SCHEMA = SCHEMA.Integer(lo=0) # An integer representing length. Must be 0, or greater. LENGTH_SCHEMA = SCHEMA.Integer(lo=0) # An integer representing logger levels, such as logging.CRITICAL (=50). # Must be between 0 and 50. LOGLEVEL_SCHEMA = SCHEMA.Integer(lo=0, hi=50) # A string representing a named object. NAME_SCHEMA = SCHEMA.AnyString()