Merge pull request #429 from inited/master

Added support for intermediate certificates on iOS
This commit is contained in:
Sefa Ilkimen
2022-03-30 23:56:22 +02:00
committed by GitHub

View File

@@ -404,8 +404,18 @@
} else {
CFDictionaryRef identityDict = CFArrayGetValueAtIndex(items, 0);
SecIdentityRef identity = (SecIdentityRef)CFDictionaryGetValue(identityDict, kSecImportItemIdentity);
SecTrustRef trust = (SecTrustRef)CFDictionaryGetValue(identityDict, kSecImportItemTrust);
self->x509Credential = [NSURLCredential credentialWithIdentity:identity certificates: nil persistence:NSURLCredentialPersistenceForSession];
int count = (int)SecTrustGetCertificateCount(trust);
NSMutableArray* trustCertificates = nil;
if (count > 1) {
trustCertificates = [NSMutableArray arrayWithCapacity:SecTrustGetCertificateCount(trust)];
for (int i=1;i<count; ++i) {
[trustCertificates addObject:(id)SecTrustGetCertificateAtIndex(trust, i)];
}
}
self->x509Credential = [NSURLCredential credentialWithIdentity:identity certificates: trustCertificates persistence:NSURLCredentialPersistenceForSession];
CFRelease(items);
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];