TPM2 API
TPM2 固有
このモジュールでは、wolfTPM のみに固有の TPM2 コマンドについて説明します。通常、これらのコマンドには、TPM 2.0 データ構造を処理するためのヘルパーが含まれています。開発時のデバッグやテストに役立つ機能もあります。
関数
戻り値 | 関数および機能概要 |
---|---|
WOLFTPM_API TPM_RC | TPM2_Init(TPM2_CTX* ctx, TPM2HalIoCb ioCb, void* userCtx) HAL IO コールバックとユーザー指定のコンテキストで TPM を初期化します。 --enable-devtpm または --enable-swtpm 構成で wolfTPM を使用する場合、ioCb と userCtx は使用されません。 |
WOLFTPM_API TPM_RC | TPM2_Init_ex(TPM2_CTX* ctx, TPM2HalIoCb ioCb, void* userCtx,int timeoutTries) timeoutTries、HAL IO コールバック、およびユーザー指定のコンテキストで TPM を初期化します。 |
WOLFTPM_API TPM_RC | TPM2_Init_minimal(TPM2_CTX* ctx) TPM を初期化し、使用される wolfTPM2 コンテキストを設定します。 この関数は通常、Windows などのリッチ オペレーティング システムで使用されます。 |
WOLFTPM_API TPM_RC | TPM2_Cleanup(TPM2_CTX* ctx) TPM と wolfcrypt を初期化解除します (初期化されている場合) |
WOLFTPM_API TPM_RC | TPM2_ChipStartup(TPM2_CTX* ctx, int timeoutTries) TPM2 の起動が完了したことを確認し、TPM デバイス情報を抽出します。 |
WOLFTPM_API TPM_RC | TPM2_SetHalIoCb(TPM2_CTX* ctx, TPM2HalIoCb ioCb, void* userCtx) TPM 通信に必要なユーザーのコンテキストと IO コールバックを設定します。 |
WOLFTPM_API TPM_RC | TPM2_SetSessionAuth(TPM2_AUTH_SESSION* session) TPM 承認を保持する構造体を設定します。 |
WOLFTPM_API int | TPM2_GetSessionAuthCount(TPM2_CTX* ctx) 現在設定されている TPM 承認の数を特定します。 |
WOLFTPM_API void | TPM2_SetActiveCtx(TPM2_CTX* ctx) 使用する新しい TPM2 コンテキストを設定します。 |
WOLFTPM_API TPM2_CTX* | TPM2_GetActiveCtx(void) 使用中の TPM2 コンテキストへのポインターを提供します。 |
WOLFTPM_API int | TPM2_GetHashDigestSize(TPMI_ALG_HASH hashAlg) TPM 2.0 ハッシュ ダイジェストのサイズをバイト単位で決定します。 |
WOLFTPM_API int | TPM2_GetHashType(TPMI_ALG_HASH hashAlg) TPM2 ハッシュ タイプを対応する wolfcrypt ハッシュ タイプに変換します。 |
WOLFTPM_API int | TPM2_GetNonce(byte* nonceBuf, int nonceSz) 乱数の新しいナンスを生成します。 |
WOLFTPM_API void | TPM2_SetupPCRSel(TPML_PCR_SELECTION* pcr, TPM_ALG_ID alg,int pcrIndex) TPM2_Quote を作成する準備をする場合などに、正しい PCR 選択を準備するためのヘルパー関数 |
const WOLFTPM_API char * | TPM2_GetRCString(int rc) TPM 2.0 リターン コードの人間が判読できる文字列を取得します。 |
const WOLFTPM_API char * | TPM2_GetAlgName alg)(TPM_ALG_ID alg) 任意の TPM 2.0 アルゴリズムについて、人間が判読できる文字列を取得します。 |
WOLFTPM_API int | TPM2_GetCurveSize(TPM_ECC_CURVE curveID) TPM ECC 曲線のサイズをバイト単位で決定します。 |
WOLFTPM_API int | TPM2_GetTpmCurve(int curveID) wolfcrypt 曲線タイプを対応する TPM 曲線タイプに変換します。 |
WOLFTPM_API int | TPM2_GetWolfCurve(int curve_id) TPM 曲線タイプを対応する wolfcrypt 曲線タイプに変換します。 |
WOLFTPM_API int | TPM2_ParseAttest(const TPM2B_ATTEST in, TPMS_ATTEST out) TPM2B_ATTEST を解析し、TPMS_ATTEST 構造にデータを入力します。 |
WOLFTPM_API int | TPM2_HashNvPublic(TPMS_NV_PUBLIC nvPublic, byte buffer, UINT16* size) nvPublic 構造に基づいて新しい NV インデックス名を計算します。 |
WOLFTPM_API int | TPM2_AppendPublic(byte* buf, word32 size, int* sizeUsed, TPM2B_PUBLIC* pub) ユーザー提供のバッファーに基づいて TPM2B_PUBLIC 構造体を設定します。 |
WOLFTPM_API int | TPM2_ParsePublic(TPM2B_PUBLIC* pub, byte* buf, word32 size, int* sizeUsed) TPM2B_PUBLIC 構造を解析し、ユーザー提供のバッファーに格納します。 |
WOLFTPM_LOCAL int | TPM2_GetName(TPM2_CTX* ctx, UINT32 handleValue, int handleCnt, int idx, TPM2B_NAME* name) TPM オブジェクトの名前を提供します |
WOLFTPM_API UINT16 | TPM2_GetVendorID(void ) アクティブな TPM2 コンテキストの vendorID を提供します |
WOLFTPM_API void | TPM2_PrintBin(const byte* buffer, word32 length) フォーマットされた方法でバイナリ バッファを出力するヘルパー関数 |
WOLFTPM_API void | TPM2_PrintAuth(const TPMS_AUTH_COMMAND* authCmd) 人間が読める方法で TPMS_AUTH_COMMAND 型の構造を出力するヘルパー関数 |
WOLFTPM_API void | TPM2_PrintPublicArea(const TPM2B_PUBLIC* pub) 人間が読める方法で TPM2B_PUBLIC 型の構造を出力するヘルパー関数 |
詳細な説明
このモジュールでは、wolfTPM のみに固有の TPM2 コマンドについて説明します。
通常、これらのコマンドには、TPM 2.0 データ構造を処理するためのヘルパーが含まれています。
開発時のデバッグやテストに役立つ機能もあります。
関数のドキュメント
TPM2_Init
WOLFTPM_API TPM_RC TPM2_Init(
TPM2_CTX * ctx,
TPM2HalIoCb ioCb,
void * userCtx
)
HAL IO コールバックとユーザー指定のコンテキストで TPM を初期化します。 –enable-devtpm または –enable-swtpm 構成で wolfTPM を使用する場合、ioCb と userCtx は使用されません。
パラメータ:
- ctx TPM2_CTX 構造体へのポインター
- ioCb TPM2HalIoCb (HAL IO) コールバック関数ポインタ
- userCtx ユーザーコンテキストへのポインター
参考:
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: 一般的なエラー(IO関係のエラー)
- BAD_FUNC_ARG: 不正な引数
ノート:
TPM2_Init_minimal() ioCb と userCtx の両方をNULLにセットします。 その他のモードでは、TIS を使用するために ioCb を設定する必要があります。 ベアメタルおよび RTOS アプリケーションのサンプル ioCB は、examples/tpm_io.c で提供されています。
使用例
int rc;
TPM2_CTX tpm2Ctx;
rc = TPM2_Init(&tpm2Ctx, TPM2_IoCb, userCtx);
if (rc != TPM_RC_SUCCESS) {
// TPM2_Init failed
}
TPM2_Init_ex
WOLFTPM_API TPM_RC TPM2_Init_ex(
TPM2_CTX * ctx,
TPM2HalIoCb ioCb,
void * userCtx,
int timeoutTries
)
timeoutTries、HAL IO コールバック、およびユーザー指定のコンテキストで TPM を初期化します。
パラメータ:
- ctx TPM2_CTX 構造体へのポインター
- ioCb TPM2HalIoCb (HAL IO) コールバック関数ポインター
- userCtx ユーザーコンテキストへのポインター
- timeoutTries TPM2 の起動が完了したことを確認するための試行回数を指定します
参考:
- TPM2_GetRCString
- TPM2_Init_minimal
- TPM2_Init
- wolfTPM2_Init_ex
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: general error (possibly IO)
- BAD_FUNC_ARG: 不正な引数
ノート:
TPM2_Init_minimal を直接使用する代わりに、TPM2_Init を使用することをお勧めします。
TPM2_Init_minimal
WOLFTPM_API TPM_RC TPM2_Init_minimal(
TPM2_CTX * ctx
)
TPM を初期化し、使用される wolfTPM2 コンテキストを設定します。 この関数は通常、Windows などのリッチ オペレーティング システムで使用されます。
パラメータ:
- ctx TPM2_CTX 構造体へのポインター
参考:
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: general error (possibly IO)
- BAD_FUNC_ARG: 不正な引数
ノート:
TPM2_Init_minimal を直接使用する代わりに、TPM2_Init を使用することをお勧めします。
TPM2_Cleanup
WOLFTPM_API TPM_RC TPM2_Cleanup(
TPM2_CTX * ctx
)
TPM と wolfcrypt を初期化解除します (初期化されている場合)
パラメータ:
- ctx TPM2_CTX 構造体へのポインター
参考:
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: could not acquire the lock on the wolfTPM2 context
- BAD_FUNC_ARG: 不正な引数(NULLを渡した)
使用例
int rc;
TPM2_CTX tpm2Ctx;
rc = TPM2_Cleanup(&tpm2Ctx->dev);
if (rc != TPM_RC_SUCCESS) {
// TPM2_Cleanup failed
}
TPM2_ChipStartup
WOLFTPM_API TPM_RC TPM2_ChipStartup(
TPM2_CTX * ctx,
int timeoutTries
)
TPM2 の起動が完了していることを確認し、TPM デバイス情報を抽出します。
パラメータ:
- ctx TPM2_CTX 構造体へのポインター
- timeoutTries TPM2のスタートアップが完了したかをチェックする回数
参考:
- TPM2_GetRCString
- TPM2_TIS_StartupWait
- TPM2_TIS_RequestLocality
- TPM2_TIS_GetInfo
- TPM2_Init_ex
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: 一般的なエラー (IO関係のエラー?)
- BAD_FUNC_ARG: 不正な引数
- TPM_RC_TIMEOUT: タイムアウト
ノート:
この関数は TPM2_Init_ex で使用されます。
TPM2_SetHalIoCb
WOLFTPM_API TPM_RC TPM2_SetHalIoCb(
TPM2_CTX * ctx,
TPM2HalIoCb ioCb,
void * userCtx
)
TPM 通信に必要なユーザーのコンテキストと IO コールバックを設定します。
パラメータ:
- ctx TPM2_CTX 構造体へのポインター
- ioCb TPM2HalIoCb (HAL IO) コールバック関数
- userCtx ユーザーコンテキストへのポインター
参考:
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: TPM2_CTX構造体の排他ロックを取得できなかった
- BAD_FUNC_ARG: 不正な引数(ctxにNULLポインターを渡した)
ノート:
コールバックが TPM に使用されないため、devtpm または swtpm でビルドされた場合、SetHalIoCb は失敗します。 他の構成ビルドでは、ioCb を NULL 以外の関数ポインターに設定する必要があり、userCtx はオプションです。
通常、TPM2_Init または wolfTPM2_Init を使用して HAL IO を設定します。
TPM2_SetSessionAuth
WOLFTPM_API TPM_RC TPM2_SetSessionAuth(
TPM2_AUTH_SESSION * session
)
TPM 承認を保持する構造体を設定します。
パラメータ:
- session TPM2_AUTH_SESSION配列へのポインター
参考:
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: TPM2_CTX構造体の排他ロックを取得できなかった
- BAD_FUNC_ARG: 不正な引数(ctxにNULLポインターを渡した)
TPM2_Init 関数と wolfTPM2_Init もこの初期化を実行するため、この関数を明示的に呼び出すことはまれです。TPM 2.0 コマンドは最大3つの認証スロットを持つことができるため、サイズ MAX_SESSION_NUM の配列を TPM2_SetSessionAuth に提供することをお勧めします (以下の例を参照)。
使用例
int rc;
TPM2_AUTH_SESSION session[MAX_SESSION_NUM];
XMEMSET(session, 0, sizeof(session));
session[0].sessionHandle = TPM_RS_PW;
rc = TPM2_SetSessionAuth(session);
if (rc != TPM_RC_SUCCESS) {
// TPM2_SetSessionAuth failed
}
TPM2_GetSessionAuthCount
WOLFTPM_API int TPM2_GetSessionAuthCount(
TPM2_CTX * ctx
)
現在設定されている TPM 承認の数を確認します。
パラメータ:
- ctx TPM2_CTX 構造体へのポインター
参考:
戻り値:
- アクティブなTPM 認証数 (1~3)
- BAD_FUNC_ARG: 不正な引数
使用例
int authCount;
TPM2_CTX tpm2Ctx;
authCount = TPM2_GetSessionAuthCount(tpm2ctx);
if (authCount == BAD_FUNC_ARG) {
// TPM2_GetSessionAuthCount failed
}
TPM2_SetActiveCtx
WOLFTPM_API void TPM2_SetActiveCtx(
TPM2_CTX * ctx
)
新たなTPM2_CTXを設定する。
パラメータ:
- ctx TPM2_CTX 構造体へのポインター
参考:
使用例
TPM2_CTX tpm2Ctx;
TPM2_SetActiveCtx(tpm2ctx);
TPM2_GetActiveCtx
WOLFTPM_API TPM2_CTX * TPM2_GetActiveCtx(
void
)
TPM2_CTXへのポインターを得る。
参考:
戻り値:
TPM2_CTX 構造体へのポインター
使用例
TPM2_CTX *tpm2Ctx;
tpm2Ctx = TPM2_GetActiveCtx();
TPM2_GetHashDigestSize
WOLFTPM_API int TPM2_GetHashDigestSize(
TPMI_ALG_HASH hashAlg
)
TPM 2.0 ハッシュダイジェストのサイズ(バイト数)を得る。
パラメータ:
- hashAlg TPM 2.0 ハッシュタイプ
戻り値:
- TPM 2.0 ハッシュダイジェストのサイズ(バイト数)
- ハッシュタイプが不正の場合は0を返す
使用例
int digestSize = 0;
TPMI_ALG_HASH hashAlg = TPM_ALG_SHA256;
digestSize = TPM2_GetHashDigestSize(hashAlg);
if (digestSize > 0) {
//digestSize contains a valid value
}
TPM2_GetHashType
WOLFTPM_API int TPM2_GetHashType(
TPMI_ALG_HASH hashAlg
)
TPM2 ハッシュタイプは対応するwolfcryptのハッシュタイプに変換する。
パラメータ:
- hashAlg TPM 2.0 ハッシュタイプ
戻り値:
- wolfcryptでの定義によるハッシュタイプの値
- ハッシュタイプが不正の場合は0を返す
使用例
int wc_hashType;
TPMI_ALG_HASH hashAlg = TPM_ALG_SHA256;
wc_hashType = TPM2_GetHashDigestSize(hashAlg);
if (wc_hashType > 0) {
//wc_hashType contains a valid wolfcrypt hash type
}
TPM2_GetNonce
WOLFTPM_API int TPM2_GetNonce(
byte * nonceBuf,
int nonceSz
)
乱数の新しいナンスを生成します。
パラメータ:
- nonceBuf BYTEバッファーへのポインター
- nonceSz ナンスのサイズ(バイト数)
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: 一般的なエラー (TPM IO での問題あるいはwolfcryptのコンフィギュレーション上の問題)
- BAD_FUNC_ARG: 不正な引数
ノート:
WOLFTPM2_USE_HW_RNG が定義されている場合、TPM 乱数ジェネレーターを使用できます。
使用例
int rc, nonceSize = 32;
BYTE freshNonce[32];
rc = TPM2_GetNonce(&freshNonce, nonceSize);
if (rc != TPM_RC_SUCCESS) {
//TPM2_GetNonce failed
}
TPM2_SetupPCRSel
WOLFTPM_API void TPM2_SetupPCRSel(
TPML_PCR_SELECTION * pcr,
TPM_ALG_ID alg,
int pcrIndex
)
正しい PCR 選択を準備するためのヘルパー関数 たとえば、TPM2_Quote を作成する準備をする場合。
パラメータ:
- pcr TPML_PCR_SELECTION構造体へのポインター
- alg ハッシュアルゴリズムを示すTPM_ALG_ID
- pcrIndex 使用するPCRレジスターを示す0から23までの値
参考:
使用例
int pcrIndex = 16; // This is a PCR register for DEBUG & testing purposes
PCR_Read_In pcrRead;
TPM2_SetupPCRSel(&pcrRead.pcrSelectionIn, TPM_ALG_SHA256, pcrIndex);
TPM2_GetRCString
const WOLFTPM_API char * TPM2_GetRCString(
int rc
)
TPM 2.0 リターン コードの人間が判読できる文字列を取得します。
パラメータ:
- rc TPMリターンコード
戻り値:
文字列定数へのポインター
使用例
int rc;
rc = wolfTPM2_Init(&dev, TPM2_IoCb, userCtx);
if (rc != TPM_RC_SUCCESS) {
printf("wolfTPM2_Init failed 0x%x: %s\n", rc, TPM2_GetRCString(rc));
return rc;
}
TPM2_GetAlgName
const WOLFTPM_API char * TPM2_GetAlgName(
TPM_ALG_ID alg
)
TPM 2.0 アルゴリズムの人間が判読できる文字列を取得します。
パラメータ:
- alg TPM 2.0 アルゴリズムを表すTPM_ALG_ID 型の値
戻り値:
文字列定数へのポインター
使用例
int paramEncAlg = TPM_ALG_CFB;
printf("\tUse Parameter Encryption: %s\n", TPM2_GetAlgName(paramEncAlg));
TPM2_GetCurveSize
WOLFTPM_API int TPM2_GetCurveSize(
TPM_ECC_CURVE curveID
)
TPM ECC曲線のサイズ(バイト数)を返す。
パラメータ:
- curveID TPM ECC曲線のタイプ
戻り値:
- 不正な曲線タイプの場合は0を返す。
- バイト数を示す整数値
使用例
int bytes;
TPM_ECC_CURVE curve = TPM_ECC_NIST_P256;
bytes = TPM2_GetCurveSize(curve);
if (bytes == 0) {
//TPM2_GetCurveSize failed
}
TPM2_GetTpmCurve
WOLFTPM_API int TPM2_GetTpmCurve(
int curveID
)
wolfcrypt 曲線タイプを対応する TPM 曲線タイプに変換します。
パラメータ:
- curveID BYTEバッファーへのポインター
戻り値:
- wolfcrypt 曲線タイプを表す整数値
- 無効な曲線タイプの場合は ECC_CURVE_OID_Eを返す
使用例
int tpmCurve;
int wc_curve = ECC_SECP256R1;
tpmCurve = TPM2_GetTpmCurve(curve);
\in this case tpmCurve will be TPM_ECC_NIST_P256
if (tpmCurve = ECC_CURVE_OID_E) {
//TPM2_GetTpmCurve failed
}
TPM2_GetWolfCurve
WOLFTPM_API int TPM2_GetWolfCurve(
int curve_id
)
TPM 曲線タイプを対応する wolfcrypt 曲線タイプに変換します。
パラメータ:
- curve_id BYTEバッファーへのポインター
参考: TPM2_GetTpmCurve
戻り値:
- TPM 曲線タイプを表す整数値
- 無効な曲線タイプの場合は -1 あるいは ECC_CURVE_OID_E を返す
使用例
int tpmCurve = TPM_ECC_NIST_P256;
int wc_curve;
wc_curve = TPM2_GetWolfCurve(tpmCurve);
\in this case tpmCurve will be ECC_SECP256R1
if (wc_curve = ECC_CURVE_OID_E || wc_curve == -1) {
//TPM2_GetWolfCurve failed
}
TPM2_ParseAttest
WOLFTPM_API int TPM2_ParseAttest(
const TPM2B_ATTEST * in,
TPMS_ATTEST * out
)
TPM2B_ATTEST構造体をパースする。
パラメータ:
- in TPM2B_ATTEST 型の構造体へのポインター
- out TPMS_ATTEST 型の構造体へのポインター
戻り値:
- TPM_RC_SUCCESS: 成功
- BAD_FUNC_ARG: 不正な引数
ノート:
これは、ヘルパー関数 TPM2_Packet_ParseAttest のパブリック API です。
使用例
TPM2B_ATTEST in; //for example, as part of a TPM2_Quote
TPMS_ATTEST out
rc = TPM2_GetNonce(&in, &out);
if (rc != TPM_RC_SUCCESS) {
//TPM2_ParseAttest failed
}
TPM2_HashNvPublic
WOLFTPM_API int TPM2_HashNvPublic(
TPMS_NV_PUBLIC * nvPublic,
byte * buffer,
UINT16 * size
)
nvPublic 構造に基づいて新しい NV インデックス名を計算します。
パラメータ:
- nvPublic
- buffer TPMS_ATTEST 型の構造体へのポインター
- size nvIndex のサイズを格納する UINT16 型の変数へのポインタ
戻り値:
- TPM_RC_SUCCESS: 成功
- エラーの場合は負の値
- BAD_FUNC_ARG: 不正な引数
- NOT_COMPILED_IN: wolfcryptが有効になっているか要確認
使用例
TPMS_NV_PUBLIC nvPublic;
BYTE buffer[TPM_MAX_DIGEST_SIZE];
UINT16 size;
rc = TPM2_HashNvPublic(&nvPublic, &buffer, &size);
if (rc != TPM_RC_SUCCESS) {
//TPM2_HashNvPublic failed
}
TPM2_AppendPublic
WOLFTPM_API int TPM2_AppendPublic(
byte * buf,
word32 size,
int * sizeUsed,
TPM2B_PUBLIC * pub
)
ユーザー提供のバッファに基づいて TPM2B_PUBLIC 構造体を設定します。
パラメータ:
- buf ユーザーバッファへのポインター
- size ユーザーバッファのサイズを指定する word32 型の整数値
- sizeUsed pub->buffer の使用サイズを格納する整数変数へのポインター
- pub TPM2B_PUBLIC 型の空の構造体へのポインタ
参考: TPM2_ParsePublic
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: 不十分なバッファ サイズ
- BAD_FUNC_ARG: 不正な引数
ノート:
ヘルパー関数 TPM2_Packet_AppendPublic の公開 API
使用例
TPM2B_PUBLIC pub; //empty
int sizeUsed, rc;
BYTE buffer[sizeof(TPM2B_PUBLIC)];
word32 size = sizeof(buffer);
rc = TPM2_AppendPublic(&buffer, size, &sizeUsed, &pub);
if (rc != TPM_RC_SUCCESS) {
//TPM2_AppendPublic failed
}
TPM2_ParsePublic
WOLFTPM_API int TPM2_ParsePublic(
TPM2B_PUBLIC * pub,
byte * buf,
word32 size,
int * sizeUsed
)
TPM2B_PUBLIC 構造体を解析し、ユーザー指定のバッファーに格納します。
パラメータ:
- pub TPM2B_PUBLIC 型のデータが取り込まれた構造体へのポインター
- buf 空のユーザー バッファへのポインター
- size ユーザー バッファの使用可能なサイズを指定する word32 型の整数値
- sizeUsed ユーザー バッファーの使用サイズを格納する整数変数へのポインター
戻り値:
- TPM_RC_SUCCESS: 成功
- TPM_RC_FAILURE: バッファサイズが不十分
- BAD_FUNC_ARG: 不正な引数
ノート:
ヘルパー関数 TPM2_Packet_ParsePublic の公開 API
使用例
TPM2B_PUBLIC pub; //populated
int sizeUsed, rc;
BYTE buffer[sizeof(TPM2B_PUBLIC)];
word32 size = sizeof(buffer);
rc = TPM2_ParsePublic(&pub, buffer, size, &sizeUsed);
if (rc != TPM_RC_SUCCESS) {
//TPM2_ParsePublic failed
}
TPM2_GetName
WOLFTPM_LOCAL int TPM2_GetName(
TPM2_CTX * ctx,
UINT32 handleValue,
int handleCnt,
int idx,
TPM2B_NAME * name
)
TPM オブジェクトの名前を提供します。
パラメータ:
- ctx TPM2_CTX 構造体へのポインター
- handleValue 有効な TPM ハンドルを指定する UINT32 型の値
- handleCnt 現在の TPM コマンド/セッションで使用されているハンドルの総数
- idx 有効な TPM 認証セッションを指定する 1 ~ 3 のインデックス値
- name TPM2B_NAME 型の空の構造体へのポインター
戻り値:
- TPM_RC_SUCCESS: 成功
- BAD_FUNC_ARG: 不正な引数
ノート:
オブジェクトは、TPM ハンドルとセッション インデックスによって参照されます。
使用例
int rc;
UINT32 handleValue = TRANSIENT_FIRST;
handleCount = 1;
sessionIdx = 0;
TPM2B_NAME name;
rc = TPM2_GetName(ctx, handleValue, handleCount, sessionIdx, &name);
if (rc != TPM_RC_SUCCESS) {
//TPM2_GetName failed
}
TPM2_GetVendorID
WOLFTPM_API UINT16 TPM2_GetVendorID(
void
)
アクティブな TPM2 コンテキストの vendorID を提供します。
参考:
- TPM2_GetCapabilities
- TPM2_GetTpmDevId
- TPM2_Init
戻り値:
- ベンダー ID を指定する UINT16 型の整数値
- TPM2 コンテキストが無効または NULL の場合は 0
ノート:
TPM 初期化中に TPM デバイス情報が正しく読み取られるかどうかに依存します。
使用例
TPM2_CTX *tpm2Ctx;
tpm2Ctx = TPM2_GetActiveCtx();
TPM2_PrintBin
WOLFTPM_API void TPM2_PrintBin(
const byte * buffer,
word32 length
)
フォーマットされた方法でバイナリ バッファを出力するヘルパー関数。
パラメータ:
- buffer BYTE型のバッファへのポインタ
- length バッファのサイズを含む word32 型の整数値
参考:
ノート:
DEBUG_WOLFTPM を定義する必要があります
使用例
BYTE buffer[] = {0x01,0x02,0x03,0x04};
length = sizeof(buffer);
TPM2_PrintBin(&buffer, length);
TPM2_PrintAuth
WOLFTPM_API void TPM2_PrintAuth(
const TPMS_AUTH_COMMAND * authCmd
)
TPMS_AUTH_COMMAND 型の構造体を人間が読める形式で出力するヘルパー関数。
パラメータ:
- authCmd TPMS_AUTH_COMMAND 型のデータが取り込まれた構造体へのポインター
参考:
ノート:
DEBUG_WOLFTPM を定義する必要があります
使用例
TPMS_AUTH_COMMAND authCmd; //for example, part of a TPM Authorization session
TPM2_PrintAuthCmd(&authCmd);
TPM2_PrintPublicArea
WOLFTPM_API void TPM2_PrintPublicArea(
const TPM2B_PUBLIC * pub
)
TPM2B_PUBLIC 型の構造を人間が読める形式で出力するヘルパー関数。
パラメータ:
- pub TPM2B_PUBLIC 型のデータが取り込まれた構造体へのポインター
参考:
ノート:
DEBUG_WOLFTPM を定義する必要があります
使用例
TPM2B_PUBLIC pub; //for example, part of the output of a successful TPM2_Create
TPM2_PrintPublicArea(&pub);