TKCryptor 1.2.0

TKCryptor 1.2.0

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2017 年 3 月

Taras Kalapun 维护。



TKCryptor 1.2.0

  • Taras Kalapun

  • 可进行 AES CCM 加密(无身份验证数据)
  • 能够在 RSA 加密中使用模数和指数
  • 原生 iOS 代码,无需依赖,无需 OpenSSL

使用方法

// generate a unique AES key and (later) encrypt it with the public RSA key of the merchant
NSMutableData *key = [NSMutableData dataWithLength:kCCKeySizeAES256];
SecRandomCopyBytes(NULL, kCCKeySizeAES256, key.mutableBytes);

// generate a nonce
NSMutableData *iv = [NSMutableData dataWithLength:12];
SecRandomCopyBytes(NULL, 12, iv.mutableBytes);

NSData *cipherText = [TKAESCCMCryptor encrypt:data withKey:key iv:iv];
NSData *encryptedKey = [TKRSACryptor encrypt:key withKeyInHex:keyInHex];

或者使用 wrapper 类 TKCryptor 和它的方法

+ (NSString *)encrypt:(NSData *)data publicKeyInHex:(NSString *)keyInHex;

它们执行以下操作

  • 使用生成的 AES256 会话密钥和 IV (12) 使用 AES-CBC 加密数据
  • 使用公钥(使用Keychain)用 RSA 加密会话密钥
  • 返回完全组装的消息格式
    • 一个前缀(""
    • 一个分隔符($
    • RSA 加密的 AES 密钥,base64 编码
    • 一个分隔符($
    • 初始化向量 Iv 和密文 Payload,base64 编码

注意

  • AES 256 密钥
  • 无额外的身份验证数据
  • tagLength = 8
  • ivLength = 12
  • L = 3
  • RSA 根据(SHA1)指纹将证书存储到 Keychain 中
  • keyInHex 格式为 Exponent|Modulus

安装

TKCryptor 可通过 CocoaPods 获得。要安装,只需将以下行添加到 Podfile 中

pod "TKCryptor", :git => "https://github.com/xslim/TKCryptor.git"

作者

许可

TKCryptor 可在 MIT 许可下获得。有关更多信息,请参阅 LICENSE 文件。