include/keys/trusted-type.h
Source file repositories/reference/linux-study-clean/include/keys/trusted-type.h
File Facts
- System
- Linux kernel
- Corpus path
include/keys/trusted-type.h- Extension
.h- Size
- 2410 bytes
- Lines
- 109
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/key.hlinux/rcupdate.hlinux/tpm.h
Detected Declarations
struct trusted_key_payloadstruct trusted_key_optionsstruct trusted_key_opsstruct trusted_key_sourcefunction dump_payloadfunction dump_payload
Annotated Snippet
struct trusted_key_payload {
struct rcu_head rcu;
unsigned int key_len;
unsigned int blob_len;
unsigned char migratable;
unsigned char old_format;
unsigned char key[MAX_KEY_SIZE + 1];
unsigned char blob[MAX_BLOB_SIZE];
};
struct trusted_key_options {
uint16_t keytype;
uint32_t keyhandle;
unsigned char keyauth[TPM_DIGEST_SIZE];
uint32_t blobauth_len;
unsigned char blobauth[TPM_DIGEST_SIZE];
uint32_t pcrinfo_len;
unsigned char pcrinfo[MAX_PCRINFO_SIZE];
int pcrlock;
uint32_t hash;
uint32_t policydigest_len;
unsigned char policydigest[MAX_DIGEST_SIZE];
uint32_t policyhandle;
void *private;
};
struct trusted_key_ops {
/*
* flag to indicate if trusted key implementation supports migration
* or not.
*/
unsigned char migratable;
/* Initialize key interface. */
int (*init)(void);
/* Seal a key. */
int (*seal)(struct trusted_key_payload *p, char *datablob);
/* Unseal a key. */
int (*unseal)(struct trusted_key_payload *p, char *datablob);
/* Optional: Get a randomized key. */
int (*get_random)(unsigned char *key, size_t key_len);
/* Exit key interface. */
void (*exit)(void);
};
struct trusted_key_source {
char *name;
struct trusted_key_ops *ops;
};
extern struct key_type key_type_trusted;
#ifdef CONFIG_TRUSTED_KEYS_DEBUG
extern bool trusted_debug;
static inline void dump_payload(struct trusted_key_payload *p)
{
if (!trusted_debug)
return;
pr_debug("key_len %d\n", p->key_len);
print_hex_dump_debug("key ", DUMP_PREFIX_NONE,
16, 1, p->key, p->key_len, 0);
pr_debug("bloblen %d\n", p->blob_len);
print_hex_dump_debug("blob ", DUMP_PREFIX_NONE,
16, 1, p->blob, p->blob_len, 0);
pr_debug("migratable %d\n", p->migratable);
}
#else
static inline void dump_payload(struct trusted_key_payload *p)
{
}
#endif
#endif /* _KEYS_TRUSTED_TYPE_H */
Annotation
- Immediate include surface: `linux/key.h`, `linux/rcupdate.h`, `linux/tpm.h`.
- Detected declarations: `struct trusted_key_payload`, `struct trusted_key_options`, `struct trusted_key_ops`, `struct trusted_key_source`, `function dump_payload`, `function dump_payload`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.