def _buildIoTHubSasToken(self, deviceId, usage):
if usage==self.USAGE_CREATE_DEVICE:
keyValue=self.initialKeyValue
elif usage==self.USAGE_DEVICE_SENDS_MESSAGE:
keyValue=self.currentDeviceKey
else:
keyVale
resourceUri = '%s/devices/%s' % (self.iotHost, deviceId)
targetUri = resourceUri.lower()
expiryTime = self._buildExpiryOn()
toSign = '%s\n%s' % (targetUri, expiryTime)
key = base64.b64decode(keyValue.encode('utf-8'))
signature = urllib.request.pathname2url(
base64.b64encode(
hmac.HMAC(key, toSign.encode('utf-8'), hashlib.sha256).digest()
)
).replace('/', '%2F')
if usage==self.USAGE_CREATE_DEVICE:
return self.TOKEN_FORMAT_WITH_POLICY % (signature, expiryTime, self.initialKeyName, targetUri)
elif usage==self.USAGE_DEVICE_SENDS_MESSAGE:
return self.TOKEN_FORMAT_NO_POLICY % (signature, expiryTime, targetUri)
else:
return None
评论列表
文章目录