Skip to content

Commit 1be477f

Browse files
James BottomleyHon Ching(Vicky) Lo
authored andcommitted
tpm-tools: fix incorrect key parameter defines use
tpm_getpubek is returning nonsense for the key parameters. Example: jejb@jarvis:~> tpm_getpubek Public Endorsement Key: Version: 01010000 Usage: 0x0002 (Unknown) Flags: 0x00000000 (!VOLATILE, !MIGRATABLE, !REDIRECTION) AuthUsage: 0x00 (Never) Algorithm: 0x00000020 (Unknown) Encryption Scheme: 0x00000012 (Unknown) Signature Scheme: 0x00000010 (Unknown) Public Key: [...] Apparently someone failed to appreciate that the TSS translates all the values from the TPM ones into its own different ones, and when you do attribute getting and setting, you have to use the TSS values. This patch updates tpm_tspi.c to use the correct TSS_ values and thus produces the much more correct output: Public Endorsement Key: Version: 01010000 Usage: 0x0002 (Legacy) Flags: 0x00000000 (!VOLATILE, !MIGRATABLE, !REDIRECTION) AuthUsage: 0x00 (Never) Algorithm: 0x00000020 (RSA) Encryption Scheme: 0x00000012 (RSAESOAEP_SHA1_MGF1) Signature Scheme: 0x00000010 (None) Key Size: 2048 bits Public Key: [...] Signed-off-by: James Bottomley <jejb@linux.vnet.ibm.com> Tested-by: Hon Ching(Vicky) Lo <honclo@linux.vnet.ibm.com>
1 parent 490afe6 commit 1be477f

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

‎lib/tpm_tspi.c

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -68,22 +68,22 @@ const char *displayKeyUsageMap(UINT32 a_uiData)
6868
{
6969

7070
switch (a_uiData) {
71-
case TPM_KEY_SIGNING:
71+
case TSS_KEYUSAGE_SIGN:
7272
return usageSigning;
7373

74-
case TPM_KEY_STORAGE:
74+
case TSS_KEYUSAGE_STORAGE:
7575
return usageStorage;
7676

77-
case TPM_KEY_IDENTITY:
77+
case TSS_KEYUSAGE_IDENTITY:
7878
return usageIdentity;
7979

80-
case TPM_KEY_AUTHCHANGE:
80+
case TSS_KEYUSAGE_AUTHCHANGE:
8181
return usageAuthChange;
8282

83-
case TPM_KEY_BIND:
83+
case TSS_KEYUSAGE_BIND:
8484
return usageBind;
8585

86-
case TPM_KEY_LEGACY:
86+
case TSS_KEYUSAGE_LEGACY:
8787
return usageLegacy;
8888
}
8989

@@ -116,22 +116,22 @@ const char *displayAlgorithmMap(UINT32 a_uiData)
116116
{
117117

118118
switch (a_uiData) {
119-
case TCPA_ALG_RSA:
119+
case TSS_ALG_RSA:
120120
return algRsa;
121121

122-
case TCPA_ALG_DES:
122+
case TSS_ALG_DES:
123123
return algDes;
124124

125-
case TCPA_ALG_3DES:
125+
case TSS_ALG_3DES:
126126
return alg3Des;
127127

128-
case TCPA_ALG_SHA:
128+
case TSS_ALG_SHA:
129129
return algSha;
130130

131-
case TCPA_ALG_HMAC:
131+
case TSS_ALG_HMAC:
132132
return algHmac;
133133

134-
case TCPA_ALG_AES:
134+
case TSS_ALG_AES:
135135
return algAes;
136136
}
137137

@@ -142,13 +142,13 @@ const char *displayEncSchemeMap(UINT32 a_uiData)
142142
{
143143

144144
switch (a_uiData) {
145-
case TCPA_ES_NONE:
145+
case TSS_ES_NONE:
146146
return encNone;
147147

148-
case TCPA_ES_RSAESPKCSv15:
148+
case TSS_ES_RSAESPKCSV15:
149149
return encRsaPkcs15;
150150

151-
case TCPA_ES_RSAESOAEP_SHA1_MGF1:
151+
case TSS_ES_RSAESOAEP_SHA1_MGF1:
152152
return encRsaOaepSha1Mgf1;
153153
}
154154

@@ -159,13 +159,13 @@ const char *displaySigSchemeMap(UINT32 a_uiData)
159159
{
160160

161161
switch (a_uiData) {
162-
case TCPA_SS_NONE:
162+
case TSS_SS_NONE:
163163
return sigNone;
164164

165-
case TCPA_SS_RSASSAPKCS1v15_SHA1:
165+
case TSS_SS_RSASSAPKCS1V15_SHA1:
166166
return sigRsaPkcs15Sha1;
167167

168-
case TCPA_SS_RSASSAPKCS1v15_DER:
168+
case TSS_SS_RSASSAPKCS1V15_DER:
169169
return sigRsaPkcs15Der;
170170
}
171171

@@ -231,7 +231,7 @@ TSS_RESULT displayKey(TSS_HKEY a_hKey)
231231
return result;
232232
logMsg(_(" Signature Scheme: 0x%08x (%s)\n"), uiAttr, displaySigSchemeMap(uiAttr));
233233

234-
if (uiAlg == TCPA_ALG_RSA) {
234+
if (uiAlg == TSS_ALG_RSA) {
235235
result =
236236
getAttribUint32(a_hKey, TSS_TSPATTRIB_RSAKEY_INFO,
237237
TSS_TSPATTRIB_KEYINFO_RSA_KEYSIZE,

0 commit comments

Comments
 (0)