Использование SSLSetEnabledCiphers с AFNetworking для отключения слабых шифров

Я пытаюсь отключить некоторые (слабые) шифры, такие как один DES, один 40-битный DES и т. Д.

Я пытался использовать этот кусок кода изКак установить SSL-шифры при использовании CFSocket / CFStream в Какао? и из сообщения списка рассылкиCFNetwork SSL и длительные задержки блокировки но мне нужен доступ к данным сокета, чтобы получитьCFDataRef.

Вот код, который я пытался вставить в метод рукопожатия вAFURLConnectionOperation учебный класс:

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge (NSURLAuthenticationChallenge *)challenge{
    CFReadStreamRef stream = [sock getCFReadStream];
    CFDataRef data = CFReadStreamCopyProperty(stream, kCFStreamPropertySocketSSLContext);

    // Extract the SSLContextRef from the CFData
    SSLContextRef sslContext;
    CFDataGetBytes(data, CFRangeMake(0, sizeof(SSLContextRef)), &sslContext);

    // Get all enabled ciphers
    size_t numCiphers;
    SSLGetNumberEnabledCiphers(sslContext,&numCiphers);
    SSLCipherSuite ciphers[numCiphers];
    SSLGetEnabledCiphers(sslContext,ciphers,&numCiphers);

    // Create a new cipher array with only non-DH ciphers, and set it
    SSLCipherSuite finalCiphers[numCiphers];
    int numFinalCiphers = 0;
    for(int i=0; i<numCiphers; i++) {
        SSLCipherSuite suite = ciphers[i];
        if(!cipherSuiteUsesDH(suite)) {
            finalCiphers[numFinalCiphers] = suite;
            numFinalCiphers++;
        }
    }
    SSLSetEnabledCiphers(sslContext,finalCiphers,numFinalCiphers);
}

Любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ: К сожалению, это существующий проект, и он все еще использует версию 1 AFNetworking.

Ответы на вопрос(1)

Ваш ответ на вопрос