trestle.core.commands.sign
trestle.core.commands.sign ¤
Trestle Sign Command.
Attributes¤
logger = logging.getLogger(__name__) module-attribute ¤
Classes¤
SignCmd ¤
Bases: CommandBase
flowchart TD
trestle.core.commands.sign.SignCmd[SignCmd]
trestle.core.commands.command_docs.CommandBase[CommandBase]
trestle.core.commands.command_docs.CommandBase --> trestle.core.commands.sign.SignCmd
click trestle.core.commands.sign.SignCmd href "" "trestle.core.commands.sign.SignCmd"
click trestle.core.commands.command_docs.CommandBase href "" "trestle.core.commands.command_docs.CommandBase"
Sign a JSON file as a detached DSSE provenance envelope.
This command does not modify the input JSON file. It reads the JSON bytes, canonicalizes them using RFC 8785, computes the selected digest over the canonical JSON, and records that digest in an in-toto Statement. The Statement is then signed as a DSSE payload using the provided PEM private key and written as a detached sidecar envelope.
The optional subject name is the name recorded in the in-toto Statement. If it is omitted, the input file name is used. Verification must use the same subject name when one was provided during signing.
Source code in trestle/core/commands/sign.py
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | |
Attributes¤
name = 'sign' class-attribute instance-attribute ¤
Methods:¤
sign(input_path, key_path, output_path, subject_name=None, key_password_env=None, overwrite=False, digest_algorithm=DEFAULT_DIGEST_ALGORITHM) classmethod ¤
Write a detached DSSE provenance envelope for a JSON file.
Source code in trestle/core/commands/sign.py
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | |
Functions:¤
handler: python