sslDebug.h
1 /* 2 * Copyright (c) 2000-2001,2005-2007,2010-2012,2014 Apple Inc. All Rights Reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24 /* 25 * sslDebug.h - Debugging macros. 26 */ 27 28 #ifndef _SSL_DEBUG_H_ 29 #define _SSL_DEBUG_H_ 30 31 #ifdef KERNEL 32 /* TODO: support secinfo in the kernel */ 33 #define secinfo(x...) 34 #else /* KERNEL */ 35 #include <utilities/debugging.h> 36 #endif 37 38 #ifndef NDEBUG 39 #include <AssertMacros.h> 40 #endif 41 42 43 #define ssl_secinfo secinfo 44 45 #ifndef NDEBUG 46 47 /* log changes in handshake state */ 48 #define sslHdskStateDebug(args...) ssl_secinfo("sslHdskState", ## args) 49 50 /* log handshake and alert messages */ 51 #define sslHdskMsgDebug(args...) ssl_secinfo("sslHdskMsg", ## args) 52 53 /* log negotiated handshake parameters */ 54 #define sslLogNegotiateDebug(args...) ssl_secinfo("sslLogNegotiate", ## args) 55 56 /* log received protocol messsages */ 57 #define sslLogRxProtocolDebug(msgType) ssl_secinfo("sslLogRxProtocol", \ 58 "---received protoMsg %s", msgType) 59 60 /* log resumable session info */ 61 #define sslLogResumSessDebug(args...) ssl_secinfo("sslResumSession", ## args) 62 63 /* log low-level session info in appleSession.c */ 64 #define sslLogSessCacheDebug(args...) ssl_secinfo("sslSessionCache", ## args) 65 66 /* log record-level I/O (SSLRead, SSLWrite) */ 67 #define sslLogRecordIo(args...) ssl_secinfo("sslRecordIo", ## args) 68 69 /* cert-related info */ 70 #define sslCertDebug(args...) ssl_secinfo("sslCert", ## args) 71 72 /* Diffie-Hellman */ 73 #define sslDhDebug(args...) ssl_secinfo("sslDh", ## args) 74 75 /* EAP-FAST PAC-based session resumption */ 76 #define sslEapDebug(args...) ssl_secinfo("sslEap", ## args) 77 78 /* ECDSA */ 79 #define sslEcdsaDebug(args...) ssl_secinfo("sslEcdsa", ## args) 80 81 #else /* NDEBUG */ 82 83 /* deployment build */ 84 #define sslHdskStateDebug(args...) 85 #define sslHdskMsgDebug(args...) 86 #define sslLogNegotiateDebug(args...) 87 #define sslLogRxProtocolDebug(msgType) 88 #define sslLogResumSessDebug(args...) 89 #define sslLogSessCacheDebug(args...) 90 #define sslLogRecordIo(args...) 91 #define sslCertDebug(args...) 92 #define sslDhDebug(args...) 93 #define sslEapDebug(args...) 94 #define sslEcdsaDebug(args...) 95 96 #endif /* 97 NDEBUG */ 98 99 #ifdef NDEBUG 100 101 /* all errors logged to stdout for DEBUG config only */ 102 #define sslErrorLog(args...) 103 #define sslDebugLog(args...) 104 #define sslDump(d, l) 105 106 #else 107 108 extern void SSLDump(const unsigned char *data, unsigned long len); 109 110 /* extra debug logging of non-error conditions, if SSL_DEBUG is defined */ 111 #if SSL_DEBUG 112 //#define sslDebugLog(args...) printf(args) 113 #define sslDebugLog(args...) ssl_secinfo("sslDebug", ## args) 114 #else 115 #define sslDebugLog(args...) 116 #endif 117 /* all errors logged to stdout for DEBUG config only */ 118 //#define sslErrorLog(args...) printf(args) 119 #define sslErrorLog(args...) ssl_secinfo("sslError", ## args) 120 #define sslDump(d, l) SSLDump((d), (l)) 121 122 #endif /* NDEBUG */ 123 124 125 #ifdef NDEBUG 126 #define ASSERT(s) 127 #else 128 #define ASSERT(s) check(s) 129 #endif 130 131 #endif /* _SSL_DEBUG_H_ */