def generateAuthBlob(self, nonce): keys = KeyStream.generateKeys(self.credentials[1], nonce) inputKey = KeyStream(keys[2], keys[3]) outputKey = KeyStream(keys[0], keys[1]) #YowCryptLayer.setProp("inputKey", inputKey) nums = bytearray(4) #nums = [0] * 4 username_bytes = list(map(ord, self.credentials[0])) nums.extend(username_bytes) nums.extend(nonce) utcNow = str(int(TimeTools.utcTimestamp())) time_bytes = list(map(ord, utcNow)) nums.extend(time_bytes) encoded = outputKey.encodeMessage(nums, 0, 4, len(nums) - 4) authBlob = "".join(map(chr, encoded)) return (inputKey, outputKey, authBlob)
def generateAuthBlob(self, nonce): keys = KeyStream.generateKeys(self.credentials[1], nonce) currentEnv = YowsupEnv.getCurrent() inputKey = KeyStream(keys[2], keys[3]) outputKey = KeyStream(keys[0], keys[1]) # YowCryptLayer.setProp("inputKey", inputKey) nums = bytearray(4) # nums = [0] * 4 username_bytes = list(map(ord, self.credentials[0])) nums.extend(username_bytes) nums.extend(nonce) utcNow = str(int(TimeTools.utcTimestamp())) time_bytes = list(map(ord, utcNow)) nums.extend(time_bytes) strCat = "\x00\x00\x00\x00\x00\x00\x00\x00" strCat += currentEnv.getOSVersion() + "\x00" strCat += currentEnv.getManufacturer() + "\x00" strCat += currentEnv.getDeviceName() + "\x00" strCat += currentEnv.getBuildVersion() nums.extend(list(map(ord, strCat))) encoded = outputKey.encodeMessage(nums, 0, 4, len(nums) - 4) authBlob = "".join(map(chr, encoded)) return (inputKey, outputKey, authBlob)
def _sendResponse(self,nonce): keys = KeyStream.generateKeys(self.credentials[1], nonce) inputKey = KeyStream(keys[2], keys[3]) outputKey = KeyStream(keys[0], keys[1]) #YowCryptLayer.setProp("inputKey", inputKey) nums = bytearray(4) #nums = [0] * 4 username_bytes = list(map(ord, self.credentials[0])) nums.extend(username_bytes) nums.extend(nonce) utcNow = str(int(TimeTools.utcTimestamp())) time_bytes = list(map(ord, utcNow)) nums.extend(time_bytes) encoded = outputKey.encodeMessage(nums, 0, 4, len(nums) - 4) authBlob = "".join(map(chr, encoded)) responseEntity = ResponseProtocolEntity(authBlob) #to prevent enr whole response self.broadcastEvent(YowLayerEvent(YowCryptLayer.EVENT_KEYS_READY, keys = (inputKey, None))) self.entityToLower(responseEntity) self.broadcastEvent(YowLayerEvent(YowCryptLayer.EVENT_KEYS_READY, keys = (inputKey, outputKey)))
def generateAuthBlob(self, nonce): keys = KeyStream.generateKeys(self.credentials[1], nonce) currentEnv = YowsupEnv.getCurrent() inputKey = KeyStream(keys[2], keys[3]) outputKey = KeyStream(keys[0], keys[1]) #YowCryptLayer.setProp("inputKey", inputKey) nums = bytearray(4) #nums = [0] * 4 username_bytes = list(map(ord, self.credentials[0])) nums.extend(username_bytes) nums.extend(nonce) utcNow = str(int(TimeTools.utcTimestamp())) time_bytes = list(map(ord, utcNow)) nums.extend(time_bytes) strCat = "\x00\x00\x00\x00\x00\x00\x00\x00" strCat += currentEnv.getOSVersion() + "\x00" strCat += currentEnv.getManufacturer() + "\x00" strCat += currentEnv.getDeviceName() + "\x00" strCat += currentEnv.getBuildVersion() nums.extend(list(map(ord, strCat))) encoded = outputKey.encodeMessage(nums, 0, 4, len(nums) - 4) authBlob = "".join(map(chr, encoded)) return (inputKey, outputKey, authBlob)