1#
2# This file is part of pysnmp software.
3#
4# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
5# License: http://snmplabs.com/pysnmp/license.html
6#
7from pysnmp.proto.secmod import cache
8from pysnmp.proto import error
9
10
11class AbstractSecurityModel(object):
12    securityModelID = None
13
14    def __init__(self):
15        self._cache = cache.Cache()
16
17    def processIncomingMsg(self, snmpEngine, messageProcessingModel,
18                           maxMessageSize, securityParameters,
19                           securityModel, securityLevel, wholeMsg, msg):
20        raise error.ProtocolError('Security model %s not implemented' % self)
21
22    def generateRequestMsg(self, snmpEngine, messageProcessingModel,
23                           globalData, maxMessageSize, securityModel,
24                           securityEngineID, securityName, securityLevel,
25                           scopedPDU):
26        raise error.ProtocolError('Security model %s not implemented' % self)
27
28    def generateResponseMsg(self, snmpEngine, messageProcessingModel,
29                            globalData, maxMessageSize, securityModel,
30                            securityEngineID, securityName, securityLevel,
31                            scopedPDU, securityStateReference):
32        raise error.ProtocolError('Security model %s not implemented' % self)
33
34    def releaseStateInformation(self, stateReference):
35        self._cache.pop(stateReference)
36
37    def receiveTimerTick(self, snmpEngine, timeNow):
38        pass
39