libtpmtss: Convert RSA exponent to big-endian when provided by a TPM 2.0
authorTobias Brunner <tobias@strongswan.org>
Tue, 10 Dec 2019 09:12:48 +0000 (10:12 +0100)
committerTobias Brunner <tobias@strongswan.org>
Tue, 10 Dec 2019 14:19:32 +0000 (15:19 +0100)
commit8ee1242f14383d56d9d982edcaafea3392232e97
treed2ab89f7235bf5b22069f465243cac134d041bbc
parenta84aeb01aa6cc0c23788cccda31a796d265d9fdf
libtpmtss: Convert RSA exponent to big-endian when provided by a TPM 2.0

While the TPM expects and returns the data in big-endian, the SAPI
implementation converts it to native-endianness.  As stated in the
SAPI specification (section 3.2):

  8. All SAPI data SHALL be in native-endian format.  This means that
     the SAPI implementation will do any endian conversion required for
     both inputs and outputs.

So to use the exponent in a chunk we have to convert it to big-endian again.

Fixes: 7533cedb9a8a ("libtpmtss: Read RSA public key exponent instead of assuming its value")
src/libtpmtss/tpm_tss_tss2_v1.c
src/libtpmtss/tpm_tss_tss2_v2.c