SNMP-USER-BASED-SM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, snmpModules
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, TestAndIncr, RowStatus, RowPointer,
    StorageType, AutonomousType
        FROM SNMPv2-TC
    SnmpAdminString, SnmpEngineID, snmpAuthProtocols, snmpPrivProtocols
        FROM SNMP-FRAMEWORK-MIB;

snmpUsmMIB MODULE-IDENTITY
    LAST-UPDATED "200210160000Z"
    ORGANIZATION "IETF SNMPv3 Working Group"
    DESCRIPTION "User-based Security Model management objects from RFC 3414."
    ::= { snmpModules 15 }

usmMIBObjects OBJECT IDENTIFIER ::= { snmpUsmMIB 1 }

usmNoAuthProtocol OBJECT-IDENTITY
    STATUS current
    DESCRIPTION "No authentication."
    ::= { snmpAuthProtocols 1 }
usmHMACMD5AuthProtocol OBJECT-IDENTITY
    STATUS current
    DESCRIPTION "HMAC-MD5-96."
    ::= { snmpAuthProtocols 2 }
usmHMACSHAAuthProtocol OBJECT-IDENTITY
    STATUS current
    DESCRIPTION "HMAC-SHA-96."
    ::= { snmpAuthProtocols 3 }
usmNoPrivProtocol OBJECT-IDENTITY
    STATUS current
    DESCRIPTION "No privacy."
    ::= { snmpPrivProtocols 1 }
usmDESPrivProtocol OBJECT-IDENTITY
    STATUS current
    DESCRIPTION "CBC-DES privacy."
    ::= { snmpPrivProtocols 2 }

KeyChange ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION "RFC 3414 localized-key change value."
    SYNTAX OCTET STRING

usmUser OBJECT IDENTIFIER ::= { usmMIBObjects 2 }

usmUserSpinLock OBJECT-TYPE
    SYNTAX TestAndIncr
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION "Advisory lock for coordinated USM changes."
    ::= { usmUser 1 }

usmUserTable OBJECT-TYPE
    SYNTAX SEQUENCE OF UsmUserEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION "Users configured in the local USM datastore."
    ::= { usmUser 2 }

usmUserEntry OBJECT-TYPE
    SYNTAX UsmUserEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION "One local USM user."
    INDEX { usmUserEngineID, usmUserName }
    ::= { usmUserTable 1 }

UsmUserEntry ::= SEQUENCE {
    usmUserEngineID SnmpEngineID,
    usmUserName SnmpAdminString,
    usmUserSecurityName SnmpAdminString,
    usmUserCloneFrom RowPointer,
    usmUserAuthProtocol AutonomousType,
    usmUserAuthKeyChange KeyChange,
    usmUserOwnAuthKeyChange KeyChange,
    usmUserPrivProtocol AutonomousType,
    usmUserPrivKeyChange KeyChange,
    usmUserOwnPrivKeyChange KeyChange,
    usmUserPublic OCTET STRING,
    usmUserStorageType StorageType,
    usmUserStatus RowStatus
}

usmUserEngineID OBJECT-TYPE
    SYNTAX SnmpEngineID
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION "Authoritative engine identifier."
    ::= { usmUserEntry 1 }
usmUserName OBJECT-TYPE
    SYNTAX SnmpAdminString (SIZE(1..32))
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION "USM user name."
    ::= { usmUserEntry 2 }
usmUserSecurityName OBJECT-TYPE
    SYNTAX SnmpAdminString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION "Security-independent user name."
    ::= { usmUserEntry 3 }
usmUserCloneFrom OBJECT-TYPE
    SYNTAX RowPointer
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Row whose protocols and localized keys are cloned."
    ::= { usmUserEntry 4 }
usmUserAuthProtocol OBJECT-TYPE
    SYNTAX AutonomousType
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Authentication protocol."
    DEFVAL { usmNoAuthProtocol }
    ::= { usmUserEntry 5 }
usmUserAuthKeyChange OBJECT-TYPE
    SYNTAX KeyChange
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Authentication localized-key change."
    DEFVAL { ''H }
    ::= { usmUserEntry 6 }
usmUserOwnAuthKeyChange OBJECT-TYPE
    SYNTAX KeyChange
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Authentication key change restricted to this user."
    DEFVAL { ''H }
    ::= { usmUserEntry 7 }
usmUserPrivProtocol OBJECT-TYPE
    SYNTAX AutonomousType
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Privacy protocol."
    DEFVAL { usmNoPrivProtocol }
    ::= { usmUserEntry 8 }
usmUserPrivKeyChange OBJECT-TYPE
    SYNTAX KeyChange
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Privacy localized-key change."
    DEFVAL { ''H }
    ::= { usmUserEntry 9 }
usmUserOwnPrivKeyChange OBJECT-TYPE
    SYNTAX KeyChange
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Privacy key change restricted to this user."
    DEFVAL { ''H }
    ::= { usmUserEntry 10 }
usmUserPublic OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(0..32))
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Public confirmation value for key changes."
    DEFVAL { ''H }
    ::= { usmUserEntry 11 }
usmUserStorageType OBJECT-TYPE
    SYNTAX StorageType
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Storage lifetime of this row."
    DEFVAL { volatile }
    ::= { usmUserEntry 12 }
usmUserStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Creation, activation, and deletion state."
    ::= { usmUserEntry 13 }

END
