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},
{"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)
{
@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 { \
@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; \
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)
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)
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)
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)
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) */
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)
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)
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)
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)
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;
#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 ()
}
{
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 ()
}
{
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 ()
}
{
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 ()
}
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;
/**