Импорт сертификата SSL под iPhone SDK

Python: функциональный, однострочный

factorial = lambda n: reduce(lambda x,y: x*y, range(1, n+1), 1)

ПРИМЕЧАНИЕ:

  • Поддерживаются большие целые числа. Пример:

print factorial(100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915\
608941463976156518286253697920827223758251185210916864000000000000000000000000

  • Не работает для n < 0 .
9
задан Adam Ernst 17 November 2009 в 04:07
поделиться

3 ответа

Служба технической поддержки Apple незамедлительно ответила мне идеальным ответом.

Во-первых, я ошибаюсь, говоря, что Schwab использует «самый последний промежуточный сертификат, которому доверяют на рабочем столе Mac, но не пока что iPhone ». Промежуточные сертификаты никогда не находятся во встроенном хранилище корневых сертификатов. Проблема в том, что большинство серверов SSL объединяют все промежуточные сертификаты, необходимые для проверки, но Schwab использует альтернативный процесс SSL, который ожидает, что вы получите промежуточный сертификат из URL-адреса. Рабочий стол Mac поддерживает получение промежуточных сертификатов, но не текущую ОС iPhone.

Вот суть фактического кода:

OSStatus            err;
NSString *          path;
NSData *            data;
SecCertificateRef   cert;

path = [[NSBundle mainBundle] pathForResource:@"OFX-G3" ofType:@"cer"];
assert(path != nil);

data = [NSData dataWithContentsOfFile:path];
assert(data != nil);

cert = SecCertificateCreateWithData(NULL, (CFDataRef) data);
assert(cert != NULL);

err = SecItemAdd(
    (CFDictionaryRef) [NSDictionary dictionaryWithObjectsAndKeys:
        (id) kSecClassCertificate,  kSecClass, 
        cert,                       kSecValueRef, 
        nil
    ], 
    NULL
);
assert(err == noErr);

CFRelease(cert);

Предполагается, что OFX-G3.cer является промежуточным сертификатом SSL и находится в папке «Ресурсы». .

12
ответ дан 4 December 2019 в 13:47
поделиться

Вы можете обойти настройки ssl, используя объект CoreFoundation CFStream . Вам нужно будет сделать что-то вроде создания потока, который подключается к соответствующему порту на сервере OFX, а затем использовать CF (чтение | запись) StreamSetProperty , чтобы предоставить CFDictionary (который вы может преобразовать NSDictionary в) с такими ключами, как kCFStreamSSLLevel , kCFStreamSSLAllowsAnyRoot , kCFStreamSSLValidatesCertificateChain и т. д.

2
ответ дан 4 December 2019 в 13:47
поделиться

Вы пытаетесь сделать это программно или можно сделать это через обычный пользовательский интерфейс?

Утилита настройки iPhone от Apple позволяет добавлять сертификаты в телефон. Вы также можете просто отправить сертификат по электронной почте пользователю, который может читать электронную почту по телефону, затем открыть сертификат на телефоне, и он спросит вас, хотите ли вы установить сертификат.

Извините, я не могу дать вам подробней инструкции прямо сейчас, но я далеко от своего iphone. Я проверю позже, когда доберусь до iphone, чтобы узнать, удачно ли вы добились успеха.

0
ответ дан 4 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: