1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: ssl_Result.h 4 5 Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Rev: 19958 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NN_SSL_SSL_RESULT_H_ 17 #define NN_SSL_SSL_RESULT_H_ 18 19 #include <nn/Result.h> 20 #include <nn/net/compatible/nssl.h> 21 22 //NHTTPライブラリのResultコードを、HTTPのResultCodeに変換するためのマクロ 23 #define CHANGE_NSSL_RESULT_CODE_MASK 0x000003ff 24 #define CHANGE_NSSL_RESULT_CODE(nhttpCode) \ 25 (nhttpCode) & (CHANGE_NSSL_RESULT_CODE_MASK) 26 27 /*! 28 @addtogroup nn_ssl ssl 29 @{ 30 */ 31 32 /*! 33 * @brief APIのC言語用結果コード。APIの返値であるnnResultのdescription要素として格納される。 34 */ 35 enum NnSslResultCode 36 { 37 /* SSL処理関連 */ 38 NNSSL_ENONE = CHANGE_NSSL_RESULT_CODE(NSSL_ENONE), //!< エラー無し 39 NNSSL_EFAILED = CHANGE_NSSL_RESULT_CODE(NSSL_EFAILED), //!< SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等) 40 NNSSL_EWANT_READ = CHANGE_NSSL_RESULT_CODE(NSSL_EWANT_READ), //!< 非同期ソケット使用時の Read 関数の処理未完了。(再試行してください。) 41 NNSSL_EWANT_WRITE = CHANGE_NSSL_RESULT_CODE(NSSL_EWANT_WRITE), //!< 非同期ソケット使用時のWrite 関数の処理未完了。(再試行してください。) 42 NNSSL_ESYSCALL = CHANGE_NSSL_RESULT_CODE(NSSL_ESYSCALL), //!< 内部で使用しているシステム関数が予期せぬエラーを返した。 43 NNSSL_EZERO_RETURN = CHANGE_NSSL_RESULT_CODE(NSSL_EZERO_RETURN), //!< 内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返された。 44 NNSSL_EWANT_CONNECT = CHANGE_NSSL_RESULT_CODE(NSSL_EWANT_CONNECT), //!< 非同期ソケット使用時のSSLハンドシェイク(DoHandshake)未完了。(再試行してください。) 45 NNSSL_ESSLID = CHANGE_NSSL_RESULT_CODE(NSSL_ESSLID), //!< 内部エラー(不正なSSLID) 46 NNSSL_EVERIFY_COMMON_NAME = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_COMMON_NAME), //!< サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しない。 47 NNSSL_EVERIFY_ROOT_CA = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_ROOT_CA), //!< サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しない。 48 NNSSL_EVERIFY_CHAIN = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_CHAIN), //!< サーバ認証エラー。サーバ証明書の証明書チェインが不正。 49 NNSSL_EVERIFY_DATE = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_DATE), //!< サーバ認証エラー。サーバ証明書が有効期限外である。 50 NNSSL_EGET_SERVER_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_EGET_SERVER_CERT), //!< 証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生) 51 NNSSL_EVERIFY_REVOKED_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_REVOKED_CERT), //!< サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書であった。 52 NNSSL_ESTATE = CHANGE_NSSL_RESULT_CODE(NSSL_ESTATE), //!< SSLライブラリの状態が不正(「初期化処理を行わずにライブラリの他関数を実行した」場合などに発生。)。 53 NNSSL_ERANDOM = CHANGE_NSSL_RESULT_CODE(NSSL_ERANDOM), //!< 乱数処理のエラー。 54 NNSSL_EVERIFY_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_SERVER_CERT), //!< サーバ証明書検証NG。 55 NNSSL_ECERT_BUF_ALREADY_SET = CHANGE_NSSL_RESULT_CODE(NSSL_ECERT_BUF_ALREADY_SET), //!< サーバ証明書保存用バッファがすでに設定されている。 56 57 /* その他のエラー */ 58 NNSSL_ER_ALREADY_INITIALIZED = nn::Result::DESCRIPTION_ALREADY_INITIALIZED, //!< 初期化済み 59 NNSSL_ER_NOT_INITIALIZED = nn::Result::DESCRIPTION_NOT_INITIALIZED, //!< 未初期化 60 NNSSL_ER_OUT_OF_MEMORY = nn::Result::DESCRIPTION_OUT_OF_MEMORY, //!< メモリの動的取得失敗 61 NNSSL_ER_NOT_ASSIGN_SERVER = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(50)), //!< 通信先サーバが割り当てられていない 62 NNSSL_ER_ALREADY_ASSIGN_SERVER = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(51)), //!< 通信先サーバーがすでに割り当て済み 63 NNSSL_ER_IPC_SESSION = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(52)), //!< IPCセッションが不正 64 NNSSL_ER_CONN_PROCESS_MAX = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(53)), //!< 1プロセスの使用コネクション最大数越え 65 NNSSL_ER_FAIL_TO_CREATE_CERT_STORE = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(54)), //!< 証明書ストアの作成に失敗 66 NNSSL_ER_FAIL_TO_CREATE_CRL_STORE = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(55)), //!< CRLストアの作成に失敗 67 NNSSL_ER_FAIL_TO_CREATE_CLIENT_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(56)), //!< クライアント証明書の作成に失敗 68 NNSSL_ER_INVALID_PARAM = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(57)), //!< 引数が不正 69 NNSSL_ER_CLIENT_PROCESS_MAX = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(58)), //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中。 70 NNSSL_ER_IPC_SESSION_MAX = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(59)), //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。) 71 NNSSL_ER_INTERNAL_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(60)), //!< 内蔵証明書の利用に失敗 72 NNSSL_ER_INTERNAL_CRL = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(61)) //!< 内蔵CRLの利用に失敗 73 }; 74 75 /*! 76 @} 77 */ 78 79 80 #ifdef __cplusplus 81 82 namespace nn { 83 namespace ssl { 84 /*! 85 * @brief APIの結果コード。APIの返値であるResultのdescription要素として格納される。 86 * @note 現状はNSSLライブラリの結果コード値と合わせる(ただしResultのdescriptionは10bitであるため、下位10bitのみ用いる。)NSSLライブラリと依存関係になってしまうため、将来的には独立した値に変更する。 87 */ 88 enum ResultCode 89 { 90 /* SSL処理関連 */ 91 ENONE = NNSSL_ENONE, //!< エラー無し 92 EFAILED = NNSSL_EFAILED, //!< SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等 93 EWANT_READ = NNSSL_EWANT_READ, //!< 非同期ソケット使用時の Read 関数の処理未完了。(再試行してください。) 94 EWANT_WRITE = NNSSL_EWANT_WRITE, //!< 非同期ソケット使用時のWrite 関数の処理未完了。(再試行してください。) 95 ESYSCALL = NNSSL_ESYSCALL, //!< 内部で使用しているシステム関数が予期せぬエラーを返した。 96 EZERO_RETURN = NNSSL_EZERO_RETURN, //!< 内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返された。 97 EWANT_CONNECT = NNSSL_EWANT_CONNECT, //!< 非同期ソケット使用時のSSLハンドシェイク(DoHandshake)未完了。(再試行してください。) 98 ESSLID = NNSSL_ESSLID, //!< 内部エラー(不正なSSLID) 99 EVERIFY_COMMON_NAME = NNSSL_EVERIFY_COMMON_NAME, //!< サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しない。 100 EVERIFY_ROOT_CA = NNSSL_EVERIFY_ROOT_CA, //!< サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しない。 101 EVERIFY_CHAIN = NNSSL_EVERIFY_CHAIN, //!< サーバ認証エラー。サーバ証明書の証明書チェインが不正。 102 EVERIFY_DATE = NNSSL_EVERIFY_DATE, //!< サーバ認証エラー。サーバ証明書が有効期限外である。 103 EGET_SERVER_CERT = NNSSL_EGET_SERVER_CERT, //!< 証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生) 104 EVERIFY_REVOKED_CERT = NNSSL_EVERIFY_REVOKED_CERT, //!< サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書であった。 105 ESTATE = NNSSL_ESTATE, //!< SSLライブラリの状態が不正(「初期化処理を行わずにライブラリの他関数を実行した」場合などに発生。)。 106 ERANDOM = NNSSL_ERANDOM, //!< 乱数処理のエラー。 107 EVERIFY_CERT = NNSSL_EVERIFY_CERT, //!< サーバ証明書検証NG。 108 ECERT_BUF_ALREADY_SET = NNSSL_ECERT_BUF_ALREADY_SET, //!< サーバ証明書保存用バッファがすでに設定されている。 109 110 111 /* その他のエラー */ 112 ER_ALREADY_INITIALIZED = NNSSL_ER_ALREADY_INITIALIZED, //!< 初期化済み 113 ER_NOT_INITIALIZED = NNSSL_ER_NOT_INITIALIZED, //!< 未初期化 114 ER_OUT_OF_MEMORY = NNSSL_ER_OUT_OF_MEMORY, //!< メモリの動的取得失敗 115 ER_NOT_ASSIGN_SERVER = NNSSL_ER_NOT_ASSIGN_SERVER, //!< 通信先サーバが割り当てられていない 116 ER_ALREADY_ASSIGN_SERVER = NNSSL_ER_ALREADY_ASSIGN_SERVER, //!< 通信先サーバーがすでに割り当て済みである 117 ER_IPC_SESSION = NNSSL_ER_IPC_SESSION, //!< IPCセッションが不正である 118 ER_CONN_PROCESS_MAX = NNSSL_ER_CONN_PROCESS_MAX, //!< 1プロセスの使用コネクション最大数越え 119 ER_FAIL_TO_CREATE_CERT_STORE = NNSSL_ER_FAIL_TO_CREATE_CERT_STORE, //!< 証明書ストアの作成に失敗しました 120 ER_FAIL_TO_CREATE_CRL_STORE = NNSSL_ER_FAIL_TO_CREATE_CRL_STORE, //!< CRLストアの作成に失敗しました 121 ER_FAIL_TO_CREATE_CLIENT_CERT = NNSSL_ER_FAIL_TO_CREATE_CLIENT_CERT, //!< クライアント証明書の作成に失敗しました 122 ER_INVALID_PARAM = NNSSL_ER_INVALID_PARAM, //!< 引数が不正です 123 ER_CLIENT_PROCESS_MAX = NNSSL_ER_CLIENT_PROCESS_MAX, //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。 124 ER_IPC_SESSION_MAX = NNSSL_ER_IPC_SESSION_MAX, //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。) 125 ER_INTERNAL_CERT = NNSSL_ER_INTERNAL_CERT, //!< 内蔵証明書の利用に失敗 126 ER_INTERNAL_CRL = NNSSL_ER_INTERNAL_CRL //!< 内蔵CRLの利用に失敗 127 }; 128 129 namespace detail { 130 /** 131 * @brief NSSLのPermanentエラーを表すResultを返す。 132 * @param summary エラーを表すResult::Summary値。 133 * @param errCode エラーコード(nn::nssl::ResultCode列挙体のいずれかの値) 134 * @return 引数に対応するPermanentエラーを表すResult。 135 */ 136 NN_DEFINE_RESULT_FUNC_LM(MakePermanentResult, Result::LEVEL_PERMANENT, Result::MODULE_NN_SSL); 137 138 139 /** 140 * @brief リターンコードに対して、それを表すResultを返す。 141 * @param returnCode リターンコード(nn::http::ResultCode列挙体のいずれかの値) 142 * @return 引数の内容を表すResult。 143 */ ChangeNsslRetCodeToResult(ResultCode returnCode)144 inline Result ChangeNsslRetCodeToResult(ResultCode returnCode) 145 { 146 if(returnCode == ENONE) 147 { 148 return ResultSuccess(); 149 } 150 else if((returnCode == EWANT_READ) || (returnCode == EWANT_WRITE) || (returnCode == EWANT_CONNECT)) 151 { 152 return detail::MakePermanentResult(Result::SUMMARY_WOULD_BLOCK, returnCode); 153 } 154 else if(returnCode == ER_INVALID_PARAM) 155 { 156 return detail::MakePermanentResult(Result::SUMMARY_INVALID_ARGUMENT, returnCode); 157 } 158 else 159 { 160 return detail::MakePermanentResult(Result::SUMMARY_INVALID_STATE, returnCode); 161 } 162 } 163 164 /** 165 * @brief リターンコードに対して、それを表すResultを返す。 166 * @param returnCode NSSLライブラリのリターンコード(nssl.hに定義されたエラーコード) 167 * @return 引数の内容を表すResult。 168 */ ChangeNsslRetCodeToResult(s32 returnCode)169 inline Result ChangeNsslRetCodeToResult(s32 returnCode) 170 { 171 return ChangeNsslRetCodeToResult(static_cast<ResultCode>(CHANGE_NSSL_RESULT_CODE(returnCode))); 172 } 173 } 174 175 /** 176 * @brief 「SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等)」エラーを表すResultを返す。 177 * @return 「SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等)」エラーを表すResult 178 */ 179 NN_DEFINE_RESULT_CONST_LM( 180 ResultProtocolFailedErr, 181 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EFAILED 182 ); 183 184 /** 185 * @brief 「非同期ソケット使用時の Read 関数の処理未完了。(再試行してください。)」を表すResultを返す。 186 * @return 「非同期ソケット使用時の Read 関数の処理未完了」を表すResult 187 */ 188 NN_DEFINE_RESULT_CONST_LM( 189 ResultWantRead, 190 detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, EWANT_READ 191 ); 192 193 /** 194 * @brief 「非同期ソケット使用時のWrite 関数の処理未完了。(再試行してください。)」を表すResultを返す。 195 * @return 「非同期ソケット使用時のWrite 関数の処理未完了」を表すResult 196 */ 197 NN_DEFINE_RESULT_CONST_LM( 198 ResultWantWrite, 199 detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, EWANT_WRITE 200 ); 201 202 /** 203 * @brief 「内部で使用しているシステム関数が予期せぬエラーを返した。」エラーを表すResultを返す。 204 * @return 「内部で使用しているシステム関数が予期せぬエラーを返した。」エラーを表すResult 205 */ 206 NN_DEFINE_RESULT_CONST_LM( 207 ResultSystemCallErr, 208 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ESYSCALL 209 ); 210 211 /** 212 * @brief 「内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返された。」エラーを表すResultを返す。 213 * @return 「内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返された。」エラーを表すResult 214 */ 215 NN_DEFINE_RESULT_CONST_LM( 216 ResultSocketZeroReturnErr, 217 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EZERO_RETURN 218 ); 219 220 /** 221 * @brief 「非同期ソケット使用時のSSLハンドシェイク(DoHandshake)未完了。(再試行してください。)」を表すResultを返す。 222 * @return 「非同期ソケット使用時のSSLハンドシェイク(DoHandshake)未完了」を表すResult 223 */ 224 NN_DEFINE_RESULT_CONST_LM( 225 ResultWantConnect, 226 detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, EWANT_CONNECT 227 ); 228 229 /** 230 * @brief 「内部エラー(不正なSSLID)」エラーを表すResultを返す。 231 * @return 「内部エラー(不正なSSLID)」エラーを表すResult 232 */ 233 NN_DEFINE_RESULT_CONST_LM( 234 ResultInternalSslIdErr, 235 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ESSLID 236 ); 237 238 /** 239 * @brief 「サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しない。」エラーを表すResultを返す。 240 * @return 「サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しない。」エラーを表すResult 241 */ 242 NN_DEFINE_RESULT_CONST_LM( 243 ResultVerifyCertCommonNameErr, 244 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_COMMON_NAME 245 ); 246 247 /** 248 * @brief 「サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しない。」を表すResultを返す。 249 * @return 「サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しない。」を表すResult 250 */ 251 NN_DEFINE_RESULT_CONST_LM( 252 ResultVerifyCertRootCaErr, 253 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_ROOT_CA 254 ); 255 256 /** 257 * @brief 「サーバ認証エラー。サーバ証明書の証明書チェインが不正。」エラーを表すResultを返す。 258 * @return 「サーバ認証エラー。サーバ証明書の証明書チェインが不正。」エラーを表すResult 259 */ 260 NN_DEFINE_RESULT_CONST_LM( 261 ResultVerifyCertChainErr, 262 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_CHAIN 263 ); 264 265 /** 266 * @brief 「サーバ認証エラー。サーバ証明書が有効期限外である。」エラーを表すResultを返す。 267 * @return 「サーバ認証エラー。サーバ証明書が有効期限外である。」エラーを表すResult 268 */ 269 NN_DEFINE_RESULT_CONST_LM( 270 ResultVerifyCertDateErr, 271 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_DATE 272 ); 273 274 /** 275 * @brief 「証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生)」を表すResultを返す。 276 * @return 「証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生)」を表すResult 277 */ 278 NN_DEFINE_RESULT_CONST_LM( 279 ResultFailToGetServerCert, 280 detail::MakePermanentResult, Result::SUMMARY_SUCCESS, EGET_SERVER_CERT 281 ); 282 283 /** 284 * @brief 「サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書であった。」エラーを表すResultを返す。 285 * @return 「サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書であった。」エラーを表すResult 286 */ 287 NN_DEFINE_RESULT_CONST_LM( 288 ResultVerifyCertRevokedErr, 289 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_REVOKED_CERT 290 ); 291 292 /** 293 * @brief 「SSLライブラリの状態が不正(「初期化処理を行わずにライブラリの他関数を実行した」場合などに発生。)。」エラーを表すResultを返す。 294 * @return 「SSLライブラリの状態が不正(「初期化処理を行わずにライブラリの他関数を実行した」場合などに発生。)。」エラーを表すResult 295 */ 296 NN_DEFINE_RESULT_CONST_LM( 297 ResultLibraryStateErr, 298 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ESTATE 299 ); 300 301 /** 302 * @brief 「乱数処理のエラー。」エラーを表すResultを返す。 303 * @return 「乱数処理のエラー。」エラーを表すResult 304 */ 305 NN_DEFINE_RESULT_CONST_LM( 306 ResultRandomErr, 307 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ERANDOM 308 ); 309 310 /** 311 * @brief 「証明書検証NG」エラーを表すResultを返す。 312 * @return 「証明書検証NG」エラーを表すResult 313 */ 314 NN_DEFINE_RESULT_CONST_LM( 315 ResultVerifyCertErr, 316 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_CERT 317 ); 318 319 /** 320 * @brief 「ライブラリがすでに初期化済」エラーを表すResultを返す。 321 * @return 「ライブラリがすでに初期化済」エラーを表すResult 322 */ 323 NN_DEFINE_RESULT_CONST_LM( 324 ResultAlreadyInitializedErr, 325 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_INITIALIZED 326 ); 327 328 /** 329 * @brief 「ライブラリが未初期化」エラーを表すResultを返す。 330 * @return 「ライブラリが未初期化」エラーを表すResult 331 */ 332 NN_DEFINE_RESULT_CONST_LM( 333 ResultNotInitializedErr, 334 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_INITIALIZED 335 ); 336 337 /** 338 * @brief 「メモリ確保の失敗」エラーを表すResultを返す。 339 * @return 「メモリ確保の失敗」エラーを表すResult 340 */ 341 NN_DEFINE_RESULT_CONST_LM( 342 ResultOutOfMemoryErr, 343 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_OUT_OF_MEMORY 344 ); 345 346 /** 347 * @brief 「通信先サーバーが未割り当て」を表すResultを返す。 348 * @return 「通信先サーバーが未割り当て」を表すResult 349 */ 350 NN_DEFINE_RESULT_CONST_LM( 351 ResultNotAssignServerErr, 352 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_ASSIGN_SERVER 353 ); 354 355 /** 356 * @brief 「すでに通信先サーバーが割り当て済み」を表すResultを返す。 357 * @return 「すでに通信先サーバーが割り当て済み」を表すResult 358 */ 359 NN_DEFINE_RESULT_CONST_LM( 360 ResultAlreadyAssignServerErr, 361 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_ASSIGN_SERVER 362 ); 363 364 /** 365 * @brief 「不正なIPCセッションである」エラーを表すResultを返す。 366 * @return 「不正なIPCセッションである」エラーを表すResult 367 */ 368 NN_DEFINE_RESULT_CONST_LM( 369 ResultIpcSessionErr, 370 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION 371 ); 372 373 /** 374 * @brief 「1プロセスの使用できるコネクションの最大数を越えています。」を表すResultを返す。 375 * @return 「1プロセスの使用できるコネクションの最大数を越えています。」を表すResult 376 */ 377 NN_DEFINE_RESULT_CONST_LM( 378 ResultProcessConnectionMaxErr, 379 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_PROCESS_MAX 380 ); 381 382 /** 383 * @brief 「証明書ストアの作成に失敗しました」を表すResultを返す。 384 * @return 「証明書ストアの作成に失敗しました」を表すResult 385 */ 386 NN_DEFINE_RESULT_CONST_LM( 387 ResultFailToCreateCertStoreErr, 388 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_FAIL_TO_CREATE_CERT_STORE 389 ); 390 391 /** 392 * @brief 「CRLストアの作成に失敗しました」を表すResultを返す。 393 * @return 「CRLストアの作成に失敗しました」を表すResult 394 */ 395 NN_DEFINE_RESULT_CONST_LM( 396 ResultFailToCreateCrlStoreErr, 397 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_FAIL_TO_CREATE_CRL_STORE 398 ); 399 400 /** 401 * @brief 「クライアント証明書の作成に失敗しました」を表すResultを返す。 402 * @return 「クライアント証明書の作成に失敗しました」を表すResult 403 */ 404 NN_DEFINE_RESULT_CONST_LM( 405 ResultFailToCreateClientCertErr, 406 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_FAIL_TO_CREATE_CLIENT_CERT 407 ); 408 409 /** 410 * @brief 「不正な引数です。」を表すResultを返す。 411 * @return 「不正な引数です。」を表すResult 412 */ 413 NN_DEFINE_RESULT_CONST_LM( 414 ResultInvalidParamErr, 415 detail::MakePermanentResult, Result::SUMMARY_INVALID_ARGUMENT, ER_INVALID_PARAM 416 ); 417 418 /** 419 * @brief 「処理が未実装です。」を表すResultを返す。このエラーは内部実装エラーである。 420 * @return 「処理が未実装です。」を表すResult 421 */ 422 NN_DEFINE_RESULT_CONST_LM( 423 ResultNotImplementedErr, 424 detail::MakePermanentResult, Result::SUMMARY_INTERNAL, nn::Result::DESCRIPTION_NOT_IMPLEMENTED 425 ); 426 427 /** 428 * @brief 「同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。」を表すResultを返す。 429 * @return 「同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。」を表すResult 430 */ 431 NN_DEFINE_RESULT_CONST_LM( 432 ResultClientProcessMaxErr, 433 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CLIENT_PROCESS_MAX 434 ); 435 436 /** 437 * @brief 「同時に接続可能なIPCセッション数のセッションがすでに接続されている」を表すResultを返す。 438 * @return 「同時に接続可能なIPCセッション数のセッションがすでに接続されている」を表すResult 439 */ 440 NN_DEFINE_RESULT_CONST_LM( 441 ResultIpcSessionMaxErr, 442 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION_MAX 443 ); 444 445 /** 446 * @brief 「内蔵証明書の利用に失敗」を表すResultを返す。 447 * @return 「内蔵証明書の利用に失敗」を表すResult 448 */ 449 NN_DEFINE_RESULT_CONST_LM( 450 ResultInternalCertErr, 451 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INTERNAL_CERT 452 ); 453 454 /** 455 * @brief 「内蔵CRLの利用に失敗」を表すResultを返す。 456 * @return 「内蔵CRLの利用に失敗」を表すResult 457 */ 458 NN_DEFINE_RESULT_CONST_LM( 459 ResultInternalCrlErr, 460 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INTERNAL_CRL 461 ); 462 463 /** 464 * @brief 「サーバ証明書用バッファが既に設定されている。」を表すResultを返す。 465 * @return 「サーバ証明書用バッファが既に設定されている。」を表すResult 466 */ 467 NN_DEFINE_RESULT_CONST_LM( 468 ResultServerCertBufAlreadySetErr, 469 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ECERT_BUF_ALREADY_SET 470 ); 471 } // end of namespace ssl 472 } // end of namespace nn 473 474 #endif // __cplusplus 475 476 477 #endif /* NN_SSL_SSL_RESULT_H_ */ 478