修复录音模式下鉴权失败bug
authorliangzhenying <867174124@qq.com>
Thu, 13 Jun 2024 09:46:14 +0000 (17:46 +0800)
committerliangzhenying <867174124@qq.com>
Thu, 13 Jun 2024 09:46:14 +0000 (17:46 +0800)
Document/MouseSdk文档/阿里鉴权流程.pdf [moved from Document/MouseSdk文档/鉴权流程.pdf with 100% similarity]
MouseSdk/AiMouseSdk/AiMouseSdk/AiDeviceInfoManager.m
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseSdk.m
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseTools.h
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseTools.m
MouseSdk/AiMouseSdk/AiMouseSdk/AiMouseTools2.h
MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate

index 706d610..c614aad 100644 (file)
 - (void)setCmdCallBack:(NSDictionary *)dict sender:(AiSender *)sender{
     if([dict[kSetCmd_Value] intValue] == 1){
         if ([sender.sendDict objectForKey:kSetCPI_Key]) {
-            self.setCPIBlock(true, nil);
+            if(self.setCPIBlock)self.setCPIBlock(true, nil);
             return;
         }
         if ([sender.sendDict objectForKey:kSetBrand_Key]) {
-            self.setBrandBlock(true, nil);
+            if(self.setBrandBlock)self.setBrandBlock(true, nil);
             return;
         }
         if([sender.sendDict objectForKey:kSetDeviceSecret_Key]){
-            self.setDsBlock(true);
+            if(self.setDsBlock)self.setDsBlock(true);
             return;
         }
         if([sender.sendDict objectForKey:kSetRecordMode_Key]){
-            self.setRecordModeBlock(true, nil);
+            if(self.setRecordModeBlock)self.setRecordModeBlock(true, nil);
             return;
         }
         if([sender.sendDict objectForKey:kSetUrl_Key]){
-            self.setUrlBlock(true, nil);
+            if(self.setUrlBlock)self.setUrlBlock(true, nil);
             return;
         }
         if([sender.sendDict objectForKey:kSetUrlActive_Key]){
-            self.setUrlActiveBlock(true, nil);
+            if(self.setUrlActiveBlock)self.setUrlActiveBlock(true, nil);
             return;
         }
         if([sender.sendDict objectForKey:kSetMouseModel_Key]){
-            self.setMouseModelBlock(true, nil);
+            if(self.setMouseModelBlock)self.setMouseModelBlock(true, nil);
             return;
         }
         if ([[sender.sendDict objectForKey:kCmd_Key] isKindOfClass:[NSString class]] && [[sender.sendDict objectForKey:kCmd_Key] isEqualTo:@"open_record"]){
     else{
         NSError *err = [NSError errorWithDomain:@"AiMouse SDK Error" code:AiMouseErrorCode_unknown userInfo:@{@"NSLocalizedDescriptionKey":@"请求失败"}];
         if ([sender.sendDict objectForKey:kSetCPI_Key]) {
-            self.setCPIBlock(false, err);
+            if(self.setCPIBlock)self.setCPIBlock(false, err);
             return;
         }
         if ([sender.sendDict objectForKey:kSetBrand_Key]) {
-            self.setBrandBlock(false, err);
+            if(self.setBrandBlock)self.setBrandBlock(false, err);
             return;
         }
         if ([sender.sendDict objectForKey:kSetDeviceSecret_Key]){
-            self.setDsBlock(false);
+            if(self.setDsBlock)self.setDsBlock(false);
             return;
         }
         if([sender.sendDict objectForKey:kSetRecordMode_Key]){
-            self.setRecordModeBlock(false, err);
+            if(self.setRecordModeBlock)self.setRecordModeBlock(false, err);
             return;
         }
         if([sender.sendDict objectForKey:kSetUrl_Key]){
-            self.setUrlBlock(false, err);
+            if(self.setUrlBlock)self.setUrlBlock(false, err);
             return;
         }
         if([sender.sendDict objectForKey:kSetUrlActive_Key]){
-            self.setUrlActiveBlock(false, err);
+            if(self.setUrlActiveBlock)self.setUrlActiveBlock(false, err);
             return;
         }
         if([sender.sendDict objectForKey:kSetMouseModel_Key]){
-            self.setMouseModelBlock(false, err);
+            if(self.setMouseModelBlock)self.setMouseModelBlock(false, err);
             return;
         }
         if ([[sender.sendDict objectForKey:kCmd_Key] isKindOfClass:[NSString class]] && [[sender.sendDict objectForKey:kCmd_Key] isEqualTo:@"open_record"]){
     
     NSError *err = [NSError errorWithDomain:@"AiMouse SDK Error" code:AiMouseErrorCode_timeOut userInfo:@{@"NSLocalizedDescriptionKey":@"请求超时"}];
     if ([sender.sendDict objectForKey:kSetCPI_Key]) {
-        self.setCPIBlock(false, err);
+        if(self.setCPIBlock)self.setCPIBlock(false, err);
         return;
     }
     if ([sender.sendDict objectForKey:kSetBrand_Key]) {
-        self.setBrandBlock(false, err);
+        if(self.setBrandBlock)self.setBrandBlock(false, err);
         return;
     }
     if ([sender.sendDict objectForKey:kSetDeviceSecret_Key]){
-        self.setDsBlock(false);
+        if(self.setDsBlock)self.setDsBlock(false);
         return;
     }
     if([sender.sendDict objectForKey:kSetRecordMode_Key]){
-        self.setRecordModeBlock(false, err);
+        if(self.setRecordModeBlock)self.setRecordModeBlock(false, err);
         return;
     }
     if([sender.sendDict objectForKey:kSetUrl_Key]){
-        self.setUrlBlock(false, err);
+        if(self.setUrlBlock)self.setUrlBlock(false, err);
         return;
     }
     if([sender.sendDict objectForKey:kSetUrlActive_Key]){
-        self.setUrlActiveBlock(false, err);
+        if(self.setUrlActiveBlock)self.setUrlActiveBlock(false, err);
         return;
     }
     if([sender.sendDict objectForKey:kSetMouseModel_Key]){
-        self.setMouseModelBlock(false, err);
+        if(self.setMouseModelBlock)self.setMouseModelBlock(false, err);
         return;
     }
     if ([cmd isEqualTo:@"open_record"]){
index 66decb0..4b23745 100644 (file)
@@ -64,7 +64,7 @@
 }
 
 -(NSString *)version{
-    return @"1.0.29";
+    return @"1.0.30";
 }
 
 -(AiDeviceInfoManager *)deviceInfoManager{
     
     if (self.authState != AiMouseAuthState_Success){
         [self showLog:@"设备还未鉴权!!!"];
+        [self checkAuthState];
         return;
     }
     if(self.connectType == AiMouseConnectType_hid){
     [self showLog:[NSString stringWithFormat:@"[receive][device] %@",data]];
     if (self.connected == false) {
         if([AiMouseTools dataToHexString:data].length < 10){
-            if (self.delegate) [self.delegate hidDataError];
+            if (self.delegate && [self.delegate respondsToSelector:@selector(hidDataError)]) [self.delegate hidDataError];
             return;
         }
     }
 //        [self showLog:@"设备还未鉴权!!!"];
 //        return;
 //    };
-    [self showLog:[NSString stringWithFormat:@"[audio] %@",data]];
+//    [self showLog:[NSString stringWithFormat:@"[audio] %@",data]];
     if (self.delegate)  [self.delegate aiMouseSendRecordData:data];
 }
 - (void)sendCmdData:(NSData *)data{
     });
 }
 - (void)showLog:(NSString *)log{
-    if (self.delegate) {
+    if (self.delegate && [self.delegate respondsToSelector:@selector(aiMouseAddLog:)]) {
         [self.delegate aiMouseAddLog:log];
     }
     if(self.logLevel == AiMouseLogLevel_info){
     }
     _connected = connected;
     if([self.delegate respondsToSelector:@selector(aiMouseConnectStateDidChange:)]) [self.delegate aiMouseConnectStateDidChange:connected];
-//    [self showLog:[NSString stringWithFormat:@"状态改变 = %@",@(connected)]];
-    
-//    [self checkAuthState];
 }
 -(void)aiConnectManagerReSendData:(AiConnectManager *)manager{
     __weak typeof(self) ws = self;
index f2c12bf..ee45155 100644 (file)
@@ -31,6 +31,8 @@ NS_ASSUME_NONNULL_BEGIN
 + (NSString *)stringTomd5:(NSString *)str;
 
 + (NSString *)stringToHmacSha1:(NSString*)key text:(NSString*)text;
+
++ (NSString *)MD5ForUpper32:(NSString *)str;
 @end
 
 NS_ASSUME_NONNULL_END
index ac44f26..189985d 100644 (file)
     hash = output;
     return hash;
 }
+
++ (NSString *)MD5ForUpper32:(NSString *)str {
+    const char* input = [str UTF8String];
+    unsigned char result[CC_MD5_DIGEST_LENGTH];
+    CC_MD5(input, (CC_LONG)strlen(input), result);
+    // 'CC_MD5' is deprecated: first deprecated in iOS 13.0 - This function is cryptographically broken and should not be used in security contexts. Clients should migrate to SHA256 (or stronger).
+    NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
+    for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
+        [digest appendFormat:@"%02X", result[i]];
+    }
+    
+    return digest;
+}
 @end
 
index 99393e4..11e0ec0 100644 (file)
@@ -12,6 +12,7 @@ NS_ASSUME_NONNULL_BEGIN
 @interface AiMouseTools2 : NSObject
 
 + (NSString *)fixDeviceData:(NSString *)str;
+
 @end
 
 NS_ASSUME_NONNULL_END
index 4c03716..4741d5a 100644 (file)
Binary files a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate differ