]> git.saurik.com Git - apple/security.git/blobdiff - SecurityTests/clxutils/threadTest/testutil.c
Security-57031.1.35.tar.gz
[apple/security.git] / SecurityTests / clxutils / threadTest / testutil.c
diff --git a/SecurityTests/clxutils/threadTest/testutil.c b/SecurityTests/clxutils/threadTest/testutil.c
new file mode 100644 (file)
index 0000000..2f22b24
--- /dev/null
@@ -0,0 +1,175 @@
+
+#include "testutil.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <CoreServices/../Frameworks/CarbonCore.framework/Headers/MacErrors.h>
+
+const char *sslGetCipherSuiteString(SSLCipherSuite cs)
+{
+       static char noSuite[40];
+       
+       switch(cs) {
+               case SSL_NULL_WITH_NULL_NULL:
+                       return "SSL_NULL_WITH_NULL_NULL";
+               case SSL_RSA_WITH_NULL_MD5:
+                       return "SSL_RSA_WITH_NULL_MD5";
+               case SSL_RSA_WITH_NULL_SHA:
+                       return "SSL_RSA_WITH_NULL_SHA";
+               case SSL_RSA_EXPORT_WITH_RC4_40_MD5:
+                       return "SSL_RSA_EXPORT_WITH_RC4_40_MD5";
+               case SSL_RSA_WITH_RC4_128_MD5:
+                       return "SSL_RSA_WITH_RC4_128_MD5";
+               case SSL_RSA_WITH_RC4_128_SHA:
+                       return "SSL_RSA_WITH_RC4_128_SHA";
+               case SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5:
+                       return "SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5";
+               case SSL_RSA_WITH_IDEA_CBC_SHA:
+                       return "SSL_RSA_WITH_IDEA_CBC_SHA";
+               case SSL_RSA_EXPORT_WITH_DES40_CBC_SHA:
+                       return "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA";
+               case SSL_RSA_WITH_DES_CBC_SHA:
+                       return "SSL_RSA_WITH_DES_CBC_SHA";
+               case SSL_RSA_WITH_3DES_EDE_CBC_SHA:
+                       return "SSL_RSA_WITH_3DES_EDE_CBC_SHA";
+               case SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA:
+                       return "SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA";
+               case SSL_DH_DSS_WITH_DES_CBC_SHA:
+                       return "SSL_DH_DSS_WITH_DES_CBC_SHA";
+               case SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA:
+                       return "SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA";
+               case SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA:
+                       return "SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA";
+               case SSL_DH_RSA_WITH_DES_CBC_SHA:
+                       return "SSL_DH_RSA_WITH_DES_CBC_SHA";
+               case SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA:
+                       return "SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA";
+               case SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA:
+                       return "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA";
+               case SSL_DHE_DSS_WITH_DES_CBC_SHA:
+                       return "SSL_DHE_DSS_WITH_DES_CBC_SHA";
+               case SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA:
+                       return "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA";
+               case SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA:
+                       return "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA";
+               case SSL_DHE_RSA_WITH_DES_CBC_SHA:
+                       return "SSL_DHE_RSA_WITH_DES_CBC_SHA";
+               case SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA:
+                       return "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA";
+               case SSL_DH_anon_EXPORT_WITH_RC4_40_MD5:
+                       return "SSL_DH_anon_EXPORT_WITH_RC4_40_MD5";
+               case SSL_DH_anon_WITH_RC4_128_MD5:
+                       return "SSL_DH_anon_WITH_RC4_128_MD5";
+               case SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA:
+                       return "SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA";
+               case SSL_DH_anon_WITH_DES_CBC_SHA:
+                       return "SSL_DH_anon_WITH_DES_CBC_SHA";
+               case SSL_DH_anon_WITH_3DES_EDE_CBC_SHA:
+                       return "SSL_DH_anon_WITH_3DES_EDE_CBC_SHA";
+               case SSL_FORTEZZA_DMS_WITH_NULL_SHA:
+                       return "SSL_FORTEZZA_DMS_WITH_NULL_SHA";
+               case SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA:
+                       return "SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA";
+               case SSL_RSA_WITH_RC2_CBC_MD5:
+                       return "SSL_RSA_WITH_RC2_CBC_MD5";
+               case SSL_RSA_WITH_IDEA_CBC_MD5:
+                       return "SSL_RSA_WITH_IDEA_CBC_MD5";
+               case SSL_RSA_WITH_DES_CBC_MD5:
+                       return "SSL_RSA_WITH_DES_CBC_MD5";
+               case SSL_RSA_WITH_3DES_EDE_CBC_MD5:
+                       return "SSL_RSA_WITH_3DES_EDE_CBC_MD5";
+               case SSL_NO_SUCH_CIPHERSUITE:
+                       return "SSL_NO_SUCH_CIPHERSUITE";
+               default:
+                       sprintf(noSuite, "Unknown (%d)", (unsigned)cs);
+                       return noSuite; 
+       }
+}
+
+/* 
+ * Given a SSLProtocolVersion - typically from SSLGetProtocolVersion -
+ * return a string representation.
+ */
+const char *sslGetProtocolVersionString(SSLProtocol prot)
+{
+       static char noProt[20];
+       
+       switch(prot) {
+               case kSSLProtocolUnknown:
+                       return "kSSLProtocolUnknown";
+               case kSSLProtocol2:
+                       return "kSSLProtocol2";
+               case kSSLProtocol3:
+                       return "kSSLProtocol3";
+               case kSSLProtocol3Only:
+                       return "kSSLProtocol3Only";
+               default:
+                       sprintf(noProt, "Unknown (%d)", (unsigned)prot);
+                       return noProt;  
+       }
+}
+
+/* 
+ * Return string representation of SecureTransport-related OSStatus.
+ */
+const char *sslGetSSLErrString(OSStatus err)
+{
+       static char noErrStr[20];
+       
+       switch(err) {
+               case noErr:
+                       return "noErr";
+               case memFullErr:
+                       return "memFullErr";
+               case unimpErr:
+                       return "unimpErr";
+               case errSSLProtocol:
+                       return "errSSLProtocol";
+               case errSSLNegotiation:
+                       return "errSSLNegotiation";
+               case errSSLFatalAlert:
+                       return "errSSLFatalAlert";
+               case errSSLWouldBlock:
+                       return "errSSLWouldBlock";
+               case ioErr:
+                       return "ioErr";
+               case errSSLSessionNotFound:
+                       return "errSSLSessionNotFound";
+               case errSSLClosedGraceful:
+                       return "errSSLClosedGraceful";
+               case errSSLClosedAbort:
+                       return "errSSLClosedAbort";
+               case errSSLXCertChainInvalid:
+                       return "errSSLXCertChainInvalid";
+               case errSSLBadCert:
+                       return "errSSLBadCert"; 
+               case errSSLCrypto:
+                       return "errSSLCrypto";
+               case errSSLInternal:
+                       return "errSSLInternal";
+               case errSSLModuleAttach:
+                       return "errSSLModuleAttach";
+               case errSSLUnknownRootCert:
+                       return "errSSLUnknownRootCert";
+               case errSSLNoRootCert:
+                       return "errSSLNoRootCert";
+               case errSSLCertExpired:
+                       return "errSSLCertExpired";
+               case errSSLCertNotYetValid:
+                       return "errSSLCertNotYetValid";
+               case badReqErr:
+                       return "badReqErr";
+               case errSSLClosedNoNotify:
+                       return "errSSLClosedNoNotify";
+               default:
+                       sprintf(noErrStr, "Unknown (%d)", (unsigned)err);
+                       return noErrStr;        
+       }
+}
+
+void printSslErrStr(
+       const char      *op,
+       OSStatus        err)
+{
+       printf("*** %s: %s\n", op, sslGetSSLErrString(err));
+}
+