JXMsgUtil.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //
  2. // JXMsgUtil.h
  3. // shiku_im
  4. //
  5. // Created by p on 2019/7/31.
  6. // Copyright © 2019 Reese. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. @interface JXMsgUtil : NSObject
  11. @property (nonatomic, strong) NSMutableDictionary *verifyFailedDic; // 存储验签失败消息
  12. @property (nonatomic,strong) NSMutableArray *getDHListIds; // 用户如果正在调用获取公钥列表接口,将用户userId存入此数组,做标志位
  13. /**
  14. DH私钥PEM
  15. */
  16. @property (strong, nonatomic) NSString *dhPrivatePem; // pem格式
  17. @property (strong, nonatomic) NSString *dhPrivateKey; // 普通格式
  18. /**
  19. DH公钥PEM
  20. */
  21. @property (strong, nonatomic) NSString *dhPublicPem; // pem格式
  22. @property (strong, nonatomic) NSString *dhPublicKey; // 普通格式
  23. // RSA公私钥
  24. @property (strong, nonatomic) NSString *rsaPrivateKey; // RSA私钥
  25. @property (strong, nonatomic) NSString *rsaPublicKey; // RSA公钥
  26. + (instancetype)sharedManager;
  27. // 生成DH秘钥对
  28. - (void) generatekeyPairsDH;
  29. // 生成群组使用的RSA秘钥对
  30. - (void) generatekeyPairsRSA;
  31. // 获取对称秘钥S
  32. - (NSData *)getMsgContentKeyWithMsgId:(NSString *)msgId key:(NSString *)key;
  33. // 获取存储本地数据库aes加密后的content
  34. - (NSString *)encryptInsertChatMsgContent:(NSString *)content msgId:(NSString *)msgId;
  35. - (NSString *)decryptInsertChatMsgContent:(NSString *)content msgId:(NSString *)msgId;
  36. // 获取单聊消息验参
  37. - (NSString *)getChatMsgMacWithContent:(NSString *)content fromUserId:(NSString *)fromUserId toUserId:(NSString *)toUserId isEncrypt:(NSInteger)isEncrypt msgId:(NSString *)msgId publicKey:(NSString *)publicKey ;
  38. // 获取群聊存储本地数据库aes加密后的对称秘钥
  39. - (NSString *)encryptRoomMsgKey:(NSString *)roomJid randomKey:(NSString *)randomKey;
  40. - (NSString *)decryptRoomMsgKey:(NSString *)roomJid randomKey:(NSString *)randomKey;
  41. // 获取群聊消息验参
  42. - (NSString *)getRoomMsgMacWithContent:(NSString *)content fromUserId:(NSString *)fromUserId isEncrypt:(NSInteger)isEncrypt msgId:(NSString *)msgId randomKey:(NSString *)randomKey;
  43. // 单聊发消息加密
  44. - (NSString *)encryptContentWithPublicKey:(NSString *)publicKey content:(NSString *)content msgId:(NSString *)msgId;
  45. // 单聊发消息解密
  46. - (NSString *)decryptContentWithPublicKey:(NSString *)publicKey content:(NSString *)content msgId:(NSString *)msgId;
  47. // 群聊消息加密
  48. - (NSString *)encryptRoomContentWithUser:(JXUserObject *)user content:(NSString *)content;
  49. // 群聊消息解密
  50. - (NSString *)decryptRoomContentWithUser:(JXUserObject *)user content:(NSString *)content;
  51. // 获取好友公钥list
  52. - (void)getDHPublicKeyWithUserId:(NSString *)userId;
  53. // 获取群组的消息秘钥
  54. - (void)getChatKeyGroupWithRoomId:(NSString *)roomId;
  55. #pragma mark - 群组
  56. //
  57. @end
  58. NS_ASSUME_NONNULL_END