mirror of
https://github.com/tpm2dev/tpm.dev.tutorials.git
synced 2024-11-10 01:12:10 +00:00
26 lines
910 B
Markdown
26 lines
910 B
Markdown
|
# `TPM2_Duplicate()`
|
||
|
|
||
|
`TPM2_Duplicate()` wraps a key, typically encrypting it to a public key
|
||
|
for a key on a remote TPM.
|
||
|
|
||
|
I.e., this is used to export a wrapped key for some target, typically a
|
||
|
remote TPM.
|
||
|
|
||
|
## Inputs
|
||
|
|
||
|
- `TPMI_DH_OBJECT objectHandle` (handle for key to encrypt with)
|
||
|
- `TPMI_DH_OBJECT newParentHandle` (optional; handle for key to wrap to -- "Only the public area of newParentHandle is required to be loaded")
|
||
|
- `TPM2B_DATA encryptionKeyIn` (optional; symmetric key to encrypt with)
|
||
|
- `TPMT_SYM_DEF_OBJECT+ symmetricAlg` ("definition for the symmetric algorithm to be used for the inner wrapper")
|
||
|
|
||
|
## Outputs (success case)
|
||
|
|
||
|
- `TPM2B_DATA encryptionKeyOut`
|
||
|
- `TPM2B_PRIVATE duplicate`
|
||
|
- `TPM2B_ENCRYPTED_SECRET outSymSeed`
|
||
|
|
||
|
## References
|
||
|
|
||
|
- [TCG TPM Library part 3: Commands, section 18.4](https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM2_r1p59_Part3_Commands_pub.pdf)
|
||
|
|