00001 /*************************************************************************** 00002 * Copyright (C) 2001 by Rick L. Vinyard, Jr. * 00003 * rvinyard@cs.nmsu.edu * 00004 * * 00005 * The conexus library is free software; you can redistribute it and/or * 00006 * modify it under the terms of the GNU General Public License * 00007 * version 3 as published by the Free Software Foundation. * 00008 * * 00009 * The conexus library is distributed in the hope that it will be * 00010 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty * 00011 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00012 * General Public License for more details. * 00013 * * 00014 * You should have received a copy of the GNU General Public License * 00015 * along with this software. If not see <http://www.gnu.org/licenses/>. * 00016 ***************************************************************************/ 00017 #ifndef CONEXUSEXCEPT_NSS_H 00018 #define CONEXUSEXCEPT_NSS_H 00019 00020 #include <conexus/except.h> 00021 #include <iostream> 00022 00023 namespace Conexus { 00024 00030 class nss_exception: public conexus_exception { 00031 public: 00032 nss_exception( int e = 0 ) : conexus_exception( "Unknown NSS exception.", e, "nss" ) { } 00033 nss_exception( const std::string s, int e = 0 ) : conexus_exception( s, e, "nss" ) { } 00034 } 00035 ; 00036 00037 namespace exception { 00038 00039 00040 namespace nss { 00041 00047 class ssl_socket_import: public nss_exception { 00048 public: 00049 ssl_socket_import() : nss_exception( "Error importing NSPR socket into NSS." ) { } 00050 } 00051 ; 00052 00058 class option_ssl_security: public nss_exception { 00059 public: 00060 option_ssl_security() : nss_exception( "Error setting option SSL_SECURITY." ) { } 00061 } 00062 ; 00063 00069 class option_ssl_handshake_as_server: public nss_exception { 00070 public: 00071 option_ssl_handshake_as_server() : nss_exception( "Error setting option SSL_HANDSHAKE_AS_SERVER." ) { } 00072 } 00073 ; 00074 00080 class option_ssl_handshake_as_client: public nss_exception { 00081 public: 00082 option_ssl_handshake_as_client() : nss_exception( "Error setting option SSL_HANDSHAKE_AS_CLIENT." ) { } 00083 } 00084 ; 00085 00091 class option_ssl_request_certificate: public nss_exception { 00092 public: 00093 option_ssl_request_certificate() : nss_exception( "Error setting option SSL_REQUEST_CERTIFICATE." ) { } 00094 } 00095 ; 00096 00102 class option_ssl_require_certificate: public nss_exception { 00103 public: 00104 option_ssl_require_certificate() : nss_exception( "Error setting option SSL_REQUIRE_CERTIFICATE." ) { } 00105 } 00106 ; 00107 00113 class ssl_getclientauthdatahook: public nss_exception { 00114 public: 00115 ssl_getclientauthdatahook() : nss_exception( "Error setting callback SSL_GetClientAuthDataHook." ) { } 00116 } 00117 ; 00118 00124 class ssl_authcertificatehook: public nss_exception { 00125 public: 00126 ssl_authcertificatehook() : nss_exception( "Error setting callback SSL_AuthCertificateHook." ) { } 00127 } 00128 ; 00129 00135 class ssl_badcerthook: public nss_exception { 00136 public: 00137 ssl_badcerthook() : nss_exception( "Error setting callback SSL_BadCertHook." ) { } 00138 } 00139 ; 00140 00146 class ssl_handshakecallback: public nss_exception { 00147 public: 00148 ssl_handshakecallback() : nss_exception( "Error setting callback SSL_HandshakeCallback." ) { } 00149 } 00150 ; 00151 00157 class ssl_pkcs11pinarg: public nss_exception { 00158 public: 00159 ssl_pkcs11pinarg() : nss_exception( "Error setting SSL_PKCS11PinArg." ) { } 00160 } 00161 ; 00162 00163 00164 } 00165 } 00166 } 00167 00168 #endif