factorial = lambda n: reduce(lambda x,y: x*y, range(1, n+1), 1)
ПРИМЕЧАНИЕ:
print factorial(100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915\
608941463976156518286253697920827223758251185210916864000000000000000000000000
Служба технической поддержки 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 и находится в папке «Ресурсы». .
Вы можете обойти настройки ssl, используя объект CoreFoundation CFStream
. Вам нужно будет сделать что-то вроде создания потока, который подключается к соответствующему порту на сервере OFX, а затем использовать CF (чтение | запись) StreamSetProperty
, чтобы предоставить CFDictionary
(который вы может преобразовать NSDictionary
в) с такими ключами, как kCFStreamSSLLevel
, kCFStreamSSLAllowsAnyRoot
, kCFStreamSSLValidatesCertificateChain
и т. д.
Вы пытаетесь сделать это программно или можно сделать это через обычный пользовательский интерфейс?
Утилита настройки iPhone от Apple позволяет добавлять сертификаты в телефон. Вы также можете просто отправить сертификат по электронной почте пользователю, который может читать электронную почту по телефону, затем открыть сертификат на телефоне, и он спросит вас, хотите ли вы установить сертификат.
Извините, я не могу дать вам подробней инструкции прямо сейчас, но я далеко от своего iphone. Я проверю позже, когда доберусь до iphone, чтобы узнать, удачно ли вы добились успеха.