95 lines
3.8 KiB
C
95 lines
3.8 KiB
C
/*
|
|
* SNMPv3 View-based Access Control Model
|
|
*/
|
|
|
|
#ifndef _MIBGROUP_VACM_H
|
|
#define _MIBGROUP_VACM_H
|
|
|
|
#include <net-snmp/library/vacm.h>
|
|
|
|
config_require(util_funcs/header_generic)
|
|
config_require(mibII/vacm_context)
|
|
config_require(mibII/vacm_conf)
|
|
config_add_mib(SNMP-VIEW-BASED-ACM-MIB)
|
|
config_add_mib(SNMP-COMMUNITY-MIB)
|
|
|
|
void init_vacm_vars(void);
|
|
|
|
extern FindVarMethod var_vacm_sec2group;
|
|
extern FindVarMethod var_vacm_access;
|
|
extern FindVarMethod var_vacm_view;
|
|
|
|
#ifndef NETSNMP_NO_WRITE_SUPPORT
|
|
WriteMethod write_vacmGroupName;
|
|
WriteMethod write_vacmSecurityToGroupStatus;
|
|
WriteMethod write_vacmSecurityToGroupStorageType;
|
|
|
|
WriteMethod write_vacmAccessContextMatch;
|
|
WriteMethod write_vacmAccessNotifyViewName;
|
|
WriteMethod write_vacmAccessReadViewName;
|
|
WriteMethod write_vacmAccessWriteViewName;
|
|
WriteMethod write_vacmAccessStatus;
|
|
WriteMethod write_vacmAccessStorageType;
|
|
|
|
WriteMethod write_vacmViewSpinLock;
|
|
WriteMethod write_vacmViewMask;
|
|
WriteMethod write_vacmViewStatus;
|
|
WriteMethod write_vacmViewStorageType;
|
|
WriteMethod write_vacmViewType;
|
|
|
|
oid *access_generate_OID(oid * prefix, size_t prefixLen,
|
|
struct vacm_accessEntry *aptr,
|
|
size_t * length);
|
|
struct vacm_accessEntry *access_parse_accessEntry(oid * name,
|
|
size_t name_len);
|
|
int access_parse_oid(oid * oidIndex, size_t oidLen,
|
|
unsigned char **groupName,
|
|
size_t * groupNameLen,
|
|
unsigned char **contextPrefix,
|
|
size_t * contextPrefixLen,
|
|
int *model, int *level);
|
|
|
|
oid *sec2group_generate_OID(oid * prefix, size_t prefixLen,
|
|
struct vacm_groupEntry *geptr,
|
|
size_t * length);
|
|
int sec2group_parse_oid(oid * oidIndex, size_t oidLen,
|
|
int *model, unsigned char **name,
|
|
size_t * nameLen);
|
|
struct vacm_groupEntry *sec2group_parse_groupEntry(oid * name,
|
|
size_t name_len);
|
|
|
|
oid *view_generate_OID(oid * prefix, size_t prefixLen,
|
|
struct vacm_viewEntry *vptr,
|
|
size_t * length);
|
|
int view_parse_oid(oid * oidIndex, size_t oidLen,
|
|
unsigned char **viewName,
|
|
size_t * viewNameLen, oid ** subtree,
|
|
size_t * subtreeLen);
|
|
struct vacm_viewEntry *view_parse_viewEntry(oid * name,
|
|
size_t name_len);
|
|
#endif /* !NETSNMP_NO_WRITE_SUPPORT */
|
|
|
|
|
|
#define OID_SNMPVACMMIB SNMP_OID_SNMPMODULES, 16
|
|
#define OID_VACMMIBOBJECTS OID_SNMPVACMMIB, 1
|
|
|
|
#define OID_VACMCONTEXTTABLE OID_VACMMIBOBJECTS, 1
|
|
#define OID_VACMCONTEXTENTRY OID_VACMCONTEXTTABLE, 1
|
|
|
|
#define OID_VACMGROUPTABLE OID_VACMMIBOBJECTS, 2
|
|
#define OID_VACMGROUPENTRY OID_VACMGROUPTABLE, 1
|
|
|
|
#define OID_VACMACCESSTABLE OID_VACMMIBOBJECTS, 4
|
|
#define OID_VACMACCESSENTRY OID_VACMACCESSTABLE, 1
|
|
|
|
#define OID_VACMMIBVIEWS OID_VACMMIBOBJECTS, 5
|
|
#define OID_VACMVIEWTABLE OID_VACMMIBVIEWS, 2
|
|
#define OID_VACMVIEWENTRY OID_VACMVIEWTABLE, 1
|
|
#define SEC2GROUP_MIB_LENGTH 11
|
|
#define ACCESS_MIB_LENGTH 11
|
|
#define VIEW_MIB_LENGTH 12
|
|
#define CM_EXACT 1
|
|
#define CM_PREFIX 2
|
|
|
|
#endif /* _MIBGROUP_VACM_H */
|