Skip to content

Commit b366a8d

Browse files
committed
Use a different (not default) devId for the CSR crypto callback.
1 parent ce56065 commit b366a8d

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/tpm2_wrap.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6213,11 +6213,22 @@ static int CSR_KeySetup(WOLFTPM2_DEV* dev, WOLFTPM2_CSR* csr, WOLFTPM2_KEY* key,
62136213
#ifdef HAVE_ECC
62146214
csrKey->tpmCtx.eccKey = key;
62156215
#endif
6216-
rc = wolfTPM2_SetCryptoDevCb(dev, wolfTPM2_CryptoDevCb,
6217-
&csrKey->tpmCtx, &csrKey->tpmDevId);
6216+
6217+
rc = wolfTPM2_GetTpmDevId(dev);
6218+
if (rc >= 0) {
6219+
devId = rc;
6220+
devId += 1; /* use a different devId for the CSR callback */
6221+
rc = 0;
6222+
}
62186223
if (rc == 0) {
6219-
devId = csrKey->tpmDevId;
6224+
csrKey->tpmCtx.dev = dev;
6225+
rc = wc_CryptoCb_RegisterDevice(devId, wolfTPM2_CryptoDevCb,
6226+
&csrKey->tpmCtx);
6227+
}
6228+
if (rc != 0) {
6229+
return rc;
62206230
}
6231+
csrKey->tpmDevId = devId;
62216232
}
62226233

62236234
/* determine the type of key in WOLFTPM2_KEY */

0 commit comments

Comments
 (0)