CocoaSecurity.h 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. CocoaSecurity 1.1
  3. Created by Kelp on 12/5/12.
  4. Copyright (c) 2012 Kelp http://kelp.phate.org/
  5. MIT License
  6. CocoaSecurity is core. It provides AES encrypt, AES decrypt, Hash(MD5, HmacMD5, SHA1~SHA512, HmacSHA1~HmacSHA512) messages.
  7. */
  8. #import <Foundation/Foundation.h>
  9. #import <Foundation/NSException.h>
  10. #pragma mark - CocoaSecurityResult
  11. @interface CocoaSecurityResult : NSObject
  12. @property (strong, nonatomic, readonly) NSData *data;
  13. @property (strong, nonatomic, readonly) NSString *utf8String;
  14. @property (strong, nonatomic, readonly) NSString *hex;
  15. @property (strong, nonatomic, readonly) NSString *hexLower;
  16. @property (strong, nonatomic, readonly) NSString *base64;
  17. - (id)initWithBytes:(unsigned char[])initData length:(NSUInteger)length;
  18. @end
  19. #pragma mark - CocoaSecurity
  20. @interface CocoaSecurity : NSObject
  21. #pragma mark - AES Encrypt
  22. + (CocoaSecurityResult *)aesEncrypt:(NSString *)data key:(NSString *)key;
  23. + (CocoaSecurityResult *)aesEncrypt:(NSString *)data hexKey:(NSString *)key hexIv:(NSString *)iv;
  24. + (CocoaSecurityResult *)aesEncrypt:(NSString *)data key:(NSData *)key iv:(NSData *)iv;
  25. + (CocoaSecurityResult *)aesEncryptWithData:(NSData *)data key:(NSData *)key iv:(NSData *)iv;
  26. #pragma mark AES Decrypt
  27. + (CocoaSecurityResult *)aesDecryptWithBase64:(NSString *)data key:(NSString *)key;
  28. + (CocoaSecurityResult *)aesDecryptWithBase64:(NSString *)data hexKey:(NSString *)key hexIv:(NSString *)iv;
  29. + (CocoaSecurityResult *)aesDecryptWithBase64:(NSString *)data key:(NSData *)key iv:(NSData *)iv;
  30. + (CocoaSecurityResult *)aesDecryptWithData:(NSData *)data key:(NSData *)key iv:(NSData *)iv;
  31. #pragma mark - MD5
  32. + (CocoaSecurityResult *)md5:(NSString *)hashString;
  33. + (CocoaSecurityResult *)md5WithData:(NSData *)hashData;
  34. #pragma mark HMAC-MD5
  35. + (CocoaSecurityResult *)hmacMd5:(NSString *)hashString hmacKey:(NSString *)key;
  36. + (CocoaSecurityResult *)hmacMd5WithData:(NSData *)hashData hmacKey:(NSString *)key;
  37. #pragma mark - SHA
  38. + (CocoaSecurityResult *)sha1:(NSString *)hashString;
  39. + (CocoaSecurityResult *)sha1WithData:(NSData *)hashData;
  40. + (CocoaSecurityResult *)sha224:(NSString *)hashString;
  41. + (CocoaSecurityResult *)sha224WithData:(NSData *)hashData;
  42. + (CocoaSecurityResult *)sha256:(NSString *)hashString;
  43. + (CocoaSecurityResult *)sha256WithData:(NSData *)hashData;
  44. + (CocoaSecurityResult *)sha384:(NSString *)hashString;
  45. + (CocoaSecurityResult *)sha384WithData:(NSData *)hashData;
  46. + (CocoaSecurityResult *)sha512:(NSString *)hashString;
  47. + (CocoaSecurityResult *)sha512WithData:(NSData *)hashData;
  48. #pragma mark HMAC-SHA
  49. + (CocoaSecurityResult *)hmacSha1:(NSString *)hashString hmacKey:(NSString *)key;
  50. + (CocoaSecurityResult *)hmacSha1WithData:(NSData *)hashData hmacKey:(NSString *)key;
  51. + (CocoaSecurityResult *)hmacSha224:(NSString *)hashString hmacKey:(NSString *)key;
  52. + (CocoaSecurityResult *)hmacSha224WithData:(NSData *)hashData hmacKey:(NSString *)key;
  53. + (CocoaSecurityResult *)hmacSha256:(NSString *)hashString hmacKey:(NSString *)key;
  54. + (CocoaSecurityResult *)hmacSha256WithData:(NSData *)hashData hmacKey:(NSString *)key;
  55. + (CocoaSecurityResult *)hmacSha384:(NSString *)hashString hmacKey:(NSString *)key;
  56. + (CocoaSecurityResult *)hmacSha384WithData:(NSData *)hashData hmacKey:(NSString *)key;
  57. + (CocoaSecurityResult *)hmacSha512:(NSString *)hashString hmacKey:(NSString *)key;
  58. + (CocoaSecurityResult *)hmacSha512WithData:(NSData *)hashData hmacKey:(NSString *)key;
  59. @end
  60. #pragma mark - CocoaSecurityEncoder
  61. @interface CocoaSecurityEncoder : NSObject
  62. - (NSString *)base64:(NSData *)data;
  63. - (NSString *)hex:(NSData *)data useLower:(BOOL)isOutputLower;
  64. @end
  65. #pragma mark - CocoaSecurityDecoder
  66. @interface CocoaSecurityDecoder : NSObject
  67. - (NSData *)base64:(NSString *)data;
  68. - (NSData *)hex:(NSString *)data;
  69. @end