snmp_usm_mib_impl.c File Reference

SNMP USM MIB module implementation. More...

#include "core/net.h"
#include "mibs/mib_common.h"
#include "mibs/snmp_usm_mib_module.h"
#include "mibs/snmp_usm_mib_impl.h"
#include "snmp/snmp_agent.h"
#include "core/crypto.h"
#include "encoding/asn1.h"
#include "encoding/oid.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   SNMP_TRACE_LEVEL
 

Functions

error_t snmpUsmMibInit (void)
 SNMP USM MIB module initialization. More...
 
error_t snmpUsmMibLoad (void *context)
 Load SNMP USM MIB module. More...
 
void snmpUsmMibUnload (void *context)
 Unload SNMP USM MIB module. More...
 
void snmpUsmMibLock (void)
 Lock SNMP USM MIB base. More...
 
void snmpUsmMibUnlock (void)
 Unlock SNMP USM MIB base. More...
 
error_t snmpUsmMibSetUserSpinLock (const MibObject *object, const uint8_t *oid, size_t oidLen, const MibVariant *value, size_t valueLen, bool_t commit)
 Set usmUserSpinLock object value. More...
 
error_t snmpUsmMibGetUserSpinLock (const MibObject *object, const uint8_t *oid, size_t oidLen, MibVariant *value, size_t *valueLen)
 Get usmUserSpinLock object value. More...
 
error_t snmpUsmMibSetUserEntry (const MibObject *object, const uint8_t *oid, size_t oidLen, const MibVariant *value, size_t valueLen, bool_t commit)
 Set usmUserEntry object value. More...
 
error_t snmpUsmMibGetUserEntry (const MibObject *object, const uint8_t *oid, size_t oidLen, MibVariant *value, size_t *valueLen)
 Get usmUserEntry object value. More...
 
error_t snmpUsmMibGetNextUserEntry (const MibObject *object, const uint8_t *oid, size_t oidLen, uint8_t *nextOid, size_t *nextOidLen)
 Get next usmUserEntry object. More...
 

Variables

const uint8_t usmNoAuthProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 1, 1}
 
const uint8_t usmHMACMD5AuthProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 1, 2}
 
const uint8_t usmHMACSHAAuthProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 1, 3}
 
const uint8_t usmHMAC128SHA224AuthProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 1, 4}
 
const uint8_t usmHMAC192SHA256AuthProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 1, 5}
 
const uint8_t usmHMAC256SHA384AuthProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 1, 6}
 
const uint8_t usmHMAC384SHA512AuthProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 1, 7}
 
const uint8_t usmNoPrivProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 2, 1}
 
const uint8_t usmDESPrivProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 2, 2}
 
const uint8_t usmAesCfb128ProtocolOid [9] = {43, 6, 1, 6, 3, 10, 1, 2, 4}
 
const uint8_t usmUserEntryOid [10] = {43, 6, 1, 6, 3, 15, 1, 2, 2, 1}
 

Detailed Description

SNMP USM MIB module implementation.

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.0

Definition in file snmp_usm_mib_impl.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   SNMP_TRACE_LEVEL

Definition at line 32 of file snmp_usm_mib_impl.c.

Function Documentation

◆ snmpUsmMibGetNextUserEntry()

error_t snmpUsmMibGetNextUserEntry ( const MibObject object,
const uint8_t *  oid,
size_t  oidLen,
uint8_t *  nextOid,
size_t *  nextOidLen 
)

Get next usmUserEntry object.

Parameters
[in]objectPointer to the MIB object descriptor
[in]oidObject identifier
[in]oidLenLength of the OID, in bytes
[out]nextOidOID of the next object in the MIB
[out]nextOidLenLength of the next object identifier, in bytes
Returns
Error code

Definition at line 1057 of file snmp_usm_mib_impl.c.

◆ snmpUsmMibGetUserEntry()

error_t snmpUsmMibGetUserEntry ( const MibObject object,
const uint8_t *  oid,
size_t  oidLen,
MibVariant value,
size_t *  valueLen 
)

Get usmUserEntry object value.

Parameters
[in]objectPointer to the MIB object descriptor
[in]oidObject identifier (object name and instance identifier)
[in]oidLenLength of the OID, in bytes
[out]valueObject value
[in,out]valueLenLength of the object value, in bytes
Returns
Error code

Definition at line 788 of file snmp_usm_mib_impl.c.

◆ snmpUsmMibGetUserSpinLock()

error_t snmpUsmMibGetUserSpinLock ( const MibObject object,
const uint8_t *  oid,
size_t  oidLen,
MibVariant value,
size_t *  valueLen 
)

Get usmUserSpinLock object value.

Parameters
[in]objectPointer to the MIB object descriptor
[in]oidObject identifier (object name and instance identifier)
[in]oidLenLength of the OID, in bytes
[out]valueObject value
[in,out]valueLenLength of the object value, in bytes
Returns
Error code

Definition at line 176 of file snmp_usm_mib_impl.c.

◆ snmpUsmMibInit()

error_t snmpUsmMibInit ( void  )

SNMP USM MIB module initialization.

Returns
Error code

Definition at line 79 of file snmp_usm_mib_impl.c.

◆ snmpUsmMibLoad()

error_t snmpUsmMibLoad ( void *  context)

Load SNMP USM MIB module.

Parameters
[in]contextPointer to the SNMP agent context
Returns
Error code

Definition at line 101 of file snmp_usm_mib_impl.c.

◆ snmpUsmMibLock()

void snmpUsmMibLock ( void  )

Lock SNMP USM MIB base.

Definition at line 127 of file snmp_usm_mib_impl.c.

◆ snmpUsmMibSetUserEntry()

error_t snmpUsmMibSetUserEntry ( const MibObject object,
const uint8_t *  oid,
size_t  oidLen,
const MibVariant value,
size_t  valueLen,
bool_t  commit 
)

Set usmUserEntry object value.

Parameters
[in]objectPointer to the MIB object descriptor
[in]oidObject identifier (object name and instance identifier)
[in]oidLenLength of the OID, in bytes
[in]valueObject value
[in]valueLenLength of the object value, in bytes
[in]commitThis flag tells whether the changes shall be committed to the MIB base
Returns
Error code

Definition at line 199 of file snmp_usm_mib_impl.c.

◆ snmpUsmMibSetUserSpinLock()

error_t snmpUsmMibSetUserSpinLock ( const MibObject object,
const uint8_t *  oid,
size_t  oidLen,
const MibVariant value,
size_t  valueLen,
bool_t  commit 
)

Set usmUserSpinLock object value.

Parameters
[in]objectPointer to the MIB object descriptor
[in]oidObject identifier (object name and instance identifier)
[in]oidLenLength of the OID, in bytes
[in]valueObject value
[in]valueLenLength of the object value, in bytes
[in]commitThis flag tells whether the changes shall be committed to the MIB base
Returns
Error code

Definition at line 157 of file snmp_usm_mib_impl.c.

◆ snmpUsmMibUnload()

void snmpUsmMibUnload ( void *  context)

Unload SNMP USM MIB module.

Parameters
[in]contextPointer to the SNMP agent context

Definition at line 116 of file snmp_usm_mib_impl.c.

◆ snmpUsmMibUnlock()

void snmpUsmMibUnlock ( void  )

Unlock SNMP USM MIB base.

Definition at line 138 of file snmp_usm_mib_impl.c.

Variable Documentation

◆ usmAesCfb128ProtocolOid

const uint8_t usmAesCfb128ProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 2, 4}

Definition at line 68 of file snmp_usm_mib_impl.c.

◆ usmDESPrivProtocolOid

const uint8_t usmDESPrivProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 2, 2}

Definition at line 66 of file snmp_usm_mib_impl.c.

◆ usmHMAC128SHA224AuthProtocolOid

const uint8_t usmHMAC128SHA224AuthProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 1, 4}

Definition at line 55 of file snmp_usm_mib_impl.c.

◆ usmHMAC192SHA256AuthProtocolOid

const uint8_t usmHMAC192SHA256AuthProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 1, 5}

Definition at line 57 of file snmp_usm_mib_impl.c.

◆ usmHMAC256SHA384AuthProtocolOid

const uint8_t usmHMAC256SHA384AuthProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 1, 6}

Definition at line 59 of file snmp_usm_mib_impl.c.

◆ usmHMAC384SHA512AuthProtocolOid

const uint8_t usmHMAC384SHA512AuthProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 1, 7}

Definition at line 61 of file snmp_usm_mib_impl.c.

◆ usmHMACMD5AuthProtocolOid

const uint8_t usmHMACMD5AuthProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 1, 2}

Definition at line 51 of file snmp_usm_mib_impl.c.

◆ usmHMACSHAAuthProtocolOid

const uint8_t usmHMACSHAAuthProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 1, 3}

Definition at line 53 of file snmp_usm_mib_impl.c.

◆ usmNoAuthProtocolOid

const uint8_t usmNoAuthProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 1, 1}

Definition at line 49 of file snmp_usm_mib_impl.c.

◆ usmNoPrivProtocolOid

const uint8_t usmNoPrivProtocolOid[9] = {43, 6, 1, 6, 3, 10, 1, 2, 1}

Definition at line 64 of file snmp_usm_mib_impl.c.

◆ usmUserEntryOid

const uint8_t usmUserEntryOid[10] = {43, 6, 1, 6, 3, 15, 1, 2, 2, 1}

Definition at line 71 of file snmp_usm_mib_impl.c.