This is CTXHandler.m in view mode; [Download] [Up]
#import <foundation/foundation.h> #import <stdio.h> // I need this for the ssl include #import <ssl/ssl.h> #import <ssl/err.h> #import "CTXHandler.h" static CTXHandler *sharedCTXHandler = nil; // // I need this Class, because earlier versions (before 0.5.2a) of // the SSLeay-lib had problems to allocate and freeing the CTX-Structure. // // I could remove this Class now, but who knows what the future brings ;-)... // @implementation CTXHandler + sharedCTXHandler { static BOOL fInit = NO; if (fInit == NO) { SSL_load_error_strings(); fInit = YES; } if (sharedCTXHandler == nil) { CTXHandler *tempCTXHandler; tempCTXHandler = [[CTXHandler alloc] init]; if ([tempCTXHandler setDefaultVerifyPaths] == NO) { [tempCTXHandler release]; [NSException raise:@"CannotLoadCertificates" format:@"CTXHandler: Cannot load certificates via setDefaultVerifyPaths"]; } else sharedCTXHandler = tempCTXHandler; } return sharedCTXHandler; } - init { [super init]; _ctx = SSL_CTX_new(); return self; } - (void)dealloc { if (_ctx != NULL) { SSL_CTX_free(_ctx); _ctx = NULL; } [super dealloc]; } - (SSL_CTX *)ctx { return _ctx; } - (BOOL)setDefaultVerifyPaths { if (!SSL_set_default_verify_paths(_ctx)) return NO; return YES; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.