1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- //
- // JXSecurityUtil.h
- // shiku_im
- //
- // Created by p on 2019/7/10.
- // Copyright © 2019 Reese. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- NS_ASSUME_NONNULL_BEGIN
- @interface JXSecurityUtil : NSObject
- @property (nonatomic, strong) NSString *privateAesStr;
- @property (nonatomic) SecKeyRef publicKeyRef;
- @property (nonatomic) SecKeyRef privateKeyRef;
- @property (nonatomic, strong) NSString *privateAesStrDH;
- @property (nonatomic) SecKeyRef publicKeyRefDH;
- @property (nonatomic) SecKeyRef privateKeyRefDH;
- + (instancetype)sharedManager;
- #pragma mark ---------RSA---------
- // RSA生成秘钥对
- - (void)generateKeyPairRSA;
- // RSA获取私钥
- - (SecKeyRef)getRSAPrivateKey;
- // RSA根据私钥获取公钥
- - (SecKeyRef)getRSAPublicKeyWithPrivateKey:(SecKeyRef)privateKey;
- // 获取公钥base64
- - (NSString *)getRSAPublicKeyAsBase64;
- // 获取私钥base64
- - (NSString *)getRSAPrivateKeyAsBase64;
- //根据base64字符串获取秘钥
- - (SecKeyRef)getRSAKeyWithBase64Str:(NSString *)base64Str isPrivateKey:(BOOL)isPrivateKey;
- // 公钥转换成JAVA可用的base64
- - (NSString *)getRSAPublicKeyAsBase64ForJavaServer;
- // 根据通用的key 转换为iOS秘钥base64字符串
- - (NSString *)getKeyForJavaServer:(NSData*)keyBits;
- // JAVA可用base64秘钥字符串转iOS秘钥字符串
- - (NSString *)getPublicKeyFromJavaServer:(NSString *)keyAsBase64;
- // 将key转data
- - (NSData *)getKeyBitsFromKey:(SecKeyRef)Key;
- // RSA加密
- - (NSData *)encryptMessageRSA:(NSData *)msgData;
- - (NSData *)encryptMessageRSA:(NSData *)msgData withPublicKey:(SecKeyRef)publicKey;
- // RSA解密
- - (NSData *)decryptMessageRSA:(NSData *)msgData;
- - (NSData *)decryptMessageRSA:(NSData *)msgData withPrivateKey:(SecKeyRef)privateKey;
- // 获取签名
- - (NSString *)getSignWithRSA:(NSString *)string withPriKey:(SecKeyRef)priKey;
- #pragma mark ---------DH---------
- // DH生成秘钥对
- - (void)generateKeyPairDH;
- // DH获取私钥
- - (SecKeyRef)getDHPrivateKey;
- // DH根据私钥获取公钥
- - (SecKeyRef)getDHPublicKeyWithPrivateKey;
- // 获取共享秘钥
- - (NSData *) getSharedWithPrivateKey:(SecKeyRef)privateKey publicKey:(SecKeyRef)publicKey;
- // 获取公钥base64
- - (NSString *)getDHPublicKeyAsBase64;
- // 获取私钥base64
- - (NSString *)getDHPrivateKeyAsBase64;
- //根据base64字符串获取秘钥
- - (SecKeyRef)getDHKeyWithBase64Str:(NSString *)base64Str isPrivateKey:(BOOL)isPrivateKey;
- // 公钥转换成JAVA可用的base64
- - (NSString *)getDHPublicKeyAsBase64ForJavaServer;
- // 获取mac值(HMACMD5算法)
- - (NSData *)getHMACMD5:(NSData *)data key:(NSData *)keyData;
- @end
- NS_ASSUME_NONNULL_END
|