summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2005-08-15 20:39:02 +0000
committerelie <elie>2005-08-15 20:39:02 +0000
commitb059d55ac82c3e4d570f36b7ce7cd5757dcb1ec0 (patch)
tree7be83255369d7d6747ffb347e6493e6d0fde5362
parentda35ac8d7251d4f45cbe1530758310b039ce4368 (diff)
downloadpysnmp-b059d55ac82c3e4d570f36b7ce7cd5757dcb1ec0.tar.gz
* params order changed in UsmUserData contructor (in incompatible manner!)
* protocols now indicated by OID names rather than literals * protocol OID names short cutted from entity.config
-rw-r--r--pysnmp/entity/rfc3413/oneliner/cmdgen.py37
1 files changed, 28 insertions, 9 deletions
diff --git a/pysnmp/entity/rfc3413/oneliner/cmdgen.py b/pysnmp/entity/rfc3413/oneliner/cmdgen.py
index ac958bf..cca6864 100644
--- a/pysnmp/entity/rfc3413/oneliner/cmdgen.py
+++ b/pysnmp/entity/rfc3413/oneliner/cmdgen.py
@@ -6,6 +6,15 @@ from pysnmp.smi import view
from pysnmp import error
from pyasn1.type import univ
+# Auth protocol
+usmHMACMD5AuthProtocol = config.usmHMACMD5AuthProtocol
+usmHMACSHAAuthProtocol = config.usmHMACSHAAuthProtocol
+usmNoAuthProtocol = config.usmNoAuthProtocol
+
+# Privacy protocol
+usmDESPrivProtocol = config.usmDESPrivProtocol
+usmNoPrivProtocol = config.usmNoPrivProtocol
+
class CommunityData:
mpModel=1 # Default is SMIv2
securityModel=mpModel+1
@@ -18,23 +27,33 @@ class CommunityData:
self.securityModel = mpModel + 1
class UsmUserData:
- authKey = privKey = None
+ authKey = privKey = ''
securityLevel='noAuthNoPriv'
securityModel=3
mpModel=2
authProtocol = privProtocol = None
- def __init__(self, securityName, authKey=None, authProtocol='md5',
- privKey=None, privProtocol='des'):
+ def __init__(self, securityName,
+ authKey='', privKey='',
+ authProtocol=usmNoAuthProtocol,
+ privProtocol=usmNoPrivProtocol):
self.securityName = securityName
- if authKey is not None:
+ if authKey:
self.authKey = authKey
- self.authProtocol = authProtocol
+ if authProtocol == usmNoAuthProtocol:
+ self.authProtocol = usmHMACMD5AuthProtocol
+ else:
+ self.authProtocol = authProtocol
if self.securityLevel != 'authPriv':
self.securityLevel = 'authNoPriv'
- if privKey is not None:
+ if privKey:
self.privKey = privKey
+ if self.authProtocol == usmNoAuthProtocol:
+ raise error.PySnmpError('Privacy implies authenticity')
self.securityLevel = 'authPriv'
- self.privProtocol = privProtocol
+ if privProtocol == usmNoPrivProtocol:
+ self.privProtocol = usmDESPrivProtocol
+ else:
+ self.privProtocol = privProtocol
class UdpTransportTarget:
transportDomain = udp.domainName
@@ -76,8 +95,8 @@ class AsynCommandGenerator:
config.addV3User(
self.snmpEngine,
authData.securityName,
- authData.authKey, authData.authProtocol,
- authData.privKey, authData.privProtocol
+ authData.authProtocol, authData.authKey,
+ authData.privProtocol, authData.privKey
)
config.addTargetParams(
self.snmpEngine, paramsName,