From 413050817e42481ca26aa8030e941c2f921f17d0 Mon Sep 17 00:00:00 2001 From: Henry Tao Date: Sun, 12 Jul 2020 21:17:08 -0400 Subject: [PATCH] Handling the `reject` of getRandomBytes for iOS --- ios/CovidShield/CovidShield.m | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ios/CovidShield/CovidShield.m b/ios/CovidShield/CovidShield.m index e1ff078e..08c3b471 100644 --- a/ios/CovidShield/CovidShield.m +++ b/ios/CovidShield/CovidShield.m @@ -15,11 +15,14 @@ @implementation CovidShield { void *buff = malloc(size); int status = SecRandomCopyBytes(kSecRandomDefault, size, buff); - if (status == 0) { + free(buff); + if (status == errSecSuccess) { NSString *base64encoded = [[[NSData alloc] initWithBytes:buff length:size] base64EncodedStringWithOptions:0]; resolve(base64encoded); + } else { + NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain code:status userInfo:nil]; + reject([NSString stringWithFormat:@"%ld", (long)error.code], error.localizedDescription ,error); } - free(buff); } RCT_REMAP_METHOD(downloadDiagnosisKeysFile, downloadDiagnosisKeysFileWithURL:(NSString *)url WithResolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)