diff --git a/pysnmp/debug.py b/pysnmp/debug.py index 6889cd74e..1ec8c7188 100644 --- a/pysnmp/debug.py +++ b/pysnmp/debug.py @@ -5,7 +5,8 @@ # License: https://www.pysnmp.com/pysnmp/license.html # import logging -from pyasn1.compat.octets import octs2ints + + from pysnmp import error from pysnmp import __version__ @@ -129,6 +130,6 @@ def hexdump(octets): return " ".join( [ "{}{:02X}".format(n % 16 == 0 and ("\n%.5d: " % n) or "", x) - for n, x in zip(range(len(octets)), octs2ints(octets)) + for n, x in zip(range(len(octets)), octets) ] ) diff --git a/pysnmp/entity/config.py b/pysnmp/entity/config.py index 37cb50b44..a67aca2e0 100644 --- a/pysnmp/entity/config.py +++ b/pysnmp/entity/config.py @@ -4,7 +4,6 @@ # Copyright (c) 2005-2020, Ilya Etingof # License: https://www.pysnmp.com/pysnmp/license.html # -from pyasn1.compat.octets import null from pysnmp.carrier.asyncio.dgram import udp, udp6, unix from pysnmp.carrier.base import AbstractTransport from pysnmp.entity.engine import SnmpEngine @@ -117,7 +116,7 @@ def addV1System( contextEngineId = snmpEngineID.syntax.clone(contextEngineId) if contextName is None: - contextName = null + contextName = b"" securityName = securityName is not None and securityName or communityIndex @@ -258,7 +257,7 @@ def addV3User( masterAuthKey = localAuthKey = authKey if authKeyType < usmKeyTypeMaster: # pass phrase is given - masterAuthKey = authServices[authProtocol].hashPassphrase(authKey or null) + masterAuthKey = authServices[authProtocol].hashPassphrase(authKey or b"") if authKeyType < usmKeyTypeLocalized: # pass phrase or master key is given localAuthKey = authServices[authProtocol].localizeKey( @@ -275,7 +274,7 @@ def addV3User( if privKeyType < usmKeyTypeMaster: # pass phrase is given masterPrivKey = privServices[privProtocol].hashPassphrase( - authProtocol, privKey or null + authProtocol, privKey or b"" ) if privKeyType < usmKeyTypeLocalized: # pass phrase or master key is given @@ -468,7 +467,7 @@ def addTargetAddr( params: str, timeout: "float | None" = None, retryCount: "int | None" = None, - tagList=null, + tagList=b"", sourceAddress=None, ): mibBuilder = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder @@ -776,7 +775,7 @@ def addVacmUser( readSubTree=(), writeSubTree=(), notifySubTree=(), - contextName=null, + contextName=b"", ): (groupName, securityLevel, readView, writeView, notifyView) = __cookVacmUserInfo( snmpEngine, securityModel, securityName, securityLevel @@ -795,11 +794,11 @@ def addVacmUser( notifyView, ) if readSubTree: - addVacmView(snmpEngine, readView, "included", readSubTree, null) + addVacmView(snmpEngine, readView, "included", readSubTree, b"") if writeSubTree: - addVacmView(snmpEngine, writeView, "included", writeSubTree, null) + addVacmView(snmpEngine, writeView, "included", writeSubTree, b"") if notifySubTree: - addVacmView(snmpEngine, notifyView, "included", notifySubTree, null) + addVacmView(snmpEngine, notifyView, "included", notifySubTree, b"") def delVacmUser( @@ -810,7 +809,7 @@ def delVacmUser( readSubTree=(), writeSubTree=(), notifySubTree=(), - contextName=null, + contextName=b"", ): (groupName, securityLevel, readView, writeView, notifyView) = __cookVacmUserInfo( snmpEngine, securityModel, securityName, securityLevel @@ -830,7 +829,7 @@ def delVacmUser( def addRoUser( - snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=null + snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=b"" ): addVacmUser( snmpEngine, @@ -843,7 +842,7 @@ def addRoUser( def delRoUser( - snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=null + snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=b"" ): delVacmUser( snmpEngine, @@ -856,7 +855,7 @@ def delRoUser( def addRwUser( - snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=null + snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=b"" ): addVacmUser( snmpEngine, @@ -870,7 +869,7 @@ def addRwUser( def delRwUser( - snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=null + snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=b"" ): delVacmUser( snmpEngine, @@ -884,7 +883,7 @@ def delRwUser( def addTrapUser( - snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=null + snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=b"" ): addVacmUser( snmpEngine, @@ -899,7 +898,7 @@ def addTrapUser( def delTrapUser( - snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=null + snmpEngine, securityModel, securityName, securityLevel, subTree, contextName=b"" ): delVacmUser( snmpEngine, diff --git a/pysnmp/entity/engine.py b/pysnmp/entity/engine.py index 3986b6d31..3ff95278c 100644 --- a/pysnmp/entity/engine.py +++ b/pysnmp/entity/engine.py @@ -9,7 +9,6 @@ import sys import tempfile from typing import Any -from pyasn1.compat.octets import str2octs from pysnmp.carrier.base import AbstractTransportAddress, AbstractTransportDispatcher from pysnmp.proto.rfc1902 import OctetString from pysnmp.proto.rfc3412 import MsgAndPduDispatcher @@ -157,7 +156,7 @@ def __init__( try: fd, fn = tempfile.mkstemp(dir=persistentPath) - os.write(fd, str2octs(snmpEngineBoots.syntax.prettyPrint())) + os.write(fd, snmpEngineBoots.syntax.prettyPrint().encode("iso-8859-1")) os.close(fd) shutil.move(fn, f) except Exception: diff --git a/pysnmp/entity/rfc3413/context.py b/pysnmp/entity/rfc3413/context.py index c65584da8..2c2547a6a 100644 --- a/pysnmp/entity/rfc3413/context.py +++ b/pysnmp/entity/rfc3413/context.py @@ -5,7 +5,6 @@ # License: https://www.pysnmp.com/pysnmp/license.html # from pyasn1.type import univ -from pyasn1.compat.octets import null from pysnmp import error from pysnmp import debug @@ -26,7 +25,7 @@ def __init__(self, snmpEngine, contextEngineId=None): f'SnmpContext: contextEngineId "{self.contextEngineId!r}"' ) self.contextNames = { - null: snmpEngine.msgAndPduDsp.mibInstrumController # Default name + b"": snmpEngine.msgAndPduDsp.mibInstrumController # Default name } def registerContextName(self, contextName, mibInstrum=None): @@ -37,7 +36,7 @@ def registerContextName(self, contextName, mibInstrum=None): f"registerContextName: registered contextName {contextName!r}, mibInstrum {mibInstrum!r}" ) if mibInstrum is None: - self.contextNames[contextName] = self.contextNames[null] + self.contextNames[contextName] = self.contextNames[b""] else: self.contextNames[contextName] = mibInstrum @@ -49,7 +48,7 @@ def unregisterContextName(self, contextName): ) del self.contextNames[contextName] - def getMibInstrum(self, contextName=null): + def getMibInstrum(self, contextName=b""): contextName = univ.OctetString(contextName).asOctets() if contextName not in self.contextNames: debug.logger & debug.flagIns and debug.logger( diff --git a/pysnmp/entity/rfc3413/ntforg.py b/pysnmp/entity/rfc3413/ntforg.py index d0f2795fa..73c7df8cc 100644 --- a/pysnmp/entity/rfc3413/ntforg.py +++ b/pysnmp/entity/rfc3413/ntforg.py @@ -5,7 +5,6 @@ # License: https://www.pysnmp.com/pysnmp/license.html # import sys -from pyasn1.compat.octets import null from pysnmp.entity.rfc3413 import config from pysnmp.proto.proxy import rfc2576 from pysnmp.proto import rfc3411 @@ -564,7 +563,7 @@ def _sendNotification( additionalVarBinds=(), cbFun=None, cbCtx=None, - contextName=null, + contextName=b"", instanceIndex=None, ): if self.snmpContext is None: diff --git a/pysnmp/entity/rfc3413/ntfrcv.py b/pysnmp/entity/rfc3413/ntfrcv.py index 73450e9b4..43200b9c9 100644 --- a/pysnmp/entity/rfc3413/ntfrcv.py +++ b/pysnmp/entity/rfc3413/ntfrcv.py @@ -5,7 +5,6 @@ # License: https://www.pysnmp.com/pysnmp/license.html # import sys -from pyasn1.compat.octets import null from pysnmp.proto import rfc3411, error from pysnmp.proto.api import v1, v2c # backend is always SMIv2 compliant from pysnmp.proto.proxy import rfc2576 @@ -22,7 +21,7 @@ class NotificationReceiver: def __init__(self, snmpEngine, cbFun, cbCtx=None): snmpEngine.msgAndPduDsp.registerContextEngineId( - null, self.pduTypes, self.processPdu # '' is a wildcard + b"", self.pduTypes, self.processPdu # '' is a wildcard ) self.__snmpTrapCommunity = "" @@ -38,7 +37,7 @@ def storeSnmpTrapCommunity(snmpEngine, execpoint, variables, cbCtx): ) def close(self, snmpEngine): - snmpEngine.msgAndPduDsp.unregisterContextEngineId(null, self.pduTypes) + snmpEngine.msgAndPduDsp.unregisterContextEngineId(b"", self.pduTypes) self.__cbFun = self.__cbCtx = None def processPdu( diff --git a/pysnmp/entity/rfc3413/oneliner/cmdgen.py b/pysnmp/entity/rfc3413/oneliner/cmdgen.py index abdb59c14..560f8ffa7 100644 --- a/pysnmp/entity/rfc3413/oneliner/cmdgen.py +++ b/pysnmp/entity/rfc3413/oneliner/cmdgen.py @@ -13,7 +13,6 @@ from pysnmp.hlapi.asyncio import sync from pysnmp.hlapi.varbinds import * from pysnmp.hlapi.lcd import * -from pyasn1.compat.octets import null from pyasn1.type import univ __all__ = ["CommandGenerator", "MibVariable"] @@ -37,7 +36,7 @@ def getCmd(self, authData, transportTarget, *varNames, **kwargs): self.snmpEngine, authData, transportTarget, - ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", null)), + ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", b"")), *[(x, self._null) for x in varNames], **kwargs ) @@ -51,7 +50,7 @@ def setCmd(self, authData, transportTarget, *varBinds, **kwargs): self.snmpEngine, authData, transportTarget, - ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", null)), + ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", b"")), *varBinds, **kwargs ) @@ -69,7 +68,7 @@ def nextCmd(self, authData, transportTarget, *varNames, **kwargs): self.snmpEngine, authData, transportTarget, - ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", null)), + ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", b"")), *[(x, self._null) for x in varNames], **kwargs ): @@ -101,7 +100,7 @@ def bulkCmd( self.snmpEngine, authData, transportTarget, - ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", null)), + ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", b"")), nonRepeaters, maxRepetitions, *[(x, self._null) for x in varNames], diff --git a/pysnmp/entity/rfc3413/oneliner/ntforg.py b/pysnmp/entity/rfc3413/oneliner/ntforg.py index e35f34b12..47f6a3368 100644 --- a/pysnmp/entity/rfc3413/oneliner/ntforg.py +++ b/pysnmp/entity/rfc3413/oneliner/ntforg.py @@ -13,7 +13,6 @@ from pysnmp.hlapi.asyncio import sync from pysnmp.hlapi.varbinds import * from pysnmp.hlapi.lcd import * -from pyasn1.compat.octets import null from pysnmp.entity import config from pysnmp.entity.rfc3413 import context @@ -82,7 +81,7 @@ def sendNotification( self.snmpEngine, authData, transportTarget, - ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", null)), + ContextData(kwargs.get("contextEngineId"), kwargs.get("contextName", b"")), notifyType, notificationType.addVarBinds(*varBinds), **kwargs diff --git a/pysnmp/hlapi/auth.py b/pysnmp/hlapi/auth.py index cb80a7908..8f8172856 100644 --- a/pysnmp/hlapi/auth.py +++ b/pysnmp/hlapi/auth.py @@ -6,7 +6,7 @@ # from pysnmp.entity import config from pysnmp import error -from pyasn1.compat.octets import null + __all__ = [ "CommunityData", @@ -113,8 +113,8 @@ class instance. mpModel = 1 # Default is SMIv2 securityModel = mpModel + 1 securityLevel = "noAuthNoPriv" - contextName = null - tag = null + contextName = b"" + tag = b"" def __init__( self, @@ -381,7 +381,7 @@ class instance. securityLevel = "noAuthNoPriv" securityModel = 3 mpModel = 3 - contextName = null + contextName = b"" def __init__( self, diff --git a/pysnmp/hlapi/context.py b/pysnmp/hlapi/context.py index 352c78e6d..babb9fea7 100644 --- a/pysnmp/hlapi/context.py +++ b/pysnmp/hlapi/context.py @@ -4,8 +4,6 @@ # Copyright (c) 2005-2020, Ilya Etingof # License: https://www.pysnmp.com/pysnmp/license.html # -from pyasn1.compat.octets import null - __all__ = ["ContextData"] @@ -46,7 +44,7 @@ class ContextData: """ - def __init__(self, contextEngineId=None, contextName=null): + def __init__(self, contextEngineId=None, contextName=b""): self.contextEngineId = contextEngineId self.contextName = contextName diff --git a/pysnmp/hlapi/lcd.py b/pysnmp/hlapi/lcd.py index ff19ba144..53ce6066b 100644 --- a/pysnmp/hlapi/lcd.py +++ b/pysnmp/hlapi/lcd.py @@ -9,8 +9,6 @@ from pysnmp.entity.engine import SnmpEngine from pysnmp.hlapi.auth import * -from pyasn1.compat.octets import null - from pysnmp.hlapi.transport import AbstractTransportTarget __all__ = ["CommandGeneratorLcdConfigurator", "NotificationOriginatorLcdConfigurator"] @@ -39,7 +37,7 @@ class CommandGeneratorLcdConfigurator(AbstractLcdConfigurator): cacheKeys = ["auth", "parm", "tran", "addr"] def configure( - self, snmpEngine, authData, transportTarget, contextName=null, **options + self, snmpEngine, authData, transportTarget, contextName=b"", **options ): cache = self._getCache(snmpEngine) if isinstance(authData, CommunityData): @@ -128,7 +126,7 @@ def configure( return addrName, paramsName - def unconfigure(self, snmpEngine, authData=None, contextName=null, **options): + def unconfigure(self, snmpEngine, authData=None, contextName=b"", **options): cache = self._getCache(snmpEngine) if authData: if isinstance(authData, CommunityData): @@ -264,7 +262,7 @@ def configure( return notifyName - def unconfigure(self, snmpEngine, authData=None, contextName=null, **options): + def unconfigure(self, snmpEngine, authData=None, contextName=b"", **options): cache = self._getCache(snmpEngine) if authData: authDataKey = ( diff --git a/pysnmp/hlapi/transport.py b/pysnmp/hlapi/transport.py index 49b9799e1..db79db276 100644 --- a/pysnmp/hlapi/transport.py +++ b/pysnmp/hlapi/transport.py @@ -5,7 +5,6 @@ # License: https://www.pysnmp.com/pysnmp/license.html # from typing import Tuple -from pyasn1.compat.octets import null from pysnmp.carrier.base import AbstractTransport, AbstractTransportAddress from pysnmp import error from pysnmp.entity.engine import SnmpEngine @@ -27,7 +26,7 @@ def __init__( transportAddr: Tuple, timeout: float = 1, retries: int = 5, - tagList=null, + tagList=b"", ): self.transportAddr = self._resolveAddr(transportAddr) self.timeout = timeout diff --git a/pysnmp/proto/mpmod/rfc2576.py b/pysnmp/proto/mpmod/rfc2576.py index dbe65f86f..f916a1bbb 100644 --- a/pysnmp/proto/mpmod/rfc2576.py +++ b/pysnmp/proto/mpmod/rfc2576.py @@ -5,10 +5,11 @@ # License: https://www.pysnmp.com/pysnmp/license.html # import sys + + from pyasn1.codec.ber import decoder, eoo from pyasn1.type import univ -from pyasn1.compat.octets import null -from pyasn1.error import PyAsn1Error + from pysnmp.proto.mpmod.base import AbstractMessageProcessingModel from pysnmp.proto import rfc3411, errind, error from pysnmp.proto.api import v1, v2c @@ -65,7 +66,7 @@ def prepareOutgoingMessage( # rfc3412: 7.1.5 if not contextName: - contextName = null + contextName = b"" debug.logger & debug.flagMP and debug.logger( f"prepareOutgoingMessage: using contextEngineId {contextEngineId!r} contextName {contextName!r}" @@ -227,7 +228,7 @@ def prepareResponseMessage( # rfc3412: 7.1.5 if not contextName: - contextName = null + contextName = b"" # rfc3412: 7.1.6 scopedPDU = (contextEngineId, contextName, pdu) diff --git a/pysnmp/proto/rfc3412.py b/pysnmp/proto/rfc3412.py index 94cac0054..e22e59a63 100644 --- a/pysnmp/proto/rfc3412.py +++ b/pysnmp/proto/rfc3412.py @@ -5,8 +5,10 @@ # License: https://www.pysnmp.com/pysnmp/license.html # import sys -from pyasn1.compat.octets import null + + from pyasn1.error import PyAsn1Error + from pysnmp.smi import builder, instrum from pysnmp.proto import errind, error, cache from pysnmp.proto.api import verdec # XXX @@ -103,7 +105,7 @@ def getRegisteredApp(self, contextEngineId, pduType): k = (contextEngineId, pduType) if k in self.__appsRegistration: return self.__appsRegistration[k] - k = (null, pduType) + k = (b"", pduType) if k in self.__appsRegistration: return self.__appsRegistration[k] # wildcard @@ -362,7 +364,7 @@ def receiveMessage(self, snmpEngine, transportDomain, transportAddress, wholeMsg # 4.2.1.2 try: - restOfWholeMsg = null # XXX fix decoder non-recursive return + restOfWholeMsg = b"" # XXX fix decoder non-recursive return msgVersion = verdec.decodeMessageVersion(wholeMsg) except error.ProtocolError: @@ -370,7 +372,7 @@ def receiveMessage(self, snmpEngine, transportDomain, transportAddress, wholeMsg "__SNMPv2-MIB", "snmpInASNParseErrs" # type: ignore ) snmpInASNParseErrs.syntax += 1 - return null # n.b the whole buffer gets dropped + return b"" # n.b the whole buffer gets dropped debug.logger & debug.flagDsp and debug.logger( "receiveMessage: msgVersion %s, msg decoded" % msgVersion diff --git a/pysnmp/proto/secmod/eso/priv/des3.py b/pysnmp/proto/secmod/eso/priv/des3.py index 06448b556..e5e68af8b 100644 --- a/pysnmp/proto/secmod/eso/priv/des3.py +++ b/pysnmp/proto/secmod/eso/priv/des3.py @@ -6,14 +6,8 @@ # import random -try: - from hashlib import md5, sha1 -except ImportError: - import md5 - import sha +from hashlib import md5, sha1 - md5 = md5.new - sha1 = sha.new try: from pysnmpcrypto import des3, PysnmpCryptoError @@ -28,7 +22,7 @@ from pysnmp.proto.secmod.rfc7860.auth import hmacsha2 from pysnmp.proto import errind, error from pyasn1.type import univ -from pyasn1.compat.octets import null + random.seed() diff --git a/pysnmp/proto/secmod/rfc3414/service.py b/pysnmp/proto/secmod/rfc3414/service.py index 6f8e48398..a818c001b 100644 --- a/pysnmp/proto/secmod/rfc3414/service.py +++ b/pysnmp/proto/secmod/rfc3414/service.py @@ -21,7 +21,7 @@ from pyasn1.type import univ, namedtype, constraint from pyasn1.codec.ber import encoder, decoder, eoo from pyasn1.error import PyAsn1Error -from pyasn1.compat.octets import null + # API to rfc1905 protocol objects pMod = api.protoModules[api.protoVersion2c] @@ -494,12 +494,12 @@ def __generateRequestOrResponseMsg( else: # 4. (start SNMP engine ID discovery) - securityEngineID = securityName = null + securityEngineID = securityName = b"" securityLevel = 1 scopedPDU.setComponentByPosition( 0, - null, + b"", verifyConstraints=False, matchTags=False, matchConstraints=False, @@ -533,7 +533,7 @@ def __generateRequestOrResponseMsg( matchConstraints=False, ) - usmUserName = usmUserSecurityName = null + usmUserName = usmUserSecurityName = b"" usmUserAuthProtocol = noauth.NoAuth.serviceID usmUserPrivProtocol = nopriv.NoPriv.serviceID usmUserAuthKeyLocalized = usmUserPrivKeyLocalized = None @@ -955,7 +955,7 @@ def processIncomingMsg( contextEngineId = mibBuilder.importSymbols( "__SNMP-FRAMEWORK-MIB", "snmpEngineID" )[0].syntax - contextName = null + contextName = b"" snmpEngineID = mibBuilder.importSymbols("__SNMP-FRAMEWORK-MIB", "snmpEngineID")[ 0 @@ -1106,7 +1106,7 @@ def processIncomingMsg( raise error.StatusInformation(errorIndication=errind.invalidMsg) else: # empty username used for engineID discovery - usmUserName = usmUserSecurityName = null + usmUserName = usmUserSecurityName = b"" usmUserAuthProtocol = noauth.NoAuth.serviceID usmUserPrivProtocol = nopriv.NoPriv.serviceID usmUserAuthKeyLocalized = usmUserPrivKeyLocalized = None diff --git a/pysnmp/smi/mibs/SNMPv2-TC.py b/pysnmp/smi/mibs/SNMPv2-TC.py index 8c4f98b7b..60287d59c 100644 --- a/pysnmp/smi/mibs/SNMPv2-TC.py +++ b/pysnmp/smi/mibs/SNMPv2-TC.py @@ -10,7 +10,6 @@ from pysnmp.smi.error import * from pysnmp import debug from pyasn1.type import univ -from pyasn1.compat import octets from pyasn1.type.base import Asn1Item OctetString, Integer, ObjectIdentifier = mibBuilder.importSymbols( @@ -109,7 +108,7 @@ def prettyOut(self, value): # override asn1 type method while runningValue and displayHint: # 1 if displayHint[0] == "*": - repeatIndicator = repeatCount = octets.oct2int(runningValue[0]) + repeatIndicator = repeatCount = runningValue[0] displayHint = displayHint[1:] runningValue = runningValue[1:] else: @@ -173,7 +172,7 @@ def prettyOut(self, value): # override asn1 type method while numberString: number <<= 8 try: - number |= octets.oct2int(numberString[0]) + number |= numberString[0] numberString = numberString[1:] except Exception: raise SmiError( @@ -280,20 +279,20 @@ def prettyIn(self, value): # override asn1 type method ): numBase = {"x": 16, "d": 10, "o": 8} numDigits = { - "x": octets.str2octs(string.hexdigits), - "o": octets.str2octs(string.octdigits), - "d": octets.str2octs(string.digits), + "x": string.hexdigits.encode("iso-8859-1"), + "o": string.octdigits.encode("iso-8859-1"), + "d": string.digits.encode("iso-8859-1"), } # how do we know if object is initialized with display-hint # formatted text? based on "text" input maybe? # That boils down to `str` object on Py3 or `unicode` on Py2. - if octets.isStringType(value) and not octets.isOctetsType(value): + if isinstance(value, str) and not isinstance(value, bytes): value = base.prettyIn(self, value) else: return base.prettyIn(self, value) - outputValue = octets.str2octs("") + outputValue = b"" runningValue = value displayHint = self.displayHint @@ -345,7 +344,7 @@ def prettyIn(self, value): # override asn1 type method elif displayFormat in numBase: if displaySep: guessedOctetLength = runningValue.find( - octets.str2octs(displaySep) + displaySep.encode("iso-8859-1") ) if guessedOctetLength == -1: guessedOctetLength = len(runningValue) @@ -359,7 +358,7 @@ def prettyIn(self, value): # override asn1 type method try: num = int( - octets.octs2str(runningValue[:guessedOctetLength]), + runningValue[:guessedOctetLength].decode("iso-8859-1"), numBase[displayFormat], ) except Exception: @@ -381,7 +380,7 @@ def prettyIn(self, value): # override asn1 type method num_as_bytes.reverse() - outputValue += octets.ints2octs(num_as_bytes) + outputValue += bytes(num_as_bytes) if displaySep: guessedOctetLength += 1 diff --git a/pysnmp/smi/mibs/SNMPv2-TM.py b/pysnmp/smi/mibs/SNMPv2-TM.py index e35856ee1..8c65d4917 100644 --- a/pysnmp/smi/mibs/SNMPv2-TM.py +++ b/pysnmp/smi/mibs/SNMPv2-TM.py @@ -18,7 +18,6 @@ inet_ntop = lambda x, y: inet_ntoa(y) inet_pton = lambda x, y: inet_aton(y) -from pyasn1.compat.octets import int2oct, oct2int (OctetString,) = mibBuilder.importSymbols("ASN1", "OctetString") ( @@ -93,8 +92,8 @@ def prettyIn(self, value): # Wild hack -- need to implement TextualConvention.prettyIn value = ( inet_pton(AF_INET, value[0]) - + int2oct((value[1] >> 8) & 0xFF) - + int2oct(value[1] & 0xFF) + + bytes((((value[1] >> 8) & 0xFF),)) + + bytes(((value[1] & 0xFF),)) ) return OctetString.prettyIn(self, value) @@ -104,7 +103,7 @@ def __asSocketAddress(self): v = self.asOctets() self.__tuple_value = ( inet_ntop(AF_INET, v[:4]), - oct2int(v[4]) << 8 | oct2int(v[5]), + v[4] << 8 | v[5], ) return self.__tuple_value diff --git a/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py b/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py index 1155777e4..ae5782029 100644 --- a/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py +++ b/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py @@ -11,7 +11,6 @@ # Using Python version 3.4.2 (v3.4.2:ab2c023a9432, Oct 5 2014, 20:42:22) # -from pyasn1.compat.octets import int2oct, oct2int from pysnmp import error from pysnmp.carrier import sockfix import socket @@ -358,8 +357,8 @@ def prettyIn(self, value): # Wild hack -- need to implement TextualConvention.prettyIn value = ( inet_pton(socket.AF_INET, value[0]) - + int2oct((value[1] >> 8) & 0xFF) - + int2oct(value[1] & 0xFF) + + bytes((((value[1] >> 8) & 0xFF),)) + + bytes(((value[1] & 0xFF),)) ) return OctetString.prettyIn(self, value) @@ -369,7 +368,7 @@ def __asSocketAddress(self): v = self.asOctets() self.__tuple_value = ( inet_ntop(socket.AF_INET, v[:4]), - oct2int(v[4]) << 8 | oct2int(v[5]), + v[4] << 8 | v[5], ) return self.__tuple_value @@ -393,8 +392,8 @@ def prettyIn(self, value): if isinstance(value, tuple): value = ( inet_pton(socket.AF_INET6, value[0]) - + int2oct((value[1] >> 8) & 0xFF) - + int2oct(value[1] & 0xFF) + + bytes((((value[1] >> 8) & 0xFF),)) + + bytes(((value[1] & 0xFF),)) ) return OctetString.prettyIn(self, value) @@ -406,7 +405,7 @@ def __asSocketAddress(self): v = self.asOctets() self.__tuple_value = ( inet_ntop(socket.AF_INET6, v[:16]), - oct2int(v[16]) << 8 | oct2int(v[17]), + v[16] << 8 | v[17], 0, # flowinfo 0, ) # scopeid