Просмотр исходного кода

修改了一型一密加密过程

zhaihaoyu 2 лет назад
Родитель
Сommit
65e51ca00c
2 измененных файлов с 11 добавлено и 11 удалено
  1. 0 6
      demo/aliyun/main.lua
  2. 11 5
      script/libs/aliyun.lua

+ 0 - 6
demo/aliyun/main.lua

@@ -3,12 +3,6 @@ VERSION = "1.0.0"
 local sys = require "sys"
 require "aliyun"
 
--- Air780E的AT固件默认会为开机键防抖, 导致部分用户刷机很麻烦
-if rtos.bsp() == "EC618" and pm and pm.PWK_MODE then
-    pm.power(pm.PWK_MODE, false)
-end
-
-
 --根据自己的服务器修改以下参数
 tPara = {
  Registration = false,           --是否是预注册 已预注册为false  true or false,

+ 11 - 5
script/libs/aliyun.lua

@@ -72,7 +72,8 @@ local function procSend(client)
 end
 
 --二次连接
-local function clientDataTask(ClientId,user,PassWord,mqtt_host,mqtt_port,mqtt_isssl,DeviceName,ProductKey)
+-- local function clientDataTask(ClientId,user,PassWord,mqtt_host,mqtt_port,mqtt_isssl,DeviceName,ProductKey)
+local function clientDataTask(DeviceName,ProductKey,mqtt_host,mqtt_port,mqtt_isssl)
     Key = ProductKey
     Dname = DeviceName
     sys.taskInit(function()
@@ -80,8 +81,12 @@ local function clientDataTask(ClientId,user,PassWord,mqtt_host,mqtt_port,mqtt_is
             sys.waitUntil("IP_READY",30000)
         end
         if mobile.status() == 1 then
-            local mqttc = mqtt.create(nil,mqtt_host,mqtt_port,mqtt_isssl)  --客户端创建
-            mqttc:auth(ClientId,user,PassWord) --三元组配置
+            local client_id,user_name,password = iotauth.aliyun(ProductKey,DeviceName,SetDeviceSecretFnc)
+            mqttc = mqtt.create(nil,mqtt_host, mqtt_port,mqtt_isssl)  --mqtt客户端创建
+            mqttc:auth(client_id,user_name,password) --mqtt三元组配置
+
+            -- local mqttc = mqtt.create(nil,mqtt_host,mqtt_port,mqtt_isssl)  --客户端创建
+            -- mqttc:auth(ClientId,user,PassWord) --三元组配置
             mqttc:keepalive(30) -- 默认值240s
             mqttc:autoreconn(true, 3000) -- 自动重连机制
             mqttc:connect()
@@ -117,7 +122,7 @@ end
 --根据返回的数据进行二次加密
 local function directProc(DeviceName,ProductKey,mqtt_host,mqtt_port,mqtt_isssl,Registration)
     if not Registration then
-        local ClientId = DeviceName.."|securemode=2,signmethod=hmacmd5,timestamp=789|"
+        local ClientId = DeviceName.."|securemode=3,signmethod=hmacmd5,timestamp=789|"
         local UserName = DeviceName.."&"..ProductKey
         
         local content = "ClientId"..DeviceName.."deviceName"..DeviceName.."productKey"..ProductKey.."timestamp789"
@@ -166,7 +171,8 @@ local function clientEncryptionTask(Registration,DeviceName,ProductKey,ProductSe
                                 
                                 SetDeviceSecretFnc = tJsonDecode["deviceSecret"]
                                 mqttClient:disconnect()
-                                directProc(DeviceName,ProductKey,mqtt_host,mqtt_port,mqtt_isssl,Registration)
+                                -- directProc(DeviceName,ProductKey,mqtt_host,mqtt_port,mqtt_isssl,Registration)
+                                clientDataTask(DeviceName,ProductKey,mqtt_host,mqtt_port,mqtt_isssl)
                             end
                         else
                              --免预注册