aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSansar Choinyambuu <schoinya@hsr.ch>2011-09-21 10:36:50 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2011-11-28 15:32:36 +0100
commit8a55b83319c353f8af5f77fb5e7de2655b0bcfd5 (patch)
tree536acf66197691cff685fc6ca65617e55059aba2 /src
parent157c9c173d74e5285e429cd874161d575380d03d (diff)
downloadstrongswan-8a55b83319c353f8af5f77fb5e7de2655b0bcfd5.tar.bz2
strongswan-8a55b83319c353f8af5f77fb5e7de2655b0bcfd5.tar.xz
Implemented Diffie Hellman Nonce attributes
Diffstat (limited to 'src')
-rw-r--r--src/libimcv/plugins/imc_attestation/imc_attestation.c3
-rw-r--r--src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c36
2 files changed, 39 insertions, 0 deletions
diff --git a/src/libimcv/plugins/imc_attestation/imc_attestation.c b/src/libimcv/plugins/imc_attestation/imc_attestation.c
index ddc152b6c..46e4b7384 100644
--- a/src/libimcv/plugins/imc_attestation/imc_attestation.c
+++ b/src/libimcv/plugins/imc_attestation/imc_attestation.c
@@ -27,6 +27,9 @@
#include <pts/pts_error.h>
#include <tcg/tcg_pts_attr_proto_caps.h>
+#include <tcg/tcg_pts_attr_dh_nonce_params_req.h>
+#include <tcg/tcg_pts_attr_dh_nonce_params_resp.h>
+#include <tcg/tcg_pts_attr_dh_nonce_finish.h>
#include <tcg/tcg_pts_attr_meas_algo.h>
#include <tncif_pa_subtypes.h>
diff --git a/src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c b/src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c
index a32583822..89a0078fb 100644
--- a/src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c
+++ b/src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c
@@ -20,8 +20,12 @@
#include <bio/bio_reader.h>
#include <debug.h>
+<<<<<<< HEAD
typedef struct private_tcg_pts_attr_dh_nonce_finish_t
private_tcg_pts_attr_dh_nonce_finish_t;
+=======
+typedef struct private_tcg_pts_attr_dh_nonce_finish_t private_tcg_pts_attr_dh_nonce_finish_t;
+>>>>>>> Implemented Diffie Hellman Nonce attributes
/**
* PTS DH Nonce Finish
@@ -73,6 +77,14 @@ struct private_tcg_pts_attr_dh_nonce_finish_t {
bool noskip_flag;
/**
+<<<<<<< HEAD
+=======
+ * Length of nonce
+ */
+ u_int8_t nonce_len;
+
+ /**
+>>>>>>> Implemented Diffie Hellman Nonce attributes
* Selected Hashing Algorithm
*/
pts_meas_algorithms_t hash_algo;
@@ -80,7 +92,11 @@ struct private_tcg_pts_attr_dh_nonce_finish_t {
/**
* DH Initiator Public Value
*/
+<<<<<<< HEAD
chunk_t initiator_value;
+=======
+ chunk_t initiator_pub_val;
+>>>>>>> Implemented Diffie Hellman Nonce attributes
/**
* DH Initiator Nonce
@@ -125,9 +141,15 @@ METHOD(pa_tnc_attr_t, build, void,
writer = bio_writer_create(PTS_DH_NONCE_FINISH_SIZE);
writer->write_uint8 (writer, PTS_DH_NONCE_FINISH_RESERVED);
+<<<<<<< HEAD
writer->write_uint8 (writer, this->initiator_nonce.len);
writer->write_uint16(writer, this->hash_algo);
writer->write_data (writer, this->initiator_value);
+=======
+ writer->write_uint8 (writer, this->nonce_len);
+ writer->write_uint16(writer, this->hash_algo);
+ writer->write_data (writer, this->initiator_pub_val);
+>>>>>>> Implemented Diffie Hellman Nonce attributes
writer->write_data (writer, this->initiator_nonce);
this->value = chunk_clone(writer->get_buf(writer));
@@ -138,7 +160,11 @@ METHOD(pa_tnc_attr_t, process, status_t,
private_tcg_pts_attr_dh_nonce_finish_t *this, u_int32_t *offset)
{
bio_reader_t *reader;
+<<<<<<< HEAD
u_int8_t reserved, nonce_len;
+=======
+ u_int8_t reserved;
+>>>>>>> Implemented Diffie Hellman Nonce attributes
u_int16_t hash_algo;
if (this->value.len < PTS_DH_NONCE_FINISH_SIZE)
@@ -149,6 +175,7 @@ METHOD(pa_tnc_attr_t, process, status_t,
}
reader = bio_reader_create(this->value);
reader->read_uint8 (reader, &reserved);
+<<<<<<< HEAD
reader->read_uint8 (reader, &nonce_len);
reader->read_uint16(reader, &hash_algo);
reader->read_data(reader, reader->remaining(reader) - nonce_len,
@@ -157,6 +184,15 @@ METHOD(pa_tnc_attr_t, process, status_t,
this->hash_algo = hash_algo;
this->initiator_value = chunk_clone(this->initiator_value);
this->initiator_nonce = chunk_clone(this->initiator_nonce);
+=======
+ reader->read_uint8 (reader, &this->nonce_len);
+ reader->read_uint16(reader, &hash_algo);
+ this->hash_algo = hash_algo;
+ reader->read_data(reader, reader->remaining(reader) - this->nonce_len,
+ &this->initiator_pub_val);
+ reader->read_data(reader, this->nonce_len, &this->initiator_nonce);
+
+>>>>>>> Implemented Diffie Hellman Nonce attributes
reader->destroy(reader);
return SUCCESS;