@@ -273,11 +273,16 @@ - (void)hasCredentialsWithSecClass:(CFTypeRef)secClass
273
273
rejecter : (RCTPromiseRejectBlock)reject
274
274
{
275
275
CFBooleanRef cloudSync = cloudSyncValue (options);
276
+ NSString *accessGroup = accessGroupValue (options);
276
277
NSMutableDictionary *queryParts = [[NSMutableDictionary alloc ] init ];
277
278
queryParts[(__bridge NSString *)kSecClass ] = (__bridge id )(secClass),
278
279
queryParts[(__bridge NSString *)kSecMatchLimit ] = (__bridge NSString *)kSecMatchLimitOne ;
279
280
queryParts[(__bridge NSString *)kSecAttrSynchronizable ] = (__bridge id )(cloudSync);
280
281
282
+ if (accessGroup != nil ) {
283
+ queryParts[(__bridge NSString *)kSecAttrAccessGroup ] = accessGroup;
284
+ }
285
+
281
286
if (secClass == kSecClassInternetPassword ) {
282
287
queryParts[(__bridge NSString *)kSecAttrServer ] = serverValue (options);
283
288
} else {
@@ -310,13 +315,19 @@ - (OSStatus)deletePasswordsForOptions:(NSDictionary *)options
310
315
{
311
316
NSString *service = serviceValue (options);
312
317
CFBooleanRef cloudSync = cloudSyncValue (options);
313
- NSDictionary *query = @{
318
+ NSString *accessGroup = accessGroupValue (options);
319
+
320
+ NSMutableDictionary *query = [@{
314
321
(__bridge NSString *)kSecClass : (__bridge id )(kSecClassGenericPassword ),
315
322
(__bridge NSString *)kSecAttrService : service,
316
323
(__bridge NSString *)kSecAttrSynchronizable : (__bridge id )cloudSync,
317
324
(__bridge NSString *)kSecReturnAttributes : (__bridge id )kCFBooleanTrue ,
318
325
(__bridge NSString *)kSecReturnData : (__bridge id )kCFBooleanFalse
319
- };
326
+ } mutableCopy];
327
+
328
+ if (accessGroup != nil ) {
329
+ query[(__bridge NSString *)kSecAttrAccessGroup ] = accessGroup;
330
+ }
320
331
321
332
return SecItemDelete ((__bridge CFDictionaryRef) query);
322
333
}
@@ -443,16 +454,21 @@ - (OSStatus)deleteCredentialsForServer:(NSString *)server withOptions:(NSDiction
443
454
NSString *service = serviceValue (options);
444
455
NSString *authenticationPrompt = authenticationPromptValue (options);
445
456
CFBooleanRef cloudSync = cloudSyncValue (options);
457
+ NSString *accessGroup = accessGroupValue (options);
446
458
447
- NSDictionary *query = @{
459
+ NSMutableDictionary *query = [ @{
448
460
(__bridge NSString *)kSecClass : (__bridge id )(kSecClassGenericPassword ),
449
461
(__bridge NSString *)kSecAttrService : service,
450
462
(__bridge NSString *)kSecAttrSynchronizable : (__bridge id )(cloudSync),
451
463
(__bridge NSString *)kSecReturnAttributes : (__bridge id )kCFBooleanTrue ,
452
464
(__bridge NSString *)kSecReturnData : (__bridge id )kCFBooleanTrue ,
453
465
(__bridge NSString *)kSecMatchLimit : (__bridge NSString *)kSecMatchLimitOne ,
454
466
(__bridge NSString *)kSecUseOperationPrompt : authenticationPrompt
455
- };
467
+ } mutableCopy];
468
+
469
+ if (accessGroup != nil ) {
470
+ query[(__bridge NSString *)kSecAttrAccessGroup ] = accessGroup;
471
+ }
456
472
457
473
// Look up service in the keychain
458
474
NSDictionary *found = nil ;
@@ -550,15 +566,21 @@ - (OSStatus)deleteCredentialsForServer:(NSString *)server withOptions:(NSDiction
550
566
{
551
567
CFBooleanRef cloudSync = cloudSyncValue (options);
552
568
NSString *authenticationPrompt = authenticationPromptValue (options);
553
- NSDictionary *query = @{
569
+ NSString *accessGroup = accessGroupValue (options);
570
+
571
+ NSMutableDictionary *query = [@{
554
572
(__bridge NSString *)kSecClass : (__bridge id )(kSecClassInternetPassword ),
555
573
(__bridge NSString *)kSecAttrServer : server,
556
574
(__bridge NSString *)kSecReturnAttributes : (__bridge id )kCFBooleanTrue ,
557
575
(__bridge NSString *)kSecAttrSynchronizable : (__bridge id )(cloudSync),
558
576
(__bridge NSString *)kSecReturnData : (__bridge id )kCFBooleanTrue ,
559
577
(__bridge NSString *)kSecMatchLimit : (__bridge NSString *)kSecMatchLimitOne ,
560
578
(__bridge NSString *)kSecUseOperationPrompt : authenticationPrompt
561
- };
579
+ } mutableCopy];
580
+
581
+ if (accessGroup != nil ) {
582
+ query[(__bridge NSString *)kSecAttrAccessGroup ] = accessGroup;
583
+ }
562
584
563
585
// Look up server in the keychain
564
586
NSDictionary *found = nil ;
0 commit comments