diff options
Diffstat (limited to 'ios/AppSecureRandomModule.m')
-rw-r--r-- | ios/AppSecureRandomModule.m | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ios/AppSecureRandomModule.m b/ios/AppSecureRandomModule.m new file mode 100644 index 000000000..9aba127fc --- /dev/null +++ b/ios/AppSecureRandomModule.m @@ -0,0 +1,27 @@ +#import "AppSecureRandomModule.h" + +@implementation AppSecureRandomModule + +RCT_EXPORT_MODULE(); + ++ (BOOL)requiresMainQueueSetup +{ + return NO; +} + +RCT_REMAP_METHOD(generateSecureRandomAsBase64, + withLength:(int)length + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSMutableData* bytes = [NSMutableData dataWithLength:length]; + int result = SecRandomCopyBytes(kSecRandomDefault,length, [bytes mutableBytes]); + if (result == errSecSuccess) { + resolve([bytes base64EncodedStringWithOptions:0]); + } else { + NSError *error = [NSError errorWithDomain:@"RNSecureRandom" code:result userInfo: nil]; + reject(@"randombytes_error", @"Error generating random bytes", error); + } +} + +@end |