@@ -38,7 +38,7 @@
#include <CoreFoundation/CoreFoundation.h>
// We use a private API call here; it's good enough for WebKit.
-SecIdentityRef SecIdentityCreate(CFAllocatorRef allocator, SecCertificateRef certificate, SecKeyRef privateKey);
+SecIdentityRef __attribute__((weak)) SecIdentityCreate(CFAllocatorRef allocator, SecCertificateRef certificate, SecKeyRef privateKey);
#define ioErr -36
typedef struct TLSContext {
@@ -165,6 +165,11 @@ static int load_identity(URLContext *h, SecIdentityRef *identity, CFArrayRef *ce
if ((ret = import_pem(h, c->tls_shared.key_file, &keyArray)) < 0)
goto end;
+ if (!SecIdentityCreate) {
+ ret = AVERROR_PATCHWELCOME;
+ goto end;
+ }
+
if (CFGetTypeID(CFArrayGetValueAtIndex(*certArray, 0)) != SecCertificateGetTypeID() ||
CFGetTypeID(CFArrayGetValueAtIndex(keyArray, 0)) != SecKeyGetTypeID()) {
ret = AVERROR_INVALIDDATA;