/*							-- DO NOT EDIT --
 * This file has been generated by smidump
 * version 0.3.1 for the scli package.
 *
 * Derived from SNMP-USER-BASED-SM-MIB:
 *   The management information definitions for the
 *   SNMP User-based Security Model.
 *   
 *
 * Revision 1999-01-20 00:00:
 *   Clarifications, published as RFC2574
 *
 * Revision 1997-11-20 00:00:
 *   Initial version, published as RFC2274
 *
 * $Id: snmp-user-based-sm-mib.h,v 1.13 2002/03/26 16:26:27 schoenw Exp $
 */

#ifndef _SNMP_USER_BASED_SM_MIB_H_
#define _SNMP_USER_BASED_SM_MIB_H_

#include "g_snmp.h"

/*
 * Tables to map enumerations to strings and vice versa.
 */

#define SNMP_USER_BASED_SM_MIB_USMUSERSTORAGETYPE_OTHER       1
#define SNMP_USER_BASED_SM_MIB_USMUSERSTORAGETYPE_VOLATILE    2
#define SNMP_USER_BASED_SM_MIB_USMUSERSTORAGETYPE_NONVOLATILE 3
#define SNMP_USER_BASED_SM_MIB_USMUSERSTORAGETYPE_PERMANENT   4
#define SNMP_USER_BASED_SM_MIB_USMUSERSTORAGETYPE_READONLY    5

extern GSnmpEnum const snmp_user_based_sm_mib_enums_usmUserStorageType[];

#define SNMP_USER_BASED_SM_MIB_USMUSERSTATUS_ACTIVE        1
#define SNMP_USER_BASED_SM_MIB_USMUSERSTATUS_NOTINSERVICE  2
#define SNMP_USER_BASED_SM_MIB_USMUSERSTATUS_NOTREADY      3
#define SNMP_USER_BASED_SM_MIB_USMUSERSTATUS_CREATEANDGO   4
#define SNMP_USER_BASED_SM_MIB_USMUSERSTATUS_CREATEANDWAIT 5
#define SNMP_USER_BASED_SM_MIB_USMUSERSTATUS_DESTROY       6

extern GSnmpEnum const snmp_user_based_sm_mib_enums_usmUserStatus[];


/*
 * Tables to map identities to strings and vice versa.
 */

#define SNMP_USER_BASED_SM_MIB_USMNOAUTHPROTOCOL	1,3,6,1,6,3,10,1,1,1
#define SNMP_USER_BASED_SM_MIB_USMHMACMD5AUTHPROTOCOL	1,3,6,1,6,3,10,1,1,2
#define SNMP_USER_BASED_SM_MIB_USMHMACSHAAUTHPROTOCOL	1,3,6,1,6,3,10,1,1,3
#define SNMP_USER_BASED_SM_MIB_USMNOPRIVPROTOCOL	1,3,6,1,6,3,10,1,2,1
#define SNMP_USER_BASED_SM_MIB_USMDESPRIVPROTOCOL	1,3,6,1,6,3,10,1,2,2

extern GSnmpIdentity const snmp_user_based_sm_mib_identities[];

/*
 * C type definitions for SNMP-USER-BASED-SM-MIB::usmStats.
 */

#define SNMP_USER_BASED_SM_MIB_USMSTATSUNSUPPORTEDSECLEVELS (1 << 0) 
#define SNMP_USER_BASED_SM_MIB_USMSTATSNOTINTIMEWINDOWS     (1 << 1) 
#define SNMP_USER_BASED_SM_MIB_USMSTATSUNKNOWNUSERNAMES     (1 << 2) 
#define SNMP_USER_BASED_SM_MIB_USMSTATSUNKNOWNENGINEIDS     (1 << 3) 
#define SNMP_USER_BASED_SM_MIB_USMSTATSWRONGDIGESTS         (1 << 4) 
#define SNMP_USER_BASED_SM_MIB_USMSTATSDECRYPTIONERRORS     (1 << 5) 

typedef struct {
    guint32  *usmStatsUnsupportedSecLevels;
    guint32  *usmStatsNotInTimeWindows;
    guint32  *usmStatsUnknownUserNames;
    guint32  *usmStatsUnknownEngineIDs;
    guint32  *usmStatsWrongDigests;
    guint32  *usmStatsDecryptionErrors;
} snmp_user_based_sm_mib_usmStats_t;

extern snmp_user_based_sm_mib_usmStats_t *
snmp_user_based_sm_mib_new_usmStats(void);

extern void
snmp_user_based_sm_mib_get_usmStats(GSnmpSession *s, snmp_user_based_sm_mib_usmStats_t **usmStats, gint mask);

extern void
snmp_user_based_sm_mib_free_usmStats(snmp_user_based_sm_mib_usmStats_t *usmStats);

/*
 * C type definitions for SNMP-USER-BASED-SM-MIB::usmUser.
 */

#define SNMP_USER_BASED_SM_MIB_USMUSERSPINLOCK (1 << 0) 
typedef struct {
    gint32   *usmUserSpinLock;
} snmp_user_based_sm_mib_usmUser_t;

extern snmp_user_based_sm_mib_usmUser_t *
snmp_user_based_sm_mib_new_usmUser(void);

extern void
snmp_user_based_sm_mib_get_usmUser(GSnmpSession *s, snmp_user_based_sm_mib_usmUser_t **usmUser, gint mask);

extern void
snmp_user_based_sm_mib_set_usmUser(GSnmpSession *s, snmp_user_based_sm_mib_usmUser_t *usmUser, gint mask);

extern void
snmp_user_based_sm_mib_free_usmUser(snmp_user_based_sm_mib_usmUser_t *usmUser);

/*
 * C type definitions for SNMP-USER-BASED-SM-MIB::usmUserEntry.
 */

#define SNMP_USER_BASED_SM_MIB_USMUSERSECURITYNAME     (1 << 0) 
#define SNMP_USER_BASED_SM_MIB_USMUSERCLONEFROM        (1 << 1) 
#define SNMP_USER_BASED_SM_MIB_USMUSERAUTHPROTOCOL     (1 << 2) 
#define SNMP_USER_BASED_SM_MIB_USMUSERAUTHKEYCHANGE    (1 << 3) 
#define SNMP_USER_BASED_SM_MIB_USMUSEROWNAUTHKEYCHANGE (1 << 4) 
#define SNMP_USER_BASED_SM_MIB_USMUSERPRIVPROTOCOL     (1 << 5) 
#define SNMP_USER_BASED_SM_MIB_USMUSERPRIVKEYCHANGE    (1 << 6) 
#define SNMP_USER_BASED_SM_MIB_USMUSEROWNPRIVKEYCHANGE (1 << 7) 
#define SNMP_USER_BASED_SM_MIB_USMUSERPUBLIC           (1 << 8) 
#define SNMP_USER_BASED_SM_MIB_USMUSERSTORAGETYPE      (1 << 9) 
#define SNMP_USER_BASED_SM_MIB_USMUSERSTATUS           (1 << 10) 

typedef struct {
    guchar   usmUserEngineID[32];
#define SNMP_USER_BASED_SM_MIB_USMUSERENGINEIDMINLENGTH 5
#define SNMP_USER_BASED_SM_MIB_USMUSERENGINEIDMAXLENGTH 32
    guint16  _usmUserEngineIDLength;
    guchar   usmUserName[32];
#define SNMP_USER_BASED_SM_MIB_USMUSERNAMEMINLENGTH 1
#define SNMP_USER_BASED_SM_MIB_USMUSERNAMEMAXLENGTH 32
    guint16  _usmUserNameLength;
    guchar   *usmUserSecurityName;
#define SNMP_USER_BASED_SM_MIB_USMUSERSECURITYNAMEMINLENGTH 0
#define SNMP_USER_BASED_SM_MIB_USMUSERSECURITYNAMEMAXLENGTH 255
    guint16  _usmUserSecurityNameLength;
    guint32  *usmUserCloneFrom;
#define SNMP_USER_BASED_SM_MIB_USMUSERCLONEFROMMINLENGTH 0
#define SNMP_USER_BASED_SM_MIB_USMUSERCLONEFROMMAXLENGTH 128
    guint16  _usmUserCloneFromLength;
    guint32  *usmUserAuthProtocol;
#define SNMP_USER_BASED_SM_MIB_USMUSERAUTHPROTOCOLMINLENGTH 0
#define SNMP_USER_BASED_SM_MIB_USMUSERAUTHPROTOCOLMAXLENGTH 128
    guint16  _usmUserAuthProtocolLength;
    guchar   *usmUserAuthKeyChange;
#define SNMP_USER_BASED_SM_MIB_USMUSERAUTHKEYCHANGEMINLENGTH 0
#define SNMP_USER_BASED_SM_MIB_USMUSERAUTHKEYCHANGEMAXLENGTH 65535
    guint16  _usmUserAuthKeyChangeLength;
    guchar   *usmUserOwnAuthKeyChange;
#define SNMP_USER_BASED_SM_MIB_USMUSEROWNAUTHKEYCHANGEMINLENGTH 0
#define SNMP_USER_BASED_SM_MIB_USMUSEROWNAUTHKEYCHANGEMAXLENGTH 65535
    guint16  _usmUserOwnAuthKeyChangeLength;
    guint32  *usmUserPrivProtocol;
#define SNMP_USER_BASED_SM_MIB_USMUSERPRIVPROTOCOLMINLENGTH 0
#define SNMP_USER_BASED_SM_MIB_USMUSERPRIVPROTOCOLMAXLENGTH 128
    guint16  _usmUserPrivProtocolLength;
    guchar   *usmUserPrivKeyChange;
#define SNMP_USER_BASED_SM_MIB_USMUSERPRIVKEYCHANGEMINLENGTH 0
#define SNMP_USER_BASED_SM_MIB_USMUSERPRIVKEYCHANGEMAXLENGTH 65535
    guint16  _usmUserPrivKeyChangeLength;
    guchar   *usmUserOwnPrivKeyChange;
#define SNMP_USER_BASED_SM_MIB_USMUSEROWNPRIVKEYCHANGEMINLENGTH 0
#define SNMP_USER_BASED_SM_MIB_USMUSEROWNPRIVKEYCHANGEMAXLENGTH 65535
    guint16  _usmUserOwnPrivKeyChangeLength;
    guchar   *usmUserPublic;
#define SNMP_USER_BASED_SM_MIB_USMUSERPUBLICMINLENGTH 0
#define SNMP_USER_BASED_SM_MIB_USMUSERPUBLICMAXLENGTH 32
    guint16  _usmUserPublicLength;
    gint32   *usmUserStorageType;
    gint32   *usmUserStatus;
} snmp_user_based_sm_mib_usmUserEntry_t;

extern void
snmp_user_based_sm_mib_get_usmUserTable(GSnmpSession *s, snmp_user_based_sm_mib_usmUserEntry_t ***usmUserEntry, gint mask);

extern void
snmp_user_based_sm_mib_free_usmUserTable(snmp_user_based_sm_mib_usmUserEntry_t **usmUserEntry);

extern snmp_user_based_sm_mib_usmUserEntry_t *
snmp_user_based_sm_mib_new_usmUserEntry(void);

extern void
snmp_user_based_sm_mib_get_usmUserEntry(GSnmpSession *s, snmp_user_based_sm_mib_usmUserEntry_t **usmUserEntry, guchar *usmUserEngineID, guint16 _usmUserEngineIDLength, guchar *usmUserName, guint16 _usmUserNameLength, gint mask);

extern void
snmp_user_based_sm_mib_set_usmUserEntry(GSnmpSession *s, snmp_user_based_sm_mib_usmUserEntry_t *usmUserEntry, gint mask);

extern void
snmp_user_based_sm_mib_free_usmUserEntry(snmp_user_based_sm_mib_usmUserEntry_t *usmUserEntry);


#endif /* _SNMP_USER_BASED_SM_MIB_H_ */
