From: Mazet Laurent Date: Tue, 8 Apr 2025 03:15:43 +0000 (+0200) Subject: fix errors in pdu definitions X-Git-Tag: v1.0~54 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=d3f8d722ddf005dae4219f23a5c9bbeeca7b5da3;p=morep.git fix errors in pdu definitions --- diff --git a/morep_simulator.c b/morep_simulator.c index a19c13b..769d7b8 100644 --- a/morep_simulator.c +++ b/morep_simulator.c @@ -81,7 +81,7 @@ typedef struct { pdu_t pdu; } message_t; -message_t message_list[] = { +message_t message_list[] = { /* Cross cryptographic service */ {"ENCRYPT_CROSS_ASYNC", cross_crypto_e, 0x00, clear_data_e}, @@ -121,8 +121,11 @@ message_t message_list[] = { {"ZEROIZE_REQ", control_e, 0x04, nopdu_e}, {"ZEROIZE_RESP", control_e, 0x05, status_e}, {"LOCK_REQ", control_e, 0xFE, nopdu_e}, - {"LOCK_RESP", control_e, 0xFF, status_e} -} + {"LOCK_RESP", control_e, 0xFF, status_e}, + + /* End of list */ + {"", noserv_e, 0x00, nopdu_e} +}; void sig_handler (int sig) { diff --git a/parse.h b/parse.h index d2e3046..1145fb1 100644 --- a/parse.h +++ b/parse.h @@ -333,7 +333,7 @@ __BEGIN_DECLS @param field data from structure */ #define SERIAL_TAB(name, field) \ - if (sizeof (field) < _maxlen - len) { \ + if ((int)sizeof (field) < _maxlen - len) { \ memcpy (_buffer + len, field, sizeof (field)); \ len += sizeof (field); \ } else { \ @@ -440,10 +440,9 @@ __BEGIN_DECLS @param len table length */ #define DESERIAL_TAB(name, field) \ - if (sizeof (field) < end - ptr) { \ + if ((int)sizeof (field) < end - ptr) { \ memcpy (field, ptr, sizeof (field)); \ - field##_len = sizeof (field); \ - ptr += field##_len; \ + ptr += sizeof (field); \ } else { \ VERBOSE (morep, WARNING, PRINTF ("no data for field '%s'\n", name)); \ ptr = end + 1; \ diff --git a/pdu_clear_data.c b/pdu_clear_data.c index 4a64fab..edc8192 100644 --- a/pdu_clear_data.c +++ b/pdu_clear_data.c @@ -21,7 +21,7 @@ int parse_clear_data (char *line, CLEAR_DATA_t *out) { BEGIN_PARSE (line) - PARSE_INT ("CHANNEL", out->channel_id) + PARSE_INT ("CHANNELID", out->channel_id) PARSE_INT ("BYPASSLEN", out->bypass_len) PARSE_ARRAY ("BYPASS", out->bypass) PARSE_ARRAY ("DATA", out->data) @@ -31,7 +31,7 @@ int parse_clear_data (char *line, CLEAR_DATA_t *out) int format_clear_data (CLEAR_DATA_t *in, char *buffer, int maxlen) { BEGIN_FORMAT (buffer, maxlen) - FORMAT_INT ("CHANNEL", in->channel_id) + FORMAT_INT ("CHANNELID", in->channel_id) FORMAT_INT ("BYPASSLEN", in->bypass_len) FORMAT_ARRAY ("BYPASS", in->bypass) FORMAT_ARRAY ("DATA", in->data) @@ -41,7 +41,7 @@ int format_clear_data (CLEAR_DATA_t *in, char *buffer, int maxlen) int serial_clear_data (CLEAR_DATA_t *in, uint8_t *buffer, int maxlen) { BEGIN_SERIAL (buffer, maxlen) - SERIAL_INT ("CHANNEL", in->channel_id) + SERIAL_INT ("CHANNELID", in->channel_id) SERIAL_INT ("BYPASSLEN", in->bypass_len) SERIAL_ARRAY ("BYPASS", in->bypass) SERIAL_ARRAY ("DATA", in->data) @@ -51,7 +51,7 @@ int serial_clear_data (CLEAR_DATA_t *in, uint8_t *buffer, int maxlen) int deserial_clear_data (uint8_t *buffer, int len, CLEAR_DATA_t *out) { BEGIN_DESERIAL (buffer, len) - DESERIAL_INT ("CHANNEL", out->channel) + DESERIAL_INT ("CHANNELID", out->channel_id) DESERIAL_INT ("BYPASSLEN", out->bypass_len) DESERIAL_ARRAY ("BYPASS", out->bypass) DESERIAL_ARRAY ("DATA", out->data) diff --git a/pdu_clear_data.h b/pdu_clear_data.h index 1802156..8aac517 100644 --- a/pdu_clear_data.h +++ b/pdu_clear_data.h @@ -26,7 +26,7 @@ __BEGIN_DECLS Clear data type */ typedef struct { - uint8_t channelid; /**< channel index */ + uint8_t channel_id; /**< channel index */ int bypass_len; /**< attached bypass message length */ uint8_t bypass[255]; /**< attached bypass message */ int data_len; /**< data length (must be aligned to 16 bytes) */ diff --git a/pdu_encrypted_data.c b/pdu_encrypted_data.c index 7382220..194dcad 100644 --- a/pdu_encrypted_data.c +++ b/pdu_encrypted_data.c @@ -21,7 +21,7 @@ int parse_encrypted_data (char *line, ENCRYPTED_DATA_t *out) { BEGIN_PARSE (line) - PARSE_INT ("CHANNEL", out->channel_id) + PARSE_INT ("CHANNELID", out->channel_id) PARSE_TAB ("IV", out->iv) PARSE_INT ("BYPASSLEN", out->bypass_len) PARSE_ARRAY ("BYPASS", out->bypass) @@ -32,7 +32,7 @@ int parse_encrypted_data (char *line, ENCRYPTED_DATA_t *out) int format_encrypted_data (ENCRYPTED_DATA_t *in, char *buffer, int maxlen) { BEGIN_FORMAT (buffer, maxlen) - FORMAT_INT ("CHANNEL", in->channel_id) + FORMAT_INT ("CHANNELID", in->channel_id) FORMAT_TAB ("IV", in->iv) FORMAT_INT ("BYPASSLEN", in->bypass_len) FORMAT_ARRAY ("BYPASS", in->bypass) @@ -43,7 +43,7 @@ int format_encrypted_data (ENCRYPTED_DATA_t *in, char *buffer, int maxlen) int serial_encrypted_data (ENCRYPTED_DATA_t *in, uint8_t *buffer, int maxlen) { BEGIN_SERIAL (buffer, maxlen) - SERIAL_INT ("CHANNEL", in->channel_id) + SERIAL_INT ("CHANNELID", in->channel_id) SERIAL_TAB ("IV", in->iv) SERIAL_INT ("BYPASSLEN", in->bypass_len) SERIAL_ARRAY ("BYPASS", in->bypass) @@ -54,7 +54,7 @@ int serial_encrypted_data (ENCRYPTED_DATA_t *in, uint8_t *buffer, int maxlen) int deserial_encrypted_data (uint8_t *buffer, int len, ENCRYPTED_DATA_t *out) { BEGIN_DESERIAL (buffer, len) - DESERIAL_INT ("CHANNEL", out->channel) + DESERIAL_INT ("CHANNELID", out->channel_id) DESERIAL_TAB ("IV", out->iv) DESERIAL_INT ("BYPASSLEN", out->bypass_len) DESERIAL_ARRAY ("BYPASS", out->bypass) diff --git a/pdu_encrypted_data.h b/pdu_encrypted_data.h index 6cc93d0..40f8040 100644 --- a/pdu_encrypted_data.h +++ b/pdu_encrypted_data.h @@ -29,7 +29,7 @@ typedef struct { uint8_t channel_id; /**< channel index */ uint8_t iv[12]; /**< initial vector */ uint8_t bypass_len; /**< attached bypass message length */ - uint8_t bypass_msg[255]; /**< attached bypass message */ + uint8_t bypass[255]; /**< attached bypass message */ uint8_t data_len; /**< data length (must be aligned to 16 bytes) */ uint8_t data[1472]; /**< data message */ } ENCRYPTED_DATA_t; diff --git a/pdu_prng_param.c b/pdu_prng_param.c index 9425bbd..3e48ae2 100644 --- a/pdu_prng_param.c +++ b/pdu_prng_param.c @@ -16,13 +16,13 @@ #include "parse.h" -#include "pdu_key.h" +#include "pdu_prng_param.h" int parse_prng_param (char *line, PRNG_PARAM_t *out) { BEGIN_PARSE (line) PARSE_INT ("PRNGID", out->prng_id) - PARSE_INT ("SEEDLEN", out->seed_len) + PARSE_INT ("SEQLEN", out->seq_len) PARSE_ARRAY ("SEED", out->seed) END_PARSE () } @@ -31,7 +31,7 @@ int format_prng_param (PRNG_PARAM_t *in, char *buffer, int maxlen) { BEGIN_FORMAT (buffer, maxlen) FORMAT_INT ("PRNGID", in->prng_id) - FORMAT_INT ("SEEDLEN", in->seed_len) + FORMAT_INT ("SEQLEN", in->seq_len) FORMAT_ARRAY ("SEED", in->seed) END_FORMAT () } @@ -40,7 +40,7 @@ int serial_prng_param (PRNG_PARAM_t *in, uint8_t *buffer, int maxlen) { BEGIN_SERIAL (buffer, maxlen) SERIAL_INT ("PRNGID", in->prng_id) - SERIAL_INT ("SEEDLEN", in->seed_len) + SERIAL_INT ("SEQLEN", in->seq_len) SERIAL_ARRAY ("SEED", in->seed) END_SERIAL () } @@ -49,7 +49,7 @@ int deserial_prng_param (uint8_t *buffer, int len, PRNG_PARAM_t *out) { BEGIN_DESERIAL (buffer, len) DESERIAL_INT ("PRNGID", out->prng_id) - DESERIAL_INT ("SEEDLEN", out->seed_len) + DESERIAL_INT ("SEQLEN", out->seq_len) DESERIAL_ARRAY ("SEED", out->seed) END_DESERIAL () } diff --git a/pdu_prng_param.h b/pdu_prng_param.h index 319d901..1799def 100644 --- a/pdu_prng_param.h +++ b/pdu_prng_param.h @@ -28,7 +28,8 @@ __BEGIN_DECLS typedef struct { uint8_t prng_id; /**< algorithm index */ uint16_t seq_len; /**< requested PRNG sequence length */ - uint8_t seed_len; /**< data length (must be aligned to 16 bytes) */ + uint8_t seed_len; /**< seed length */ + uint8_t seed[1495]; /**< seed */ } PRNG_PARAM_t; /**