示例#1
0
文件: formats.py 项目: ponyville/tuf
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()
NAMES_SCHEMA = SCHEMA.ListOf(NAME_SCHEMA)

# Supported hash algorithms.
HASHALGORITHMS_SCHEMA = SCHEMA.ListOf(
    SCHEMA.OneOf([
        SCHEMA.String('md5'),
        SCHEMA.String('sha1'),
        SCHEMA.String('sha224'),
        SCHEMA.String('sha256'),
        SCHEMA.String('sha384'),
        SCHEMA.String('sha512')
    ]))

# The contents of an encrypted TUF key.  Encrypted TUF keys are saved to files
# in this format.
ENCRYPTEDKEY_SCHEMA = SCHEMA.AnyBytes()

# A value that is either True or False, on or off, etc.
BOOLEAN_SCHEMA = SCHEMA.Boolean()

# A role's threshold value (i.e., the minimum number
# of signatures required to sign a metadata file).
# Must be 1 and greater.
THRESHOLD_SCHEMA = SCHEMA.Integer(lo=1)
示例#2
0
ECU_SOFTWARE_ASSIGNMENT_SCHEMA = SCHEMA.Object(
    ecu_serial=ECU_SERIAL_SCHEMA,
    previous_time=tuf.formats.ISO8601_DATETIME_SCHEMA,  #UTC_DATETIME_SCHEMA,
    current_time=tuf.formats.ISO8601_DATETIME_SCHEMA,
    security_attack=SCHEMA.Optional(DESCRIPTION_OF_ATTACKS_SCHEMA),
    #image_type = SCHEMA.OneOf('bootloader', 'application', 'other'), # removed from spec
    installed_image=tuf.formats.TARGETFILE_SCHEMA)
#load_order = SCHEMA.Integer(lo=0, hi=2147483647)) # not in spec

# A list of ECU_SOFTWARE_ASSIGNMENT_SCHEMA should be everything that is
# required for the director metadata to be written.
VEHICLE_SOFTWARE_ASSIGNMENTS_SCHEMA = SCHEMA.ListOf(
    ECU_SOFTWARE_ASSIGNMENT_SCHEMA)

# The format for the timeserver's signed time response will be a
# SIGNABLE_SCHEMA (from TUF). THAT in TURN will contain, in field 'signed', one
# of these objects:
TIMESERVER_ATTESTATION_SCHEMA = SCHEMA.Object(time=ISO8601_DATETIME_SCHEMA,
                                              nonces=NONCE_LIST_SCHEMA)

SIGNABLE_TIMESERVER_ATTESTATION_SCHEMA = SCHEMA.Object(
    object_name='SIGNABLE_TIMESERVER_ATTESTATION_SCHEMA',
    signed=TIMESERVER_ATTESTATION_SCHEMA,
    signatures=SCHEMA.ListOf(SIGNATURE_SCHEMA))

ANY_SIGNABLE_UPTANE_METADATA_SCHEMA = SCHEMA.OneOf([
    SIGNABLE_TIMESERVER_ATTESTATION_SCHEMA,
    SIGNABLE_VEHICLE_VERSION_MANIFEST_SCHEMA,
    SIGNABLE_ECU_VERSION_MANIFEST_SCHEMA
])
示例#3
0
# A string representing a password.
PASSWORD_SCHEMA = SCHEMA.AnyString()

# A list of passwords.
PASSWORDS_SCHEMA = SCHEMA.ListOf(PASSWORD_SCHEMA)

# The actual values of a key, as opposed to meta data such as a key type and
# key identifier ('rsa', 233df889cb).  For RSA keys, the key value is a pair of
# public and private keys in PEM Format stored as strings.
KEYVAL_SCHEMA = SCHEMA.Object(object_name='KEYVAL_SCHEMA',
                              public=SCHEMA.AnyString(),
                              private=SCHEMA.AnyString())

# Supported TUF key types.
KEYTYPE_SCHEMA = SCHEMA.OneOf([SCHEMA.String('rsa'), SCHEMA.String('ed25519')])

# A generic TUF key.  All TUF keys should be saved to metadata files in this
# format.
KEY_SCHEMA = SCHEMA.Object(object_name='KEY_SCHEMA',
                           keytype=SCHEMA.AnyString(),
                           keyval=KEYVAL_SCHEMA)

# A TUF key object.  This schema simplifies validation of keys that may be
# one of the supported key types.
# Supported key types: 'rsa', 'ed25519'.
ANYKEY_SCHEMA = SCHEMA.Object(object_name='ANYKEY_SCHEMA',
                              keytype=KEYTYPE_SCHEMA,
                              keyid=KEYID_SCHEMA,
                              keyval=KEYVAL_SCHEMA)