DDRSAWrapper.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #import <Foundation/Foundation.h>
  2. @interface DDRSAWrapper : NSObject
  3. #pragma mark - SecKeyRef
  4. - (BOOL)generateSecKeyPairWithKeySize:(NSUInteger)keySize publicKeyRef:(SecKeyRef *)publicKeyRef privateKeyRef:(SecKeyRef *)privateKeyRef;
  5. - (NSData *)publicKeyBitsFromSecKey:(SecKeyRef)givenKey;
  6. - (SecKeyRef)publicSecKeyFromKeyBits:(NSData *)givenData;
  7. - (NSData *)privateKeyBitsFromSecKey:(SecKeyRef)givenKey;
  8. - (SecKeyRef)privateSecKeyFromKeyBits:(NSData *)givenData;
  9. /*
  10. padding : kSecPaddingNone 或 kSecPaddingPKCS1
  11. */
  12. - (NSData *)encryptWithKey:(SecKeyRef)key plainData:(NSData *)plainData padding:(SecPadding)padding;
  13. - (NSData *)decryptWithKey:(SecKeyRef)key cipherData:(NSData *)cipherData padding:(SecPadding)padding;
  14. - (NSData *)encryptWithPrivateKey:(SecKeyRef)key plainData:(NSData *)plainData;
  15. - (NSData *)decryptWithPublicKey:(SecKeyRef)publicKey cipherData:(NSData *)cipherData;
  16. #pragma mark - 指数和模数
  17. - (NSData *)getPublicKeyExp:(NSData *)pk;
  18. - (NSData *)getPublicKeyMod:(NSData *)pk ;
  19. /*
  20. 在 iOS9 以上的系统 模数前面要加 00,不然会转换失败
  21. const char fixByte = 0;
  22. NSMutableData * fixedModule = [NSMutableData dataWithBytes:&fixByte length:1];
  23. [fixedModule appendData:m];
  24. https://github.com/StCredZero/SCZ-BasicEncodingRules-iOS/issues/6#issuecomment-136601437
  25. */
  26. - (SecKeyRef)publicKeyDataWithMod:(NSData *)modBits exp:(NSData *)expBits;
  27. @end