123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #import <Foundation/Foundation.h>
- #import <Security/Security.h>
- extern NSString *const kRNCryptorErrorDomain;
- extern const uint8_t kRNCryptorFileVersion;
- typedef struct _RNCryptorKeyDerivationSettings
- {
- size_t keySize;
- size_t saltSize;
- uint32_t PBKDFAlgorithm;
- uint32_t PRF;
- uint rounds;
- BOOL hasV2Password;
- } RNCryptorKeyDerivationSettings;
- typedef struct _RNCryptorSettings
- {
- uint32_t algorithm;
- size_t blockSize;
- size_t IVSize;
- uint32_t options;
- uint32_t HMACAlgorithm;
- size_t HMACLength;
- RNCryptorKeyDerivationSettings keySettings;
- RNCryptorKeyDerivationSettings HMACKeySettings;
- } RNCryptorSettings;
- extern const RNCryptorSettings kRNCryptorAES256Settings;
- enum _RNCryptorOptions
- {
- kRNCryptorOptionHasPassword = 1 << 0,
- };
- typedef uint8_t RNCryptorOptions;
- enum
- {
- kRNCryptorHMACMismatch = 1,
- kRNCryptorUnknownHeader = 2,
- };
- @class RNCryptor;
- typedef void (^RNCryptorHandler)(RNCryptor *cryptor, NSData *data);
- @interface RNCryptor : NSObject
- @property (nonatomic, readonly, strong) NSError *error;
- @property (nonatomic, readonly, getter=isFinished) BOOL finished;
- @property (nonatomic, readonly, copy) RNCryptorHandler handler;
- @property (nonatomic, readwrite) dispatch_queue_t responseQueue;
- - (void)addData:(NSData *)data;
- - (void)finish;
- + (NSData *)keyForPassword:(NSString *)password salt:(NSData *)salt settings:(RNCryptorKeyDerivationSettings)keySettings;
- + (NSData *)randomDataOfLength:(size_t)length;
- @end
|