int __init ima_init(void) { u8 pcr_i[TPM_DIGEST_SIZE]; int rc; ima_used_chip = 0; rc = tpm_pcr_read(TPM_ANY_NUM, 0, pcr_i); if (rc == 0) ima_used_chip = 1; if (!ima_used_chip) pr_info("No TPM chip found, activating TPM-bypass! (rc=%d)\n", rc); rc = integrity_init_keyring(INTEGRITY_KEYRING_IMA); if (rc) return rc; rc = ima_init_crypto(); if (rc) return rc; rc = ima_init_template(); if (rc != 0) return rc; ima_load_kexec_buffer(); rc = ima_add_boot_aggregate(); /* boot aggregate must be first entry */ if (rc != 0) return rc; ima_init_policy(); return ima_fs_init(); }
/* * Create the trusted keyrings. */ static __init int platform_keyring_init(void) { int rc; rc = integrity_init_keyring(INTEGRITY_KEYRING_PLATFORM); if (rc) return rc; pr_notice("Platform Keyring initialized\n"); return 0; }
static int __init init_evm(void) { int error; evm_init_config(); error = integrity_init_keyring(INTEGRITY_KEYRING_EVM); if (error) return error; error = evm_init_secfs(); if (error < 0) { pr_info("Error registering secfs\n"); return error; } return 0; }