From b7f8d115a73381b4eba319ef8989f32c0a5d08af Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Fri, 21 Aug 2020 09:52:36 +0200 Subject: [PATCH] Use u32 for 32-bit architectures Signed-off-by: Patrick Uiterwijk --- Cargo.toml | 2 +- src/tpm_objects.rs | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 82d01d0..df3e5f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "clevis-pin-tpm2" -version = "0.1.1" +version = "0.1.2" authors = ["Patrick Uiterwijk "] edition = "2018" diff --git a/src/tpm_objects.rs b/src/tpm_objects.rs index 7a33d86..fef4df1 100644 --- a/src/tpm_objects.rs +++ b/src/tpm_objects.rs @@ -7,6 +7,11 @@ use tss_esapi::utils::{ ObjectAttributes, PublicParmsUnion, Tpm2BPublicBuilder, TpmsEccParmsBuilder, }; +#[cfg(target_pointer_width = "64")] +type Sizedu = u64; +#[cfg(target_pointer_width = "32")] +type Sizedu = u32; + use crate::PinError; pub(super) fn get_key_public( @@ -59,14 +64,14 @@ pub(super) fn create_tpm2b_public_sealed_object( pub(super) fn get_tpm2b_public( val: tss_esapi::tss2_esys::TPM2B_PUBLIC, ) -> Result, PinError> { - let mut offset = 0 as u64; + let mut offset = 0 as Sizedu; let mut resp = Vec::with_capacity((val.size + 4) as usize); unsafe { let res = tss_esapi::tss2_esys::Tss2_MU_TPM2B_PUBLIC_Marshal( &val, resp.as_mut_ptr(), - resp.capacity() as u64, + resp.capacity() as Sizedu, &mut offset, ); if res != 0 { @@ -81,14 +86,14 @@ pub(super) fn get_tpm2b_public( pub(super) fn get_tpm2b_private( val: tss_esapi::tss2_esys::TPM2B_PRIVATE, ) -> Result, PinError> { - let mut offset = 0 as u64; + let mut offset = 0 as Sizedu; let mut resp = Vec::with_capacity((val.size + 4) as usize); unsafe { let res = tss_esapi::tss2_esys::Tss2_MU_TPM2B_PRIVATE_Marshal( &val, resp.as_mut_ptr(), - resp.capacity() as u64, + resp.capacity() as Sizedu, &mut offset, ); if res != 0 { @@ -104,12 +109,12 @@ pub(super) fn build_tpm2b_private( val: &[u8], ) -> Result { let mut resp = tss_esapi::tss2_esys::TPM2B_PRIVATE::default(); - let mut offset = 0 as u64; + let mut offset = 0 as Sizedu; unsafe { let res = tss_esapi::tss2_esys::Tss2_MU_TPM2B_PRIVATE_Unmarshal( val[..].as_ptr(), - val.len() as u64, + val.len() as Sizedu, &mut offset, &mut resp, ); @@ -125,12 +130,12 @@ pub(super) fn build_tpm2b_public( val: &[u8], ) -> Result { let mut resp = tss_esapi::tss2_esys::TPM2B_PUBLIC::default(); - let mut offset = 0 as u64; + let mut offset = 0 as Sizedu; unsafe { let res = tss_esapi::tss2_esys::Tss2_MU_TPM2B_PUBLIC_Unmarshal( val[..].as_ptr(), - val.len() as u64, + val.len() as Sizedu, &mut offset, &mut resp, );