summaryrefslogtreecommitdiff
path: root/pysnmp/proto/secmod/rfc3414/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'pysnmp/proto/secmod/rfc3414/service.py')
-rw-r--r--pysnmp/proto/secmod/rfc3414/service.py25
1 files changed, 13 insertions, 12 deletions
diff --git a/pysnmp/proto/secmod/rfc3414/service.py b/pysnmp/proto/secmod/rfc3414/service.py
index 82b3b7a0..7e4f0369 100644
--- a/pysnmp/proto/secmod/rfc3414/service.py
+++ b/pysnmp/proto/secmod/rfc3414/service.py
@@ -1,4 +1,5 @@
# SNMP v3 USM model services
+import time, sys
from pysnmp.proto.secmod.base import AbstractSecurityModel
from pysnmp.proto.secmod.rfc3414.auth import hmacmd5, hmacsha, noauth
from pysnmp.proto.secmod.rfc3414.priv import des, nopriv
@@ -6,19 +7,19 @@ from pysnmp.proto.secmod.rfc3826.priv import aes
from pysnmp.proto.secmod.eso.priv import des3, aes192, aes256
from pysnmp.smi.error import NoSuchInstanceError
from pysnmp.proto import rfc1155, errind, error
+from pysnmp import debug
from pyasn1.type import univ, namedtype, constraint
from pyasn1.codec.ber import encoder, decoder
from pyasn1.error import PyAsn1Error
-from pysnmp import debug
-import time
+from pyasn1.compat.octets import null
# USM security params
class UsmSecurityParameters(rfc1155.TypeCoercionHackMixIn, univ.Sequence):
componentType = namedtype.NamedTypes(
namedtype.NamedType('msgAuthoritativeEngineID', univ.OctetString()),
- namedtype.NamedType('msgAuthoritativeEngineBoots', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, 2147483647L))),
- namedtype.NamedType('msgAuthoritativeEngineTime', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, 2147483647L))),
+ namedtype.NamedType('msgAuthoritativeEngineBoots', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, 2147483647))),
+ namedtype.NamedType('msgAuthoritativeEngineTime', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, 2147483647))),
namedtype.NamedType('msgUserName', univ.OctetString().subtype(subtypeSpec=constraint.ValueSizeConstraint(0, 32))),
namedtype.NamedType('msgAuthenticationParameters', univ.OctetString()),
namedtype.NamedType('msgPrivacyParameters', univ.OctetString())
@@ -44,7 +45,7 @@ class SnmpUSMSecurityModel(AbstractSecurityModel):
AbstractSecurityModel.__init__(self)
self.__timeline = {}
self.__timelineExpQueue = {}
- self.__expirationTimer = 0L
+ self.__expirationTimer = 0
def __getUserInfo(
self, mibInstrumController, securityEngineID, securityName
@@ -253,7 +254,7 @@ class SnmpUSMSecurityModel(AbstractSecurityModel):
debug.logger & debug.flagSM and debug.logger('__generateRequestOrResponseMsg: clone user info')
else:
# empty username used for engineID discovery
- usmUserName = usmUserSecurityName = ''
+ usmUserName = usmUserSecurityName = null
usmUserAuthProtocol = usmUserAuthKeyLocalized = None
usmUserPrivProtocol = usmUserPrivKeyLocalized = None
debug.logger & debug.flagSM and debug.logger('__generateRequestOrResponseMsg: use empty USM data')
@@ -509,7 +510,7 @@ class SnmpUSMSecurityModel(AbstractSecurityModel):
# Used for error reporting
contextEngineId = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols('__SNMP-FRAMEWORK-MIB', 'snmpEngineID')[0].syntax
- contextName = ''
+ contextName = null
# 3.2.3
if msgAuthoritativeEngineID not in self.__timeline:
@@ -605,7 +606,7 @@ class SnmpUSMSecurityModel(AbstractSecurityModel):
)
else:
# empty username used for engineID discovery
- usmUserName = usmUserSecurityName = ''
+ usmUserName = usmUserSecurityName = null
usmUserAuthProtocol = usmUserAuthKeyLocalized = None
usmUserPrivProtocol = usmUserPrivKeyLocalized = None
@@ -721,7 +722,7 @@ class SnmpUSMSecurityModel(AbstractSecurityModel):
# 3.2.7a
if msgAuthoritativeEngineID == snmpEngineID:
- if snmpEngineBoots == 2147483647L or \
+ if snmpEngineBoots == 2147483647 or \
snmpEngineBoots != msgAuthoritativeEngineBoots or \
abs(idleTime + int(snmpEngineTime) - \
int(msgAuthoritativeEngineTime)) > 150:
@@ -759,7 +760,7 @@ class SnmpUSMSecurityModel(AbstractSecurityModel):
debug.logger & debug.flagSM and debug.logger('processIncomingMsg: stored timeline msgAuthoritativeEngineBoots %s msgAuthoritativeEngineTime %s for msgAuthoritativeEngineID %s' % (msgAuthoritativeEngineBoots, msgAuthoritativeEngineTime, repr(msgAuthoritativeEngineID)))
# 3.2.7b.2
- if snmpEngineBoots == 2147483647L or \
+ if snmpEngineBoots == 2147483647 or \
msgAuthoritativeEngineBoots < snmpEngineBoots or \
msgAuthoritativeEngineBoots == snmpEngineBoots and \
abs(idleTime + int(snmpEngineTime) - \
@@ -809,8 +810,8 @@ class SnmpUSMSecurityModel(AbstractSecurityModel):
scopedPDU, rest = decoder.decode(
decryptedData, asn1Spec=scopedPduSpec
)
- except PyAsn1Error, why:
- debug.logger & debug.flagSM and debug.logger('processIncomingMsg: scopedPDU decoder failed %s' % why)
+ except PyAsn1Error:
+ debug.logger & debug.flagSM and debug.logger('processIncomingMsg: scopedPDU decoder failed %s' % sys.exc_info()[0])
raise error.StatusInformation(
errorIndication = errind.decryptionError
)