def readKmsResponseV4(data, request): response = kmsRequestV4.ResponseV4(data) hashed = kmsRequestV4(data, clt_config).generateHash( bytearray(enco(str(response['response']), 'latin-1'))) if deco(hashed, 'latin-1') == response['hash']: loggerclt.info("Response Hash has expected value !") return response
def createKmsRequest(): # Update the call ID clt_config['call_id'] += 1 # KMS Protocol Major Version if clt_config['KMSProtocolMajorVersion'] == 4: handler = kmsRequestV4(None, clt_config) elif clt_config['KMSProtocolMajorVersion'] == 5: handler = kmsRequestV5(None, clt_config) elif clt_config['KMSProtocolMajorVersion'] == 6: handler = kmsRequestV6(None, clt_config) else: return None requestBase = createKmsRequestBase() return handler.generateRequest(requestBase)
def generateKmsResponseData(data, srv_config): version = kmsBase.GenericRequestHeader(data)['versionMajor'] currentDate = time.strftime("%a %b %d %H:%M:%S %Y") if version == 4: loggersrv.info("Received V%d request on %s." % (version, currentDate)) messagehandler = pykms_RequestV4.kmsRequestV4(data, srv_config) elif version == 5: loggersrv.info("Received V%d request on %s." % (version, currentDate)) messagehandler = pykms_RequestV5.kmsRequestV5(data, srv_config) elif version == 6: loggersrv.info("Received V%d request on %s." % (version, currentDate)) messagehandler = pykms_RequestV6.kmsRequestV6(data, srv_config) else: loggersrv.info("Unhandled KMS version V%d." % version) messagehandler = pykms_RequestUnknown.kmsRequestUnknown(data, srv_config) return messagehandler.executeRequestLogic()