Skip to content

Commit 8ae11cf

Browse files
committed
Add wrapper support for setting key usage (not just extended key usage).
1 parent b9c5133 commit 8ae11cf

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/tpm2_wrap.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6335,6 +6335,10 @@ int wolfTPM2_CSR_SetKeyUsage(WOLFTPM2_DEV* dev, WOLFTPM2_CSR* csr,
63356335

63366336
/* add Extended Key Usage */
63376337
rc = wc_SetExtKeyUsage(&csr->req, keyUsage);
6338+
if (rc == EXTKEYUSAGE_E) {
6339+
/* try setting key usage values */
6340+
rc = wc_SetKeyUsage(&csr->req, keyUsage);
6341+
}
63386342
#else
63396343
if (keyUsage != NULL) {
63406344
#ifdef DEBUG_WOLFTPM

wolftpm/tpm2_wrap.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2670,15 +2670,19 @@ WOLFTPM_API int wolfTPM2_CSR_SetCustomExt(WOLFTPM2_DEV* dev, WOLFTPM2_CSR* csr,
26702670
/*!
26712671
\ingroup wolfTPM2_Wrappers
26722672
\brief Helper for Certificate Signing Request (CSR) generation to set a
2673-
key usage for a WOLFTPM2_CSR structure.
2673+
extended key usage or key usage for a WOLFTPM2_CSR structure.
2674+
Pass either extended key usage or key usage values.
2675+
Mixed string types are not supported, however you can call `wolfTPM2_CSR_SetKeyUsage`
2676+
twice (once for extended key usage strings and once for standard key usage strings).
26742677
26752678
\return TPM_RC_SUCCESS: successful
26762679
\return BAD_FUNC_ARG: check the provided arguments
26772680
26782681
\param dev pointer to a TPM2_DEV struct (not used)
26792682
\param csr pointer to a WOLFTPM2_CSR structure
26802683
\param keyUsage string list of comma separated key usage attributes.
2681-
Possible values: any, serverAuth, clientAuth, codeSigning, emailProtection, timeStamping and OCSPSigning
2684+
Possible Extended Key Usage values: any, serverAuth, clientAuth, codeSigning, emailProtection, timeStamping and OCSPSigning
2685+
Possible Key Usage values: digitalSignature, nonRepudiation, contentCommitment, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign, encipherOnly, decipherOnly
26822686
Default: "serverAuth,clientAuth,codeSigning"
26832687
26842688
\sa wolfTPM2_CSR_SetSubject

0 commit comments

Comments
 (0)