Skip to content

Commit 0992c1d

Browse files
added error object
1 parent dfe8871 commit 0992c1d

File tree

3 files changed

+36
-19
lines changed

3 files changed

+36
-19
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
#Tue Jun 27 15:40:46 IST 2017
1+
#Sun Jul 02 00:45:13 IST 2017
22
connection.project.dir=../../../android

android/src/main/java/com/reactlibrary/securekeystore/RNSecureKeyStoreModule.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,12 @@ public void set(String alias, String input, Promise promise) {
6060
Calendar start = Calendar.getInstance();
6161
Calendar end = Calendar.getInstance();
6262
end.add(Calendar.YEAR, 1);
63-
KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(getContext()).setAlias(alias)
64-
.setSubject(new X500Principal("CN=" + alias)).setSerialNumber(BigInteger.ONE).setStartDate(start.getTime())
65-
.setEndDate(end.getTime()).build();
63+
KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(getContext())
64+
.setAlias(alias)
65+
.setSubject(new X500Principal("CN=" + alias))
66+
.setSerialNumber(BigInteger.ONE)
67+
.setStartDate(start.getTime())
68+
.setEndDate(end.getTime()).build();
6669

6770
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", getKeyStore());
6871
generator.initialize(spec);
@@ -94,7 +97,7 @@ public void set(String alias, String input, Promise promise) {
9497

9598
} catch (Exception e) {
9699
Log.e(Constants.TAG, "Exception: " + e.getMessage());
97-
promise.reject("Api-level:" + Build.VERSION.SDK_INT + "\nException: " + e.getMessage());
100+
promise.reject("{\"code\":9,\"api-level\":" + Build.VERSION.SDK_INT + ",\"message\":" + e.getMessage() + "}");
98101
}
99102

100103
}
@@ -111,7 +114,7 @@ public void get(String alias, Promise promise) {
111114
Cipher output = Cipher.getInstance(Constants.RSA_ALGORITHM);
112115
output.init(Cipher.DECRYPT_MODE, privateKey);
113116
CipherInputStream cipherInputStream = new CipherInputStream(
114-
new ByteArrayInputStream(KeyStorage.readValues(getContext(), alias)), output);
117+
new ByteArrayInputStream(KeyStorage.readValues(getContext(), alias)), output);
115118

116119
ArrayList<Byte> values = new ArrayList<Byte>();
117120
int nextByte;
@@ -128,7 +131,7 @@ public void get(String alias, Promise promise) {
128131

129132
} catch (Exception e) {
130133
Log.e(Constants.TAG, "Exception: " + e.getMessage());
131-
promise.reject("Api-level:" + Build.VERSION.SDK_INT + "\nException: " + e.getMessage());
134+
promise.reject("{\"code\":1,\"api-level\":" + Build.VERSION.SDK_INT + ",\"message\":" + e.getMessage() + "}");
132135
}
133136
}
134137

@@ -141,7 +144,7 @@ public void remove(String alias, Promise promise) {
141144

142145
} catch (Exception e) {
143146
Log.e(Constants.TAG, "Exception: " + e.getMessage());
144-
promise.reject("Api-level:" + Build.VERSION.SDK_INT + "\nException: " + e.getMessage());
147+
promise.reject("{\"code\":6,\"api-level\":" + Build.VERSION.SDK_INT + ",\"message\":" + e.getMessage() + "}");
145148
}
146149
}
147150

@@ -163,4 +166,4 @@ private String getKeyStore() {
163166
}
164167
}
165168

166-
}
169+
}

ios/RNSecureKeyStore.m

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,13 @@ - (BOOL)updateKeychainValue:(NSString *)password forIdentifier:(NSString *)ident
8282
return NO;
8383
}
8484

85-
- (void)deleteKeychainValue:(NSString *)identifier {
85+
- (BOOL)deleteKeychainValue:(NSString *)identifier {
8686
NSMutableDictionary *searchDictionary = [self newSearchDictionary:identifier];
87-
SecItemDelete((CFDictionaryRef)searchDictionary);
87+
OSStatus status = SecItemDelete((CFDictionaryRef)searchDictionary);
88+
if (status == errSecSuccess) {
89+
return YES;
90+
}
91+
return NO;
8892
}
8993

9094
- (void)clearSecureKeyStore
@@ -111,7 +115,7 @@ - (void)handleAppUninstallation
111115

112116
NSError * secureKeyStoreError(NSString *errMsg)
113117
{
114-
NSError *error = [NSError errorWithDomain:serviceName code:200 userInfo:@{@"Error reason": errMsg}];
118+
NSError *error = [NSError errorWithDomain:serviceName code:200 userInfo:@{@"reason": errMsg}];
115119
return error;
116120
}
117121

@@ -129,12 +133,14 @@ - (void)handleAppUninstallation
129133
if (status) {
130134
resolve(@"key updated successfully");
131135
} else {
132-
reject(@"no_events", @"Not able to save key", secureKeyStoreError(@"Not able to save key"));
136+
NSString* errorMessage = @"{\"message\":\"error saving key\"}";
137+
reject(@"9", errorMessage, secureKeyStoreError(errorMessage));
133138
}
134139
}
135140
}
136141
@catch (NSException *exception) {
137-
reject(@"no_events", @"Not able to save key", secureKeyStoreError(exception.reason));
142+
NSString* errorMessage = [NSString stringWithFormat:@"{\"message\":\"error saving key, please try to un-install and re-install app again\",\"actual-error\":%@}", exception];
143+
reject(@"9", errorMessage, secureKeyStoreError(errorMessage));
138144
}
139145
}
140146

@@ -146,13 +152,15 @@ - (void)handleAppUninstallation
146152
[self handleAppUninstallation];
147153
NSString *value = [self searchKeychainCopyMatching:key];
148154
if (value == nil) {
149-
reject(@"no_events", @"Not able to find key", secureKeyStoreError(@"Not able to find key"));
155+
NSString* errorMessage = @"{\"message\":\"key does not present\"}";
156+
reject(@"1", errorMessage, secureKeyStoreError(errorMessage));
150157
} else {
151158
resolve(value);
152159
}
153160
}
154161
@catch (NSException *exception) {
155-
reject(@"no_events", @"Not able to find key", secureKeyStoreError(exception.reason));
162+
NSString* errorMessage = [NSString stringWithFormat:@"{\"message\":\"key does not present\",\"actual-error\":%@}", exception];
163+
reject(@"1", errorMessage, secureKeyStoreError(errorMessage));
156164
}
157165
}
158166

@@ -161,11 +169,17 @@ - (void)handleAppUninstallation
161169
rejecter:(RCTPromiseRejectBlock)reject)
162170
{
163171
@try {
164-
[self deleteKeychainValue:key];
165-
resolve(@"key removed successfully");
172+
BOOL status = [self deleteKeychainValue:key];
173+
if (status) {
174+
resolve(@"key removed successfully");
175+
} else {
176+
NSString* errorMessage = @"{\"message\":\"could not delete key\"}";
177+
reject(@"6", errorMessage, secureKeyStoreError(errorMessage));
178+
}
166179
}
167180
@catch(NSException *exception) {
168-
reject(@"no_events", @"Could not remove key from keychain", secureKeyStoreError(exception.reason));
181+
NSString* errorMessage = [NSString stringWithFormat:@"{\"message\":\"could not delete key\",\"actual-error\":%@}", exception];
182+
reject(@"6", errorMessage, secureKeyStoreError(errorMessage));
169183
}
170184
}
171185

0 commit comments

Comments
 (0)