fixed zero boots/time values put into SNMPv3 TRAP
parent
1021d56e1b
commit
34d19a7e77
|
@ -2,6 +2,7 @@
|
||||||
Revision 4.4.5, released 2018-04-XX
|
Revision 4.4.5, released 2018-04-XX
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
|
- Fixed zero SNMPv3 boots/time values put in SNMPv3 TRAP messages
|
||||||
- Fixed broken InetAddressType rendering caused by a pyasn1 regression
|
- Fixed broken InetAddressType rendering caused by a pyasn1 regression
|
||||||
- Fixed typo in RFC1158 module
|
- Fixed typo in RFC1158 module
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ from pysnmp.proto.secmod.rfc3826.priv import aes
|
||||||
from pysnmp.proto.secmod.rfc7860.auth import hmacsha2
|
from pysnmp.proto.secmod.rfc7860.auth import hmacsha2
|
||||||
from pysnmp.proto.secmod.eso.priv import des3, aes192, aes256
|
from pysnmp.proto.secmod.eso.priv import des3, aes192, aes256
|
||||||
from pysnmp.smi.error import NoSuchInstanceError
|
from pysnmp.smi.error import NoSuchInstanceError
|
||||||
from pysnmp.proto import rfc1155, errind, error
|
from pysnmp.proto import rfc1155, rfc3411, errind, error
|
||||||
from pysnmp import debug
|
from pysnmp import debug
|
||||||
from pyasn1.type import univ, namedtype, constraint
|
from pyasn1.type import univ, namedtype, constraint
|
||||||
from pyasn1.codec.ber import encoder, decoder, eoo
|
from pyasn1.codec.ber import encoder, decoder, eoo
|
||||||
|
@ -333,35 +333,40 @@ class SnmpUSMSecurityModel(AbstractSecurityModel):
|
||||||
0, scopedPDU, verifyConstraints=False, matchTags=False, matchConstraints=False
|
0, scopedPDU, verifyConstraints=False, matchTags=False, matchConstraints=False
|
||||||
)
|
)
|
||||||
|
|
||||||
# 3.1.6a
|
snmpEngineBoots = snmpEngineTime = 0
|
||||||
if securityStateReference is None and securityLevel in (2, 3):
|
|
||||||
if securityEngineID in self.__timeline:
|
if securityLevel in (2, 3):
|
||||||
(snmpEngineBoots, snmpEngineTime, latestReceivedEngineTime,
|
pdu = scopedPDU.getComponentByPosition(2).getComponent()
|
||||||
|
|
||||||
|
# 3.1.6.b
|
||||||
|
if pdu.tagSet in rfc3411.unconfirmedClassPDUs:
|
||||||
|
(snmpEngineBoots,
|
||||||
|
snmpEngineTime) = mibBuilder.importSymbols('__SNMP-FRAMEWORK-MIB', 'snmpEngineBoots', 'snmpEngineTime')
|
||||||
|
|
||||||
|
snmpEngineBoots = snmpEngineBoots.syntax
|
||||||
|
snmpEngineTime = snmpEngineTime.syntax.clone()
|
||||||
|
|
||||||
|
debug.logger & debug.flagSM and debug.logger(
|
||||||
|
'__generateRequestOrResponseMsg: read snmpEngineBoots, snmpEngineTime from LCD')
|
||||||
|
|
||||||
|
# 3.1.6a
|
||||||
|
elif securityEngineID in self.__timeline:
|
||||||
|
(snmpEngineBoots,
|
||||||
|
snmpEngineTime,
|
||||||
|
latestReceivedEngineTime,
|
||||||
latestUpdateTimestamp) = self.__timeline[securityEngineID]
|
latestUpdateTimestamp) = self.__timeline[securityEngineID]
|
||||||
|
|
||||||
debug.logger & debug.flagSM and debug.logger(
|
debug.logger & debug.flagSM and debug.logger(
|
||||||
'__generateRequestOrResponseMsg: read snmpEngineBoots, snmpEngineTime from timeline')
|
'__generateRequestOrResponseMsg: read snmpEngineBoots, snmpEngineTime from timeline')
|
||||||
else:
|
|
||||||
# 2.3 XXX is this correct?
|
|
||||||
snmpEngineBoots = snmpEngineTime = 0
|
|
||||||
debug.logger & debug.flagSM and debug.logger(
|
|
||||||
'__generateRequestOrResponseMsg: no timeline for securityEngineID %r' % (securityEngineID,))
|
|
||||||
# 3.1.6.b
|
|
||||||
elif securityStateReference is not None: # XXX Report?
|
|
||||||
(snmpEngineBoots,
|
|
||||||
snmpEngineTime) = mibBuilder.importSymbols('__SNMP-FRAMEWORK-MIB', 'snmpEngineBoots', 'snmpEngineTime')
|
|
||||||
snmpEngineBoots = snmpEngineBoots.syntax
|
|
||||||
snmpEngineTime = snmpEngineTime.syntax.clone()
|
|
||||||
debug.logger & debug.flagSM and debug.logger(
|
|
||||||
'__generateRequestOrResponseMsg: read snmpEngineBoots, snmpEngineTime from LCD')
|
|
||||||
# 3.1.6.c
|
|
||||||
else:
|
|
||||||
snmpEngineBoots = snmpEngineTime = 0
|
|
||||||
debug.logger & debug.flagSM and debug.logger(
|
|
||||||
'__generateRequestOrResponseMsg: assuming zero snmpEngineBoots, snmpEngineTime')
|
|
||||||
|
|
||||||
debug.logger & debug.flagSM and debug.logger(
|
# 3.1.6.c
|
||||||
'__generateRequestOrResponseMsg: use snmpEngineBoots %s snmpEngineTime %s for securityEngineID %r' % (
|
else:
|
||||||
snmpEngineBoots, snmpEngineTime, securityEngineID))
|
debug.logger & debug.flagSM and debug.logger(
|
||||||
|
'__generateRequestOrResponseMsg: assuming zero snmpEngineBoots, snmpEngineTime')
|
||||||
|
|
||||||
|
debug.logger & debug.flagSM and debug.logger(
|
||||||
|
'__generateRequestOrResponseMsg: use snmpEngineBoots %s snmpEngineTime %s for securityEngineID %r' % (
|
||||||
|
snmpEngineBoots, snmpEngineTime, securityEngineID))
|
||||||
|
|
||||||
# 3.1.4a
|
# 3.1.4a
|
||||||
if securityLevel == 3:
|
if securityLevel == 3:
|
||||||
|
|
Loading…
Reference in New Issue