diff options
author | Alberto Compagno <acompagn+fdio@cisco.com> | 2019-02-05 22:32:48 +0100 |
---|---|---|
committer | Alberto Compagno <acompagn+fdio@cisco.com> | 2019-02-06 08:34:26 +0100 |
commit | 216e35ba535efa00af39b7624f363ca832836e3f (patch) | |
tree | 90e4b4f49aeb91f5e2efd43dba5b77c1fd08615b /lib | |
parent | 7f4916ae09e89aadfc2029ffbe81231ba1ea8016 (diff) |
[HICN-34] Fixed bug on struct size and implemented initialization method
Change-Id: I975fce31c2da5ad42d6787b0c5f305c60390d68c
Signed-off-by: Alberto Compagno <acompagn+fdio@cisco.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/src/protocol/ah.c | 14 | ||||
-rw-r--r-- | lib/src/protocol/ah.h | 9 |
2 files changed, 14 insertions, 9 deletions
diff --git a/lib/src/protocol/ah.c b/lib/src/protocol/ah.c index f9ddf7775..3711a3f95 100644 --- a/lib/src/protocol/ah.c +++ b/lib/src/protocol/ah.c @@ -48,7 +48,15 @@ DECLARE_set_payload_length (ah, UNEXPECTED); int ah_init_packet_header (hicn_type_t type, hicn_protocol_t * h) { - return HICN_LIB_ERROR_NOT_IMPLEMENTED; + /* *INDENT-OFF* */ + h->ah = (_ah_header_t) + { + .nh = (u8)0, + .payloadlen = (u8)0, + .reserved = (u16)0, + }; + /* *INDENT-ON* */ + return CHILD_OPS (init_packet_header, type, h); } int @@ -155,7 +163,7 @@ int ah_set_signature_timestamp(hicn_type_t type, hicn_protocol_t * h, uint64_t signature_timestamp) { - h->ah.timestamp_as_u64 = signature_timestamp; + memcpy(h->ah.timestamp_as_u8, &signature_timestamp, 8); return HICN_LIB_ERROR_NONE; } @@ -163,7 +171,7 @@ int ah_get_signature_timestamp (hicn_type_t type, const hicn_protocol_t * h, uint64_t * signature_timestamp) { - *signature_timestamp = h->ah.timestamp_as_u64; + memcpy(signature_timestamp, h->ah.timestamp_as_u8, 8); return HICN_LIB_ERROR_NONE; } diff --git a/lib/src/protocol/ah.h b/lib/src/protocol/ah.h index 0b4171135..f8a05bf38 100644 --- a/lib/src/protocol/ah.h +++ b/lib/src/protocol/ah.h @@ -33,6 +33,7 @@ typedef struct union { u16 reserved; + struct { u8 validationAlgorithm; // As defined in parc_SignerAlgorithm.h @@ -46,12 +47,8 @@ typedef struct u32 spi; u32 seq; }; - union - { - u8 timestamp_as_u8[8]; - u64 timestamp_as_u64; - }; // Unix timestamp indicating when the signature has been calculated - + // Unix timestamp indicating when the signature has been calculated + u8 timestamp_as_u8[8]; }; // ICV would follow u8 keyId[32]; // Hash of the pub key |