mirror of
https://git.code.sf.net/p/linux-ima/ima-evm-utils
synced 2025-07-09 08:40:43 +02:00
Sign an fs-verity file digest
Sign fs-verity file digests provided in the format as produced by "fsverity digest". The output is of the same format as the input, but with the file signature appended. Use setfattr to write the signature as security.ima xattr. fsverity digest format: <algo>:<hash> <pathname> output format: <algo>:<hash> <pathname> <signature> Instead of directly signing the fsverity hash, to disambiguate the original IMA signatures from the fs-verity signatures stored in the security.ima xattr a new signature format version 3 (sigv3) was defined as the hash of the xattr type (enum evm_ima_xattr_type), the hash algorithm (enum hash_algo), and the hash. Example: fsverity digest <pathname> | evmctl sign_hash --veritysig \ --key <pem encoded private key> Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
This commit is contained in:
@ -93,6 +93,7 @@ enum evm_ima_xattr_type {
|
||||
EVM_IMA_XATTR_DIGSIG,
|
||||
IMA_XATTR_DIGEST_NG,
|
||||
EVM_XATTR_PORTABLE_DIGSIG,
|
||||
IMA_VERITY_DIGSIG,
|
||||
};
|
||||
|
||||
struct h_misc {
|
||||
@ -138,7 +139,8 @@ enum digest_algo {
|
||||
|
||||
enum digsig_version {
|
||||
DIGSIG_VERSION_1 = 1,
|
||||
DIGSIG_VERSION_2
|
||||
DIGSIG_VERSION_2,
|
||||
DIGSIG_VERSION_3 /* hash of ima_file_id struct (portion used) */
|
||||
};
|
||||
|
||||
struct pubkey_hdr {
|
||||
@ -233,5 +235,6 @@ int ima_verify_signature(const char *file, unsigned char *sig, int siglen, unsig
|
||||
void init_public_keys(const char *keyfiles);
|
||||
int imaevm_hash_algo_from_sig(unsigned char *sig);
|
||||
const char *imaevm_hash_algo_by_id(int algo);
|
||||
int calc_hash_sigv3(enum evm_ima_xattr_type type, const char *algo, const unsigned char *in_hash, unsigned char *out_hash);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user