You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//
// BioAuthCryptoManager.hpp
// BioAuthEngine
//
// Created by yukun.tyk on 5/16/16.
// Copyright © 2016 DTF. All rights reserved.
//
#ifndef BioAuthCryptoManager_hpp
#define BioAuthCryptoManager_hpp
#import <Foundation/Foundation.h>
#include <stdio.h>
#import <functional>
#import <Foundation/NSData.h>
#import <Foundation/NSString.h>
namespace DTF { /**
* 业务加密结果回调 * * @param success: 加密是否成功 * @param cipher: 密文 * @param encryptedKey: RSA公钥加密的AES密钥 */ typedef std::function<void(bool, NSData *, NSData *)> completionCallback; class ToygerCryptoManager{ public: /**
* 1. 随机生成128位AES私钥 * 2. 利用ASE私钥加密业务数据 * 3. 利用RSA公钥加密AES密钥 * * @param content 代价密数据 * @param pubKey RSA公钥 * @param callback 加密成功后callback */ static void mixEncrypt(NSData *content, NSString *pubKey, completionCallback callback); /**
* AES加密 * * @param content 业务数据 * @param aesKey AES密钥 * * @return 密文,失败则返回Nil */ static NSData *AESEncrypt(NSData *content, NSString *aesKey ,NSUInteger value=0); //获取md5值
static NSString *MD5WithData(NSData *data); /**
* AES解密 * * @param content 业务数据 * @param aesKey AES密钥 * * @return 解密后数据,失败则返回Nil */ static NSData *AESDecrypt(NSData *content, NSString *aesKey); /**
* 1024位RSA加密 * * @param content 待加密数据,不得超过128位 * @param pubKey RSA公钥 * * @return 密文,失败返回nil */ static NSData *RSAEncrypt(NSData *content, NSString *pubKey); /**
* 检查数据签名 * * @param content 业务数据 * @param signature 签名信息 * @param pubKey RSA公钥 * * @return 签名是够正确 */ static BOOL checkSign(NSData *content, NSData *signature, NSString *pubKey); /**
* 计算MD5 * * @param str 业务数据 * * @return MD5值 */ static NSString *calculateMD5(NSString *str); /**
* 生成UUID */ static NSString *generateUUID(); // /**
// * RC4编码
// */
// static NSData *RC4Crypt(NSData *data, int code);
// private:
/**
* 生成随机字符串 * * @param len 随机字符串长度,最长32个字节 * * @return 生成的随机字符串 */ static NSString *generateToken(NSInteger len); private: static NSData *stripPublicKeyHeader(NSData *pubKey); static SecKeyRef addPublicKey(NSString *pubKey); }; }
#endif /* BioAuthCryptoManager_hpp */
|