The following macros are supplied to check the semantics of entries in the binding fields. The macros work with the ERA API data types and their equivalent dce_attr_sch data types.
/*
* SA_BND_AUTH_INFO_TYPE_VALID(B) - evaluates to TRUE (1)
* if the binding auth_info type is valid; FALSE (0) otherwise.
* B is a pointer to a
sec_attr_bind_info_t.
*/
#define SA_BND_AUTH_INFO_TYPE_VALID(B) ( \
(SA_BND_AUTH_INFO_TYPE(B)) == sec_attr_bind_auth_none || \
(SA_BND_AUTH_INFO_TYPE(B)) == sec_attr_bind_auth_dce ? true : false )
/*
* SA_BND_AUTH_PROT_LEV_VALID(B) - evaluates to TRUE (1)
* if the binding auth_info protect_level is valid; FALSE (0) otherwise.
* B is a pointer to a sec_attr_bind_info_t.
*/
#define SA_BND_AUTH_PROT_LEV_VALID(B) ( \
(SA_BND_AUTH_PROT_LEVEL(B)) == rpc_c_protect_level_default || \
(SA_BND_AUTH_PROT_LEVEL(B)) == rpc_c_protect_level_none || \
(SA_BND_AUTH_PROT_LEVEL(B)) == rpc_c_protect_level_connect || \
(SA_BND_AUTH_PROT_LEVEL(B)) == rpc_c_protect_level_call || \
(SA_BND_AUTH_PROT_LEVEL(B)) == rpc_c_protect_level_pkt || \
(SA_BND_AUTH_PROT_LEVEL(B)) == rpc_c_protect_level_pkt_integ || \
(SA_BND_AUTH_PROT_LEVEL(B)) == rpc_c_protect_level_pkt_privacy ? \
true : false )
/*
* SA_BND_AUTH_AUTHN_SVC_VALID(B) - evaluates to TRUE (1)
* if the binding auth_info authentication service is valid; * FALSE (0) otherwise.
* B is a pointer to a sec_attr_bind_info_t.
*/
#define SA_BND_AUTH_AUTHN_SVC_VALID(B) ( \
(SA_BND_AUTH_AUTHN_SVC(B)) == rpc_c_authn_none || \
(SA_BND_AUTH_AUTHN_SVC(B)) == rpc_c_authn_dce_secret || \
(SA_BND_AUTH_AUTHN_SVC(B)) == rpc_c_authn_dce_public || \
(SA_BND_AUTH_AUTHN_SVC(B)) == rpc_c_authn_dce_dummy || \
(SA_BND_AUTH_AUTHN_SVC(B)) == rpc_c_authn_dssa_public || \
(SA_BND_AUTH_AUTHN_SVC(B)) == rpc_c_authn_default ? \
true : false )
/*
* SA_BND_AUTH_AUTHZ_SVC_VALID(B) - evaluates to TRUE (1)
* if the binding auth_info authorization service is valid; * FALSE (0) otherwise.
* B is a pointer to a sec_attr_bind_info_t.
*/
#define SA_BND_AUTH_AUTHZ_SVC_VALID(B) ( \
(SA_BND_AUTH_AUTHZ_SVC(B)) == rpc_c_authz_none || \
(SA_BND_AUTH_AUTHZ_SVC(B)) == rpc_c_authz_name || \
(SA_BND_AUTH_AUTHZ_SVC(B)) == rpc_c_authz_dce ? \
true : false )