// // JXMsgUtil.h // shiku_im // // Created by p on 2019/7/31. // Copyright © 2019 Reese. All rights reserved. // #import NS_ASSUME_NONNULL_BEGIN @interface JXMsgUtil : NSObject @property (nonatomic, strong) NSMutableDictionary *verifyFailedDic; // 存储验签失败消息 @property (nonatomic,strong) NSMutableArray *getDHListIds; // 用户如果正在调用获取公钥列表接口,将用户userId存入此数组,做标志位 /** DH私钥PEM */ @property (strong, nonatomic) NSString *dhPrivatePem; // pem格式 @property (strong, nonatomic) NSString *dhPrivateKey; // 普通格式 /** DH公钥PEM */ @property (strong, nonatomic) NSString *dhPublicPem; // pem格式 @property (strong, nonatomic) NSString *dhPublicKey; // 普通格式 // RSA公私钥 @property (strong, nonatomic) NSString *rsaPrivateKey; // RSA私钥 @property (strong, nonatomic) NSString *rsaPublicKey; // RSA公钥 + (instancetype)sharedManager; // 生成DH秘钥对 - (void) generatekeyPairsDH; // 生成群组使用的RSA秘钥对 - (void) generatekeyPairsRSA; // 获取对称秘钥S - (NSData *)getMsgContentKeyWithMsgId:(NSString *)msgId key:(NSString *)key; // 获取存储本地数据库aes加密后的content - (NSString *)encryptInsertChatMsgContent:(NSString *)content msgId:(NSString *)msgId; - (NSString *)decryptInsertChatMsgContent:(NSString *)content msgId:(NSString *)msgId; // 获取单聊消息验参 - (NSString *)getChatMsgMacWithContent:(NSString *)content fromUserId:(NSString *)fromUserId toUserId:(NSString *)toUserId isEncrypt:(NSInteger)isEncrypt msgId:(NSString *)msgId publicKey:(NSString *)publicKey ; // 获取群聊存储本地数据库aes加密后的对称秘钥 - (NSString *)encryptRoomMsgKey:(NSString *)roomJid randomKey:(NSString *)randomKey; - (NSString *)decryptRoomMsgKey:(NSString *)roomJid randomKey:(NSString *)randomKey; // 获取群聊消息验参 - (NSString *)getRoomMsgMacWithContent:(NSString *)content fromUserId:(NSString *)fromUserId isEncrypt:(NSInteger)isEncrypt msgId:(NSString *)msgId randomKey:(NSString *)randomKey; // 单聊发消息加密 - (NSString *)encryptContentWithPublicKey:(NSString *)publicKey content:(NSString *)content msgId:(NSString *)msgId; // 单聊发消息解密 - (NSString *)decryptContentWithPublicKey:(NSString *)publicKey content:(NSString *)content msgId:(NSString *)msgId; // 群聊消息加密 - (NSString *)encryptRoomContentWithUser:(JXUserObject *)user content:(NSString *)content; // 群聊消息解密 - (NSString *)decryptRoomContentWithUser:(JXUserObject *)user content:(NSString *)content; // 获取好友公钥list - (void)getDHPublicKeyWithUserId:(NSString *)userId; // 获取群组的消息秘钥 - (void)getChatKeyGroupWithRoomId:(NSString *)roomId; #pragma mark - 群组 // @end NS_ASSUME_NONNULL_END