static upper size limit for PA-TNC messages

This commit is contained in:
Andreas Steffen
2012-07-12 21:26:18 +02:00
parent 8d98f7fef6
commit ea67a75b98
27 changed files with 251 additions and 68 deletions
+4
View File
@@ -117,6 +117,10 @@ METHOD(pa_tnc_attr_t, build, void,
cred_encoding_type_t encoding_type = CERT_ASN1_DER;
chunk_t aik_blob;
if (this->value.ptr)
{
return;
}
if (this->aik->get_type(this->aik) == CERT_TRUSTED_PUBKEY)
{
flags |= PTS_AIK_FLAGS_NAKED_KEY;
@@ -128,6 +128,10 @@ METHOD(pa_tnc_attr_t, build, void,
{
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_DH_NONCE_FINISH_SIZE);
writer->write_uint8 (writer, PTS_DH_NONCE_FINISH_RESERVED);
writer->write_uint8 (writer, this->initiator_nonce.len);
@@ -119,6 +119,10 @@ METHOD(pa_tnc_attr_t, build, void,
{
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_DH_NONCE_PARAMS_REQ_SIZE);
writer->write_uint8 (writer, PTS_DH_NONCE_PARAMS_REQ_RESERVED);
writer->write_uint8 (writer, this->min_nonce_len);
@@ -135,6 +135,10 @@ METHOD(pa_tnc_attr_t, build, void,
{
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_DH_NONCE_PARAMS_RESP_SIZE);
writer->write_uint24(writer, PTS_DH_NONCE_PARAMS_RESP_RESERVED);
writer->write_uint8 (writer, this->responder_nonce.len);
+4
View File
@@ -135,6 +135,10 @@ METHOD(pa_tnc_attr_t, build, void,
chunk_t measurement;
bool first = TRUE;
if (this->value.ptr)
{
return;
}
number_of_files = this->measurements->get_file_count(this->measurements);
request_id = this->measurements->get_request_id(this->measurements);
@@ -110,6 +110,10 @@ METHOD(pa_tnc_attr_t, build, void,
{
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_GEN_ATTEST_EVID_SIZE);
writer->write_uint32 (writer, PTS_GEN_ATTEST_EVID_RESERVED);
+4
View File
@@ -107,6 +107,10 @@ METHOD(pa_tnc_attr_t, build, void,
{
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_GET_AIK_SIZE);
writer->write_uint32 (writer, PTS_GET_AIK_RESERVED);
@@ -110,6 +110,10 @@ METHOD(pa_tnc_attr_t, build, void,
{
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_GET_TPM_VER_INFO_SIZE);
writer->write_uint32 (writer, PTS_GET_TPM_VER_INFO_RESERVED);
+4
View File
@@ -113,6 +113,10 @@ METHOD(pa_tnc_attr_t, build, void,
{
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_MEAS_ALGO_SIZE);
writer->write_uint16(writer, PTS_MEAS_ALGO_RESERVED);
writer->write_uint16(writer, this->algorithms);
+4
View File
@@ -113,6 +113,10 @@ METHOD(pa_tnc_attr_t, build, void,
{
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_PROTO_CAPS_SIZE);
writer->write_uint16(writer, PTS_PROTO_CAPS_RESERVED);
writer->write_uint16(writer, this->flags);
@@ -136,6 +136,10 @@ METHOD(pa_tnc_attr_t, build, void,
chunk_t pathname;
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
if (this->directory_flag)
{
flags |= DIRECTORY_CONTENTS_FLAG;
@@ -129,6 +129,10 @@ METHOD(pa_tnc_attr_t, build, void,
chunk_t pathname;
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
if (this->directory_flag)
{
flags |= DIRECTORY_CONTENTS_FLAG;
@@ -177,6 +177,10 @@ METHOD(pa_tnc_attr_t, build, void,
enumerator_t *enumerator;
entry_t *entry;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_REQ_FUNC_COMP_EVID_SIZE);
enumerator = this->list->create_enumerator(this->list);
@@ -195,6 +195,11 @@ METHOD(pa_tnc_attr_t, build, void,
time_t measurement_time;
chunk_t measurement, utc_time, pcr_before, pcr_after, policy_uri;
if (this->value.ptr)
{
return;
}
/* Extract parameters from comp_evidence_t object */
name = this->evidence->get_comp_func_name(this->evidence,
&depth);
@@ -169,6 +169,10 @@ METHOD(pa_tnc_attr_t, build, void,
bio_writer_t *writer;
u_int8_t flags;
if (this->value.ptr)
{
return;
}
flags = this->flags & PTS_SIMPLE_EVID_FINAL_FLAG_MASK;
if (this->has_evid_sig)
@@ -114,6 +114,10 @@ METHOD(pa_tnc_attr_t, build, void,
{
bio_writer_t *writer;
if (this->value.ptr)
{
return;
}
writer = bio_writer_create(PTS_TPM_VER_INFO_SIZE);
writer->write_data(writer, this->tpm_version_info);
@@ -148,6 +148,10 @@ METHOD(pa_tnc_attr_t, build, void,
pts_file_metadata_t *entry;
u_int64_t number_of_files;
if (this->value.ptr)
{
return;
}
number_of_files = this->metadata->get_file_count(this->metadata);
writer = bio_writer_create(PTS_FILE_META_SIZE);