RSACryptor.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //
  2. // RSACryptor.h
  3. //
  4. #import <Foundation/Foundation.h>
  5. @interface RSACryptor : NSObject
  6. + (instancetype)sharedRSACryptor;
  7. /**
  8. * 生成密钥对
  9. *
  10. * @param keySize 密钥尺寸,可选数值(512/1024/2048)
  11. */
  12. - (void)generateKeyPair:(NSUInteger)keySize;
  13. /**
  14. * 加载公钥
  15. *
  16. * @param publicKeyPath 公钥路径
  17. *
  18. @code
  19. # 生成证书
  20. $ openssl genrsa -out ca.key 1024
  21. # 创建证书请求
  22. $ openssl req -new -key ca.key -out rsacert.csr
  23. # 生成证书并签名
  24. $ openssl x509 -req -days 3650 -in rsacert.csr -signkey ca.key -out rsacert.crt
  25. # 转换格式
  26. $ openssl x509 -outform der -in rsacert.crt -out rsacert.der
  27. @endcode
  28. */
  29. - (void)loadPublicKey:(NSString *)publicKeyPath;
  30. /**
  31. * 加载私钥
  32. *
  33. * @param privateKeyPath p12文件路径
  34. * @param password p12文件密码
  35. *
  36. @code
  37. openssl pkcs12 -export -out p.p12 -inkey ca.key -in rsacert.crt
  38. @endcode
  39. */
  40. - (void)loadPrivateKey:(NSString *)privateKeyPath password:(NSString *)password;
  41. /**
  42. * 加密数据
  43. *
  44. * @param plainData 明文数据
  45. *
  46. * @return 密文数据
  47. */
  48. - (NSData *)encryptData:(NSData *)plainData;
  49. /**
  50. * 解密数据
  51. *
  52. * @param cipherData 密文数据
  53. *
  54. * @return 明文数据
  55. */
  56. - (NSData *)decryptData:(NSData *)cipherData;
  57. @end