Tspi_K...onBlob(3)
β¨ Tspi_Key_CreateMigrationBlob β¨
okay so bestie, welcome to the TCG Software Stack Developer's Reference π this one is Tspi_Key_CreateMigrationBlob(3) and it's literally the glow-up-your-key-so-it-can-move-out page π§³β¨
πΈ NAME πΈ
Tspi_Key_CreateMigrationBlob β makes a key blob that's all dressed up and ready to migrate to another TPM π
no cap, that's the whole gig.
π SYNOPSIS π
#include <tss/platform.h>
#include <tss/tcpa_defines.h>
#include <tss/tcpa_typedef.h>
#include <tss/tcpa_struct.h>
#include <tss/tss_typedef.h>
#include <tss/tss_structs.h>
#include <tss/tspi.h>
TSS_RESULT Tspi_Key_CreateMigrationBlob(TSS_HKEY hKeyToMigrate, TSS_HKEY hParentKey,
UINT32 ulMigTicketLength, BYTE* rgbMigTicket,
UINT32* pulRandomLength, BYTE** prgbRandom,
UINT32* pulMigrationBlobLength, BYTE** prgbMigrationBlob);
like, look at those params. seven of them. the way she takes up two whole lines π iconic honestly.
π¦ DESCRIPTION π¦
Tspi_Key_CreateMigrationBlob hands you back a key blob that's got an encrypted section inside it π β and that section will be different depending on the migration scheme that's indicated within the migration ticket. and where did that ticket come from, you ask? it was previously created by the method Tspi_TPM_AuthorizeMigrationTicket(). so it's giving "i got my paperwork sorted earlier, now i'm just packing" π¦β¨
π PARAMETERS π
hKeyToMigrate
Handle of the key object to migrate. that's the main character of this whole operation π
hParentKey
Handle to the parent key related to the key addressed by hKeyToMigrate. yes, the key has a parental figure, we respect that π«Ά
ulMigTicketLength
The length (in bytes) of the rgbMigTickey parameter. (that's their spelling, not mine, i'm just the messenger π)
rgbMigTicket
Pointer to memory containing the migration ticket β which is the migration public key and its authorization digest, two-for-one deal ποΈ
pulRandomLength
On successful completion this parameter returns the random data length returned at the parameter prgbRandom. length of the vibes, basically.
prgbRandom
On successful completion this parameter returns the random data. β¨
pulMigrationBlobLength
On successful completion this parameter returns the length of the migration blob data returned at the parameter prgbMigrationBlob.
prgbMigrationBlob
On successful completion this parameter returns the migration data blob. the moment we've all been waiting for π
heads up bestie: all those "on successful completion" returns only happen if it actually succeeds. if it flops, see the next section, it's gonna be a whole thing π
β RETURN CODES β
Tspi_Key_CreateMigrationBlob returns TSS_SUCCESS on success π₯³ otherwise one of the following values gets returned:
TSS_E_INVALID_HANDLEβ EitherhKeyToMigrate,hParentKeyorrgbMigTicketare invalid parameters. one of them is simply not that girl πTSS_E_BAD_PARAMETERβ One of the passed parameters is wrong.TSS_E_KEY_NO_MIGRATION_POLICYβ No migration policy picked. you literally didn't choose, so the universe chose for you and it chose error πTSS_E_INTERNAL_ERRORβ An error occurred internal to the TSS. it's not you, it's them.
π CONFORMING TO π
Tspi_Key_CreateMigrationBlob conforms to the Trusted Computing Group Software Specification version 1.1 Golden π she's certified, she's spec-compliant, she's that girl.
π SEE ALSO π
and that's the page!! π source is the TSS 1.1 release, dated 2004-05-26, so she's vintage and still serving π iykyk. stay hydrated, read your return codes, and don't migrate without your ticket bestie π¦π
π¦ where this page comes from
- debian bookworm: libtspi-dev 0.3.15-0.3 Β· BSD-3-Clause
- debian trixie: libtspi-dev 0.3.15-0.4 Β· BSD-3-Clause
- epel 10: trousers-devel 0.3.15-11.el10_0 Β· BSD
- epel 9: trousers-devel 0.3.15-5.el9 Β· BSD
- fedora 43: trousers-devel 0.3.15-15.fc43 Β· LicenseRef-Callaway-BSD
- fedora 43: trousers-devel 0.3.15-15.fc43 Β· LicenseRef-Callaway-BSD
- fedora 43: trousers-devel 0.3.15-16.fc43 Β· LicenseRef-Callaway-BSD
- fedora 43: trousers-devel 0.3.15-16.fc43 Β· LicenseRef-Callaway-BSD
- fedora 44: trousers-devel 0.3.15-17.fc44 Β· LicenseRef-Callaway-BSD
- fedora 44: trousers-devel 0.3.15-17.fc44 Β· LicenseRef-Callaway-BSD
- nixos 26.05: trousers 0.3.15
- nixpkgs unstable: netbsd-source 11.0
- nixpkgs unstable: trousers 0.3.15
- opensuse-leap 16.0: trousers-devel 0.3.15-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: trousers-devel 0.3.15-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: trousers-devel 0.3.15-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: trousers-devel 0.3.15-160000.2.2 Β· BSD-3-Clause
- ubuntu jammy: libtspi-dev 0.3.15-0.2 Β· BSD-3-Clause
- ubuntu noble: libtspi-dev 0.3.15-0.3build2 Β· BSD-3-Clause
- ubuntu questing: libtspi-dev 0.3.15-0.4
- ubuntu resolute: libtspi-dev 0.3.15-1 Β· BSD-3-Clause
- ubuntu stonking: libtspi-dev 0.3.15-1ubuntu2 Β· BSD-3-Clause
- Copyright (C) 2004 International Business Machines Corporation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms