# 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() 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
# 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', public=SCHEMA.AnyString(), private=SCHEMA.AnyString()) # A generic key. All TUF keys should be saved to metadata files in this format. KEY_SCHEMA = SCHEMA.Object(object_name='key', keytype=SCHEMA.AnyString(), keyval=KEYVAL_SCHEMA) # An RSA key. RSAKEY_SCHEMA = SCHEMA.Object(object_name='rsakey', keytype=SCHEMA.String('rsa'), keyid=KEYID_SCHEMA, keyval=KEYVAL_SCHEMA) # Info that describes both metadata and target files. # This schema allows the storage of multiple hashes for the same file # (e.g., sha256 and sha512 may be computed for the same file and stored). FILEINFO_SCHEMA = SCHEMA.Object(object_name='fileinfo', length=LENGTH_SCHEMA, hashes=HASHDICT_SCHEMA, custom=SCHEMA.Optional(SCHEMA.Object())) # A dict holding the information for a particular file. The keys hold the # relative file path and the values the relevant file information. FILEDICT_SCHEMA = SCHEMA.DictOf(key_schema=RELPATH_SCHEMA, value_schema=FILEINFO_SCHEMA)
# 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)