Skip to content

Commit 36d2246

Browse files
authored
Merge pull request #348 from Superhepper/parameters-tests
Adds Parameters tests
2 parents a5e1bbd + fe015a6 commit 36d2246

File tree

9 files changed

+1002
-5
lines changed

9 files changed

+1002
-5
lines changed

tss-esapi/src/structures/tagged/parameters.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use std::convert::{TryFrom, TryInto};
1414
///
1515
/// # Details
1616
/// This corresponds to TPMT_PUBLIC_PARMS
17-
#[derive(Debug, Clone, Copy)]
17+
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
1818
pub enum PublicParameters {
1919
Rsa(PublicRsaParameters),
2020
KeyedHash(PublicKeyedHashParameters),

tss-esapi/src/structures/tagged/symmetric.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use std::convert::{TryFrom, TryInto};
1313
///
1414
/// # Details
1515
/// This corresponds to TPMT_SYM_DEF.
16-
#[derive(Debug, Clone, Copy)]
16+
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
1717
pub enum SymmetricDefinition {
1818
// TODO: Investigate why TDES is not included...
1919
Aes {

tss-esapi/tests/integration_tests/common/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,12 @@ mod marshall;
3535
mod tpma_types_equality_checks;
3636
mod tpml_types_equality_checks;
3737
mod tpms_types_equality_checks;
38+
mod tpmt_types_equality_checks;
3839
pub use marshall::*;
3940
pub use tpma_types_equality_checks::*;
4041
pub use tpml_types_equality_checks::*;
4142
pub use tpms_types_equality_checks::*;
43+
pub use tpmt_types_equality_checks::*;
4244

4345
#[allow(dead_code)]
4446
pub const HASH: [u8; 64] = [

tss-esapi/tests/integration_tests/common/tpms_types_equality_checks.rs

Lines changed: 81 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
1+
// Copyright 2021 Contributors to the Parsec project.
2+
// SPDX-License-Identifier: Apache-2.0
13
use tss_esapi::{
24
constants::tss::{
35
TPM2_ST_ATTEST_CERTIFY, TPM2_ST_ATTEST_COMMAND_AUDIT, TPM2_ST_ATTEST_CREATION,
46
TPM2_ST_ATTEST_NV, TPM2_ST_ATTEST_QUOTE, TPM2_ST_ATTEST_SESSION_AUDIT, TPM2_ST_ATTEST_TIME,
57
},
68
tss2_esys::{
79
TPMS_ALG_PROPERTY, TPMS_ATTEST, TPMS_CERTIFY_INFO, TPMS_CLOCK_INFO,
8-
TPMS_COMMAND_AUDIT_INFO, TPMS_CREATION_INFO, TPMS_NV_CERTIFY_INFO, TPMS_PCR_SELECTION,
9-
TPMS_QUOTE_INFO, TPMS_SESSION_AUDIT_INFO, TPMS_TAGGED_PCR_SELECT, TPMS_TAGGED_PROPERTY,
10-
TPMS_TIME_ATTEST_INFO, TPMS_TIME_INFO,
10+
TPMS_COMMAND_AUDIT_INFO, TPMS_CREATION_INFO, TPMS_ECC_PARMS, TPMS_KEYEDHASH_PARMS,
11+
TPMS_NV_CERTIFY_INFO, TPMS_PCR_SELECTION, TPMS_QUOTE_INFO, TPMS_RSA_PARMS,
12+
TPMS_SCHEME_ECDAA, TPMS_SCHEME_HASH, TPMS_SCHEME_HMAC, TPMS_SCHEME_XOR,
13+
TPMS_SESSION_AUDIT_INFO, TPMS_SYMCIPHER_PARMS, TPMS_TAGGED_PCR_SELECT,
14+
TPMS_TAGGED_PROPERTY, TPMS_TIME_ATTEST_INFO, TPMS_TIME_INFO,
1115
},
1216
};
1317

@@ -243,3 +247,77 @@ pub fn ensure_tpms_tagged_pcr_select_equality(
243247
"'pcrSelect' value TPMS_TAGGED_PCR_SELECT, mismatch between actual and expected"
244248
);
245249
}
250+
251+
pub fn ensure_tpms_rsa_parms_equality(expected: &TPMS_RSA_PARMS, actual: &TPMS_RSA_PARMS) {
252+
crate::common::ensure_tpmt_sym_def_object_equality(&expected.symmetric, &actual.symmetric);
253+
crate::common::ensure_tpmt_rsa_scheme_equality(&expected.scheme, &actual.scheme);
254+
assert_eq!(
255+
expected.keyBits, actual.keyBits,
256+
"'keyBits' value TPMS_RSA_PARMS, mismatch between actual and expected"
257+
);
258+
259+
assert_eq!(
260+
expected.exponent, actual.exponent,
261+
"'exponent' value TPMS_RSA_PARMS, mismatch between actual and expected"
262+
);
263+
}
264+
265+
pub fn ensure_tpms_scheme_hash_equality(expected: &TPMS_SCHEME_HASH, actual: &TPMS_SCHEME_HASH) {
266+
assert_eq!(
267+
expected.hashAlg, actual.hashAlg,
268+
"'hashAlg' value TPMS_SCHEME_HASH, mismatch between actual and expected"
269+
);
270+
}
271+
272+
pub fn ensure_tpms_ecc_parms_equality(expected: &TPMS_ECC_PARMS, actual: &TPMS_ECC_PARMS) {
273+
crate::common::ensure_tpmt_sym_def_object_equality(&expected.symmetric, &actual.symmetric);
274+
crate::common::ensure_tpmt_ecc_scheme_equality(&expected.scheme, &actual.scheme);
275+
assert_eq!(
276+
expected.curveID, actual.curveID,
277+
"'curveID' value TPMS_ECC_PARMS, mismatch between actual and expected"
278+
);
279+
crate::common::ensure_tpmt_kdf_scheme_equality(&expected.kdf, &actual.kdf);
280+
}
281+
282+
pub fn ensure_tpms_scheme_ecdaa_equality(expected: &TPMS_SCHEME_ECDAA, actual: &TPMS_SCHEME_ECDAA) {
283+
assert_eq!(
284+
expected.hashAlg, actual.hashAlg,
285+
"'hashAlg' value TPMS_SCHEME_ECDAA, mismatch between actual and expected"
286+
);
287+
assert_eq!(
288+
expected.count, actual.count,
289+
"'count' value TPMS_SCHEME_ECDAA, mismatch between actual and expected"
290+
);
291+
}
292+
293+
pub fn ensure_tpms_keyedhash_parms_equality(
294+
expected: &TPMS_KEYEDHASH_PARMS,
295+
actual: &TPMS_KEYEDHASH_PARMS,
296+
) {
297+
crate::common::ensure_tpmt_keyedhash_scheme_equality(&expected.scheme, &actual.scheme);
298+
}
299+
300+
pub fn ensure_tpms_scheme_xor_equality(expected: &TPMS_SCHEME_XOR, actual: &TPMS_SCHEME_XOR) {
301+
assert_eq!(
302+
expected.hashAlg, actual.hashAlg,
303+
"'hashAlg' value TPMS_SCHEME_XOR, mismatch between actual and expected"
304+
);
305+
assert_eq!(
306+
expected.kdf, actual.kdf,
307+
"'count' value TPMS_SCHEME_XOR, mismatch between actual and expected"
308+
);
309+
}
310+
311+
pub fn ensure_tpms_scheme_hmac_equality(expected: &TPMS_SCHEME_HMAC, actual: &TPMS_SCHEME_HMAC) {
312+
assert_eq!(
313+
expected.hashAlg, actual.hashAlg,
314+
"'hashAlg' value TPMS_SCHEME_HMAC, mismatch between actual and expected"
315+
);
316+
}
317+
318+
pub fn ensure_tpms_symcipher_parms_equality(
319+
expected: &TPMS_SYMCIPHER_PARMS,
320+
actual: &TPMS_SYMCIPHER_PARMS,
321+
) {
322+
crate::common::ensure_tpmt_sym_def_object_equality(&expected.sym, &actual.sym)
323+
}

0 commit comments

Comments
 (0)