How to set an entry in module_config[]

Alan DeKok aland at deployingradius.com
Thu Nov 30 19:52:57 CET 2017


On Nov 30, 2017, at 1:26 PM, Jonathan Anthony <jonathan.anthony at siliconsafe.com> wrote:
> 
> I have the following structure:
> typedef struct rlm_snap_t {
> 	uint32_t	keyid;
> 	uint32_t	port;
> 	uint8_t		encrkey[16];

  add:

  char *encrkey_string;

> 	uint8_t		signingkey[16];
> 	char const	*ipaddr;
> 	uint8_t		cipher;
> } rlm_snap_t;
> 
> What PW types do I need for encrkey and signingkey. The arrays can contain 0s so I can not use strings
> static const CONF_PARSER module_config[] = {
> 	{ "ipaddr", FR_CONF_OFFSET(PW_TYPE_STRING | PW_TYPE_REQUIRED, rlm_snap_t, ipaddr ), NULL },
> 	{ "port", FR_CONF_OFFSET(PW_TYPE_INTEGER | PW_TYPE_REQUIRED, rlm_snap_t, port), "0"},
> 	{ "keyid", FR_CONF_OFFSET(PW_TYPE_INTEGER | PW_TYPE_REQUIRED, rlm_snap_t, keyid ), "1000" },
> 	{ " encrkey ", FR_CONF_OFFSET(?????????????????, rlm_snap_t, encrkey ), NULL },

 Make it:

{ " encrkey ", FR_CONF_OFFSET(PW_TYPE_STRING | PW_TYPE_REQUIRED, rlm_snap_t, encrkey_string ), NULL },

  And then call  fr_hex2bin() to convert the hex "encrkey_string" to the binary "encrkey".  With length checks, of course...

  Alan DeKok.




More information about the Freeradius-Devel mailing list