mirror of
https://github.com/tpm2dev/tpm.dev.tutorials.git
synced 2024-11-14 10:42:11 +00:00
44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
|
# `TPM2_CreateLoaded()`
|
||
|
|
||
|
This command creates a key object and loads it. The object can be a
|
||
|
primary key, in which case `TPM2_CreateLoaded()` behaves just like
|
||
|
[`TPM2_CreatePrimary()`](TPM2_CreatePrimary.md). Or the object can be
|
||
|
`ordinary` or `derived`.
|
||
|
|
||
|
The created object can then be loaded with [`TPM2_Load()`](TPM2_Load.md).
|
||
|
|
||
|
To decide whether to use `TPM2_CreateLoaded()`,
|
||
|
[`TPM2_Create()`](TPM2_Create.md), or
|
||
|
[`TPM2_CreatePrimary()`](TPM2_CreatePrimary.md) refer to table 28 in
|
||
|
section 2.7 of the [TCG TPM Library part 1:
|
||
|
Architecture](https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM2_r1p59_Part1_Architecture_pub.pdf).
|
||
|
|
||
|
If you need to `TPM2_CertifyCreation()` that a TPM created some object,
|
||
|
you must use [`TPM2_CreatePrimary()`](TPM2_CreatePrimary.md) or
|
||
|
[`TPM2_Create()`](TPM2_Create.md).
|
||
|
|
||
|
If you need to seal the object to a PCR selection, you must use
|
||
|
[`TPM2_CreatePrimary()`](TPM2_CreatePrimary.md) or
|
||
|
[`TPM2_Create()`](TPM2_Create.md).
|
||
|
|
||
|
If you need to create a derived object, you must use
|
||
|
`TPM2_CreateLoaded()`.
|
||
|
|
||
|
## Inputs
|
||
|
|
||
|
- `TPMI_DH_PARENT+ parentHandle`
|
||
|
- `TPM2B_SENSITIVE_CREATE inSensitive`
|
||
|
- `TPM2B_TEMPLATE inPublic`
|
||
|
|
||
|
## Outputs (success case)
|
||
|
|
||
|
- `TPM_HANDLE objectHandle`
|
||
|
- `TPM2B_PRIVATE outPrivate` (optional)
|
||
|
- `TPM2B_PUBLIC outPublic`
|
||
|
- `TPM2B_NAME name`
|
||
|
|
||
|
## References
|
||
|
|
||
|
- [TCG TPM Library part 3: Commands, section 12.9](https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM2_r1p59_Part3_Commands_pub.pdf)
|
||
|
|