Implemented Diffie Hellman Nonce attributes
authorSansar Choinyambuu <schoinya@hsr.ch>
Wed, 21 Sep 2011 08:36:50 +0000 (10:36 +0200)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Mon, 28 Nov 2011 14:32:36 +0000 (15:32 +0100)
src/libimcv/plugins/imc_attestation/imc_attestation.c
src/libpts/tcg/tcg_pts_attr_dh_nonce_finish.c

index ddc152b..46e4b73 100644 (file)
@@ -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>
 
index a325838..89a0078 100644 (file)
 #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;