1/* 2 * Copyright (c) 2002-2012 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#include "EAPSecurity.h" 25#include <Security/SecureTransport.h> 26#include <TargetConditionals.h> 27/* 28 * Return string representation of {SecureTransport,Security}-related OSStatus. 29 */ 30const char * 31EAPSecurityErrorString(OSStatus err) 32{ 33 switch(err) { 34 case noErr: 35 return "noErr"; 36#if ! TARGET_OS_EMBEDDED 37 case memFullErr: 38 return "memFullErr"; 39 case paramErr: 40 return "paramErr"; 41 case unimpErr: 42 return "unimpErr"; 43 case ioErr: 44 return "ioErr"; 45 case badReqErr: 46 return "badReqErr"; 47#endif /* ! TARGET_OS_EMBEDDED */ 48 49 /* SecureTransport.h: */ 50 case errSSLProtocol: 51 return "errSSLProtocol"; 52 case errSSLNegotiation: 53 return "errSSLNegotiation"; 54 case errSSLFatalAlert: 55 return "errSSLFatalAlert"; 56 case errSSLWouldBlock: 57 return "errSSLWouldBlock"; 58 case errSSLSessionNotFound: 59 return "errSSLSessionNotFound"; 60 case errSSLClosedGraceful: 61 return "errSSLClosedGraceful"; 62 case errSSLClosedAbort: 63 return "errSSLClosedAbort"; 64 case errSSLXCertChainInvalid: 65 return "errSSLXCertChainInvalid"; 66 case errSSLBadCert: 67 return "errSSLBadCert"; 68 case errSSLCrypto: 69 return "errSSLCrypto"; 70 case errSSLInternal: 71 return "errSSLInternal"; 72 case errSSLModuleAttach: 73 return "errSSLModuleAttach"; 74 case errSSLUnknownRootCert: 75 return "errSSLUnknownRootCert"; 76 case errSSLNoRootCert: 77 return "errSSLNoRootCert"; 78 case errSSLCertExpired: 79 return "errSSLCertExpired"; 80 case errSSLCertNotYetValid: 81 return "errSSLCertNotYetValid"; 82 case errSSLClosedNoNotify: 83 return "errSSLClosedNoNotify"; 84 case errSSLBufferOverflow: 85 return "errSSLBufferOverflow"; 86 case errSSLBadCipherSuite: 87 return "errSSLBadCipherSuite"; 88 case errSSLPeerUnexpectedMsg: 89 return "errSSLPeerUnexpectedMsg"; 90 case errSSLPeerBadRecordMac: 91 return "errSSLPeerBadRecordMac"; 92 case errSSLPeerDecryptionFail: 93 return "errSSLPeerDecryptionFail"; 94 case errSSLPeerRecordOverflow: 95 return "errSSLPeerRecordOverflow"; 96 case errSSLPeerDecompressFail: 97 return "errSSLPeerDecompressFail"; 98 case errSSLPeerHandshakeFail: 99 return "errSSLPeerHandshakeFail"; 100 case errSSLPeerBadCert: 101 return "errSSLPeerBadCert"; 102 case errSSLPeerUnsupportedCert: 103 return "errSSLPeerUnsupportedCert"; 104 case errSSLPeerCertRevoked: 105 return "errSSLPeerCertRevoked"; 106 case errSSLPeerCertExpired: 107 return "errSSLPeerCertExpired"; 108 case errSSLPeerCertUnknown: 109 return "errSSLPeerCertUnknown"; 110 case errSSLIllegalParam: 111 return "errSSLIllegalParam"; 112 case errSSLPeerUnknownCA: 113 return "errSSLPeerUnknownCA"; 114 case errSSLPeerAccessDenied: 115 return "errSSLPeerAccessDenied"; 116 case errSSLPeerDecodeError: 117 return "errSSLPeerDecodeError"; 118 case errSSLPeerDecryptError: 119 return "errSSLPeerDecryptError"; 120 case errSSLPeerExportRestriction: 121 return "errSSLPeerExportRestriction"; 122 case errSSLPeerProtocolVersion: 123 return "errSSLPeerProtocolVersion"; 124 case errSSLPeerInsufficientSecurity: 125 return "errSSLPeerInsufficientSecurity"; 126 case errSSLPeerInternalError: 127 return "errSSLPeerInternalError"; 128 case errSSLPeerUserCancelled: 129 return "errSSLPeerUserCancelled"; 130 /* SecBase.h: */ 131 case errSecNotAvailable: 132 return "errSecNotAvailable"; 133 case errSecDuplicateItem: 134 return "errSecDuplicateItem"; 135 case errSecItemNotFound: 136 return "errSecItemNotFound"; 137 case errSSLServerAuthCompleted: 138 return "errSSLServerAuthCompleted"; 139#if ! TARGET_OS_EMBEDDED 140 case errSecReadOnly: 141 return "errSecReadOnly"; 142 case errSecAuthFailed: 143 return "errSecAuthFailed"; 144 case errSecNoSuchKeychain: 145 return "errSecNoSuchKeychain"; 146 case errSecInvalidKeychain: 147 return "errSecInvalidKeychain"; 148 case errSecDuplicateKeychain: 149 return "errSecDuplicateKeychain"; 150 case errSecDuplicateCallback: 151 return "errSecDuplicateCallback"; 152 case errSecInvalidCallback: 153 return "errSecInvalidCallback"; 154 case errSecBufferTooSmall: 155 return "errSecBufferTooSmall"; 156 case errSecDataTooLarge: 157 return "errSecDataTooLarge"; 158 case errSecNoSuchAttr: 159 return "errSecNoSuchAttr"; 160 case errSecInvalidItemRef: 161 return "errSecInvalidItemRef"; 162 case errSecInvalidSearchRef: 163 return "errSecInvalidSearchRef"; 164 case errSecNoSuchClass: 165 return "errSecNoSuchClass"; 166 case errSecNoDefaultKeychain: 167 return "errSecNoDefaultKeychain"; 168 case errSecInteractionNotAllowed: 169 return "errSecInteractionNotAllowed"; 170 case errSecReadOnlyAttr: 171 return "errSecReadOnlyAttr"; 172 case errSecWrongSecVersion: 173 return "errSecWrongSecVersion"; 174 case errSecKeySizeNotAllowed: 175 return "errSecKeySizeNotAllowed"; 176 case errSecNoStorageModule: 177 return "errSecNoStorageModule"; 178 case errSecNoCertificateModule: 179 return "errSecNoCertificateModule"; 180 case errSecNoPolicyModule: 181 return "errSecNoPolicyModule"; 182 case errSecInteractionRequired: 183 return "errSecInteractionRequired"; 184 case errSecDataNotAvailable: 185 return "errSecDataNotAvailable"; 186 case errSecDataNotModifiable: 187 return "errSecDataNotModifiable"; 188 case errSecCreateChainFailed: 189 return "errSecCreateChainFailed"; 190 case errSecACLNotSimple: 191 return "errSecACLNotSimple"; 192 case errSecPolicyNotFound: 193 return "errSecPolicyNotFound"; 194 case errSecInvalidTrustSetting: 195 return "errSecInvalidTrustSetting"; 196 case errSecNoAccessForItem: 197 return "errSecNoAccessForItem"; 198 case errSecInvalidOwnerEdit: 199 return "errSecInvalidOwnerEdit"; 200#endif /* ! TARGET_OS_EMBEDDED */ 201 default: 202 return "<unknown>"; 203 } 204} 205 206