diff --git a/pyghmi/ipmi/private/session.py b/pyghmi/ipmi/private/session.py index 41ce54aa..7745c131 100644 --- a/pyghmi/ipmi/private/session.py +++ b/pyghmi/ipmi/private/session.py @@ -583,6 +583,9 @@ class Session(object): self.confalgo = 0 self.aeskey = None self.integrityalgo = 0 + self.attemptedhash = 256 + self.currhashlib = None + self.currhashlen = 0 self.k1 = None self.rmcptag = 1 self.lastpayload = None @@ -905,7 +908,7 @@ class Session(object): # specification followed message += hmac.new(self.k1, bytes(message[4:]), - hashlib.sha1).digest()[:12] # SHA1-96 + self.currhashlib).digest()[:self.currhashlen] # per RFC2404 truncates to 96 bits self.netpacket = message # advance idle timer since we don't need keepalive while sending @@ -1049,13 +1052,28 @@ class Session(object): 0, 0, # reserved ]) data += struct.pack("