wip
authorMazet Laurent <laurent.mazet@thalesgroup.com>
Tue, 8 Apr 2025 01:20:58 +0000 (03:20 +0200)
committerMazet Laurent <laurent.mazet@thalesgroup.com>
Tue, 8 Apr 2025 01:20:58 +0000 (03:20 +0200)
pdu_channel.h
pdu_encrypted_data.h
pdu_key.h
pdu_prng_param.h
pdu_status.h

index 6d30cb047df3aa76e28c8ad1bf209f61203f9e25..4a7eb793261651a6631b4935894b26d1a0a25be1 100644 (file)
@@ -1,7 +1,7 @@
 /*
-  File name        : message.h
+  File name        : channel.h
   Projet           : MERLIN
-  Date of creation : 2025/04/03
+  Date of creation : 2025/04/08
   Version          : 1.0
   Copyright        : Thales SIX
   Author           : Laurent Mazet <laurent.mazet@thalesgroup.com>
@@ -12,8 +12,8 @@
   - initial version
 */
 
-#ifndef __MESSAGE_H__
-#define __MESSAGE_H__
+#ifndef __CHANNEL_H__
+#define __CHANNEL_H__
 
 #include <stdint.h>
 #include <sys/cdefs.h>
@@ -30,8 +30,55 @@ typedef struct {
     uint8_t key_id; /**< key index */
 } CHANNEL_t;
 
+/**
+   @ingroup MESSAGES
+
+   Parse a string containing some channel type fields
+
+   @param line string to analyse
+   @param out output structure
+   @return 0 on success 
+*/
+int parse_channel (char *line, CHANNEL_t *out);
+
+/**
+   @ingroup MESSAGES
+
+   Format channel type fields into a string
+
+   @param in input structure
+   @param buffer output string
+   @param maxlen buffer limit
+   @return 0 on success 
+*/
+int format_channel (CHANNEL_t *in, char *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Serial channel type fields into a network stream
+
+   @param in input structure
+   @param buffer network stream
+   @param maxlen buffer limit
+   @return buffer length
+*/
+int serial_channel (CHANNEL_t *in, uint8_t *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Deserial channel type fields from a network stream
+
+   @param buffer network stream
+   @param maxlen buffer limit
+   @param out output structure
+   @return 0 on success 
+*/
+int deserial_channel (uint8_t *buffer, int maxlen, CHANNEL_t *out);
+
 __END_DECLS
 
-#endif /* __MESSAGE_H__ */
+#endif /* __CHANNEL_H__ */
 
 /* vim: set ts=4 sw=4 si et: */
index 41c91ecf857bb3978b28eedc00887b70e797c48f..f4780a2b27fe5190a79a0e7714d929d26b189759 100644 (file)
@@ -34,6 +34,53 @@ typedef struct {
     uint8_t iv[12]; /**< initial vector */
 } ENCRYPTED_DATA_t;
 
+/**
+   @ingroup MESSAGES
+
+   Parse a string containing some clear data type fields
+
+   @param line string to analyse
+   @param out output structure
+   @return 0 on success 
+*/
+int parse_clear_data (char *line, CLEAR_DATA_t *out);
+
+/**
+   @ingroup MESSAGES
+
+   Format clear data type fields into a string
+
+   @param in input structure
+   @param buffer output string
+   @param maxlen buffer limit
+   @return 0 on success 
+*/
+int format_clear_data (CLEAR_DATA_t *in, char *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Serial clear data type fields into a network stream
+
+   @param in input structure
+   @param buffer network stream
+   @param maxlen buffer limit
+   @return buffer length
+*/
+int serial_clear_data (CLEAR_DATA_t *in, uint8_t *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Deserial clear data type fields from a network stream
+
+   @param buffer network stream
+   @param maxlen buffer limit
+   @param out output structure
+   @return 0 on success 
+*/
+int deserial_clear_data (uint8_t *buffer, int maxlen, CLEAR_DATA_t *out);
+
 __END_DECLS
 
 #endif /* __MESSAGE_H__ */
index ad58f9c958fb603f85dcbcbe7d956507481b7671..560fc9cb90fc97a549000963dff0701a026d959d 100644 (file)
--- a/pdu_key.h
+++ b/pdu_key.h
@@ -30,6 +30,53 @@ typedef struct {
     uint8_t key[1495]; /**< raw key */
 } KEY_t;
 
+/**
+   @ingroup MESSAGES
+
+   Parse a string containing some clear data type fields
+
+   @param line string to analyse
+   @param out output structure
+   @return 0 on success 
+*/
+int parse_clear_data (char *line, CLEAR_DATA_t *out);
+
+/**
+   @ingroup MESSAGES
+
+   Format clear data type fields into a string
+
+   @param in input structure
+   @param buffer output string
+   @param maxlen buffer limit
+   @return 0 on success 
+*/
+int format_clear_data (CLEAR_DATA_t *in, char *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Serial clear data type fields into a network stream
+
+   @param in input structure
+   @param buffer network stream
+   @param maxlen buffer limit
+   @return buffer length
+*/
+int serial_clear_data (CLEAR_DATA_t *in, uint8_t *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Deserial clear data type fields from a network stream
+
+   @param buffer network stream
+   @param maxlen buffer limit
+   @param out output structure
+   @return 0 on success 
+*/
+int deserial_clear_data (uint8_t *buffer, int maxlen, CLEAR_DATA_t *out);
+
 __END_DECLS
 
 #endif /* __MESSAGE_H__ */
index bbe9b16b104b623cf68a11c92557860cf5acfb1d..79335cdbdc7a220e78ac2fe8d8941cf162b0ba33 100644 (file)
@@ -31,6 +31,53 @@ typedef struct {
     uint8_t seed_len; /**< data length (must be aligned to 16 bytes) */
 } PRNG_PARAM_t;
 
+/**
+   @ingroup MESSAGES
+
+   Parse a string containing some clear data type fields
+
+   @param line string to analyse
+   @param out output structure
+   @return 0 on success 
+*/
+int parse_clear_data (char *line, CLEAR_DATA_t *out);
+
+/**
+   @ingroup MESSAGES
+
+   Format clear data type fields into a string
+
+   @param in input structure
+   @param buffer output string
+   @param maxlen buffer limit
+   @return 0 on success 
+*/
+int format_clear_data (CLEAR_DATA_t *in, char *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Serial clear data type fields into a network stream
+
+   @param in input structure
+   @param buffer network stream
+   @param maxlen buffer limit
+   @return buffer length
+*/
+int serial_clear_data (CLEAR_DATA_t *in, uint8_t *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Deserial clear data type fields from a network stream
+
+   @param buffer network stream
+   @param maxlen buffer limit
+   @param out output structure
+   @return 0 on success 
+*/
+int deserial_clear_data (uint8_t *buffer, int maxlen, CLEAR_DATA_t *out);
+
 __END_DECLS
 
 #endif /* __MESSAGE_H__ */
index aef2288bc2315ef030251035a4b4aa35f848fdfe..5b3d32683b046b16db287e7350758c181bb1e111 100644 (file)
@@ -29,6 +29,53 @@ typedef struct {
     uint8_t status; /**< status */
 } STATUS_t;
 
+/**
+   @ingroup MESSAGES
+
+   Parse a string containing some clear data type fields
+
+   @param line string to analyse
+   @param out output structure
+   @return 0 on success 
+*/
+int parse_clear_data (char *line, CLEAR_DATA_t *out);
+
+/**
+   @ingroup MESSAGES
+
+   Format clear data type fields into a string
+
+   @param in input structure
+   @param buffer output string
+   @param maxlen buffer limit
+   @return 0 on success 
+*/
+int format_clear_data (CLEAR_DATA_t *in, char *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Serial clear data type fields into a network stream
+
+   @param in input structure
+   @param buffer network stream
+   @param maxlen buffer limit
+   @return buffer length
+*/
+int serial_clear_data (CLEAR_DATA_t *in, uint8_t *buffer, int maxlen);
+
+/**
+   @ingroup MESSAGES
+
+   Deserial clear data type fields from a network stream
+
+   @param buffer network stream
+   @param maxlen buffer limit
+   @param out output structure
+   @return 0 on success 
+*/
+int deserial_clear_data (uint8_t *buffer, int maxlen, CLEAR_DATA_t *out);
+
 __END_DECLS
 
 #endif /* __MESSAGE_H__ */