X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/b04fe171f0375ecd5d8a24747ca1dff85720a0ca..6b200bc335dc93c5516ccb52f14bd896d8c7fad7:/SecurityTests/clxutils/clAppUtils/sslThreading.h diff --git a/SecurityTests/clxutils/clAppUtils/sslThreading.h b/SecurityTests/clxutils/clAppUtils/sslThreading.h deleted file mode 100644 index 24ddbccc..00000000 --- a/SecurityTests/clxutils/clAppUtils/sslThreading.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - * sslThreading.h - support for two-threaded SSL client/server tests. - */ - -#ifndef _SSL_THREADING_H_ -#define _SSL_THREADING_H_ 1 - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* "Don't bother verifying" values */ -#define SSL_PROTOCOL_IGNORE ((SSLProtocol)0x123456) -#define SSL_CLIENT_CERT_IGNORE ((SSLClientCertificateState)0x234567) -#define SSL_CIPHER_IGNORE ((SSLCipherSuite)0x345678) - -/* - * Test params passed to both sslClient() and sslServer() - */ -typedef struct { - - /* client side only */ - const char *hostName; - bool skipHostNameCheck; - - /* common */ - unsigned short port; - RingBuffer *serverToClientRing; - RingBuffer *clientToServerRing; - - bool noProtSpec; // if true, don't set protocol in either - // fashion - SSLProtocol tryVersion; // only used if acceptedProts - // NULL - const char *acceptedProts; - const char *myCertKcName; // required for server, - // optional for client - const char *password; // optional, to unlock keychain - bool idIsTrustedRoot; // cert in KC is trusted root - bool disableCertVerify; - const char *anchorFile; // to add/replace anchors - bool replaceAnchors; - SSLAuthenticate authenticate; - bool resumeEnable; - const SSLCipherSuite *ciphers; // optional array of allowed ciphers, - // terminated with SSL_NO_SUCH_CIPHERSUITE - bool nonBlocking; - const unsigned char *dhParams; // optional Diffie-Hellman params - unsigned dhParamsLen; - - /* expected results */ - OSStatus expectRtn; - SSLProtocol expectVersion; - SSLClientCertificateState expectCertState; - SSLCipherSuite expectCipher; - - /* UI parameters */ - bool quiet; - bool silent; - bool verbose; - - /* - * Server semaphore: - * - * -- main thread inits and sets serverReady false - * -- main thread starts up server thread - * -- server thread inits and sets up a socket for listening - * -- server thread sets serverReady true and does pthread_cond_broadcast - */ - pthread_mutex_t pthreadMutex; - pthread_cond_t pthreadCond; - bool serverReady; - - /* - * To ensure error abort is what we expect instead of just - * "peer closed their socket", server avoids closing down the - * socket until client sets this flag. It's just polled, no - * locking. Setting the serverAbort flag skips this - * step to facilitate testing cases where server explicitly - * drops connection (e.g. in response to an unacceptable - * ClientHello). - */ - unsigned clientDone; - bool serverAbort; - - /* - * Returned and also verified by sslRunSession(). - * Conditions in which expected value NOT verified are listed - * in following comments. - * - * NegCipher is only verified if (ortn == noErr). - */ - SSLProtocol negVersion; // SSL_PROTOCOL_IGNORE - SSLCipherSuite negCipher; // SSL_CIPHER_IGNORE - SSLClientCertificateState certState; // SSL_CLIENT_CERT_IGNORE - OSStatus ortn; // always checked - -} SslAppTestParams; - -/* client and server in sslClient.cpp and sslServe.cpp */ -OSStatus sslAppClient( - SslAppTestParams *params); -OSStatus sslAppServe( - SslAppTestParams *params); - -/* - * Run one session, with the server in a separate thread. - * On entry, serverParams->port is the port we attempt to run on; - * the server thread may overwrite that with a different port if it's - * unable to open the port we specify. Whatever is left in - * serverParams->port is what's used for the client side. - */ -int sslRunSession( - SslAppTestParams *serverParams, - SslAppTestParams *clientParams, - const char *testDesc); - -void sslShowResult( - const char *whichSide, // "client" or "server" - SslAppTestParams *params); - - -/* - * Macros which do the repetetive setup/run work - */ -#define SSL_THR_SETUP(serverParams, clientParams, clientDefaults, serverDefault) \ -{ \ - unsigned short serverPort; \ - serverPort = serverParams.port + 1; \ - clientParams = clientDefaults; \ - serverParams = serverDefaults; \ - serverParams.port = serverPort; \ -} - -#define SSL_THR_RUN(serverParams, clientParams, desc, ourRtn) \ -{ \ - thisRtn = sslRunSession(&serverParams, &clientParams, desc); \ - ourRtn += thisRtn; \ - if(thisRtn) { \ - if(testError(clientParams.quiet)) { \ - goto done; \ - } \ - } \ -} - -#define SSL_THR_RUN_NUM(serverParams, clientParams, desc, ourRtn, testNum) \ -{ \ - thisRtn = sslRunSession(&serverParams, &clientParams, desc);\ - ourRtn += thisRtn; \ - if(thisRtn) { \ - printf("***Error on test %u\n", testNum); \ - if(testError(clientParams.quiet)) { \ - goto done; \ - } \ - } \ -} - -#define THREADING_DEBUG 0 -#if THREADING_DEBUG - -#define sslThrDebug(side, end) \ - printf("^^^%s thread %p %s\n", side, pthread_self(), end) -#else /* THREADING_DEBUG */ -#define sslThrDebug(side, end) -#endif /* THREADING_DEBUG */ -#ifdef __cplusplus -} -#endif - -#endif /* _SSL_THREADING_H_ */