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 secdebug in the kernel */ 33#define secdebug(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_secdebug secdebug 44 45#ifndef NDEBUG 46 47/* log changes in handshake state */ 48#define sslHdskStateDebug(args...) ssl_secdebug("sslHdskState", ## args) 49 50/* log handshake and alert messages */ 51#define sslHdskMsgDebug(args...) ssl_secdebug("sslHdskMsg", ## args) 52 53/* log negotiated handshake parameters */ 54#define sslLogNegotiateDebug(args...) ssl_secdebug("sslLogNegotiate", ## args) 55 56/* log received protocol messsages */ 57#define sslLogRxProtocolDebug(msgType) ssl_secdebug("sslLogRxProtocol", \ 58 "---received protoMsg %s", msgType) 59 60/* log resumable session info */ 61#define sslLogResumSessDebug(args...) ssl_secdebug("sslResumSession", ## args) 62 63/* log low-level session info in appleSession.c */ 64#define sslLogSessCacheDebug(args...) ssl_secdebug("sslSessionCache", ## args) 65 66/* log record-level I/O (SSLRead, SSLWrite) */ 67#define sslLogRecordIo(args...) ssl_secdebug("sslRecordIo", ## args) 68 69/* cert-related info */ 70#define sslCertDebug(args...) ssl_secdebug("sslCert", ## args) 71 72/* Diffie-Hellman */ 73#define sslDhDebug(args...) ssl_secdebug("sslDh", ## args) 74 75/* EAP-FAST PAC-based session resumption */ 76#define sslEapDebug(args...) ssl_secdebug("sslEap", ## args) 77 78/* ECDSA */ 79#define sslEcdsaDebug(args...) ssl_secdebug("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 /* 97NDEBUG */ 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 108extern 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_secdebug("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_secdebug("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_ */ 132