aboutsummaryrefslogtreecommitdiff
path: root/lib/libtpm/tcgbios.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libtpm/tcgbios.c')
-rw-r--r--lib/libtpm/tcgbios.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/lib/libtpm/tcgbios.c b/lib/libtpm/tcgbios.c
index dcf0cc6..24ac83c 100644
--- a/lib/libtpm/tcgbios.c
+++ b/lib/libtpm/tcgbios.c
@@ -1108,24 +1108,25 @@ uint32_t tpm_measure_gpt(void)
uint32_t tpm_measure_scrtm(void)
{
- uint32_t rc;
- char *version_start = strstr((char *)&print_version, "FW Version");
- char *version_end;
- uint32_t version_length;
+ uint32_t rc, i;
char *slof_text_start = (char *)&_slof_text;
uint32_t slof_text_length = (long)&_slof_text_end - (long)&_slof_text;
const char *scrtm = "S-CRTM Contents";
-
- version_end = strchr(version_start, '\r');
- version_length = version_end - version_start;
+#define _TT(a, x) a##x
+#define _T(a, x) _TT(a, x)
+ unsigned short ucs2_version[] = _T(L, RELEASE);
dprintf("Measure S-CRTM Version: addr = %p, length = %d\n",
- version_start, version_length);
+ ucs2_version, ucs2_length);
+
+ for (i = 0; i < ARRAY_SIZE(ucs2_version); ++i)
+ ucs2_version[i] = cpu_to_le16(ucs2_version[i]);
rc = tpm_add_measurement_to_log(0, EV_S_CRTM_VERSION,
- version_start, version_length,
- (uint8_t *)version_start,
- version_length);
+ (char *)ucs2_version,
+ sizeof(ucs2_version),
+ (uint8_t *)ucs2_version,
+ sizeof(ucs2_version));
if (rc)
return rc;