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: 31304 $ 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 /*! 177 :category Result 178 @class nn::ssl::ResultProtocolFailedErr 179 @brief SSLプロトコルの失敗によるエラー(サーバー側でクライアント証明書の検証が失敗した場合等)を表します。 180 */ 181 NN_DEFINE_RESULT_CONST_LM( 182 ResultProtocolFailedErr, 183 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EFAILED 184 ); 185 186 /*! 187 :category Result 188 @class nn::ssl::ResultWantRead 189 @brief 非同期ソケット使用時の Read 関数の処理未完了(再試行してください)を表します。 190 */ 191 NN_DEFINE_RESULT_CONST_LM( 192 ResultWantRead, 193 detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, EWANT_READ 194 ); 195 196 /*! 197 :category Result 198 @class nn::ssl::ResultWantWrite 199 @brief 非同期ソケット使用時のWrite 関数の処理未完了を表します。 200 */ 201 NN_DEFINE_RESULT_CONST_LM( 202 ResultWantWrite, 203 detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, EWANT_WRITE 204 ); 205 206 /*! 207 :category Result 208 @class nn::ssl::ResultSystemCallErr 209 @brief 内部で使用しているシステム関数が予期せぬエラーを表します。 210 */ 211 NN_DEFINE_RESULT_CONST_LM( 212 ResultSystemCallErr, 213 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ESYSCALL 214 ); 215 216 217 /*! 218 :category Result 219 @class nn::ssl::ResultSocketZeroReturn 220 @brief 内部でSocketのRead / Write を実施した際、ゼロが返されたことを表します。サーバ側の通信終了後のRead/Writeなどで返ります。 221 */ 222 NN_DEFINE_RESULT_CONST_LM( 223 ResultSocketZeroReturn, 224 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EZERO_RETURN 225 ); 226 227 /*! 228 :category Result 229 @class nn::ssl::ResultWantConnect 230 @brief 非同期ソケット使用時のSSLハンドシェイク(DoHandshake)未完了(再試行してください)を表します。 231 */ 232 NN_DEFINE_RESULT_CONST_LM( 233 ResultWantConnect, 234 detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, EWANT_CONNECT 235 ); 236 237 /*! 238 :category Result 239 @class nn::ssl::ResultInternalSslIdErr 240 @brief 内部エラー(不正なSSLID)を表します。 241 */ 242 NN_DEFINE_RESULT_CONST_LM( 243 ResultInternalSslIdErr, 244 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ESSLID 245 ); 246 247 /*! 248 :category Result 249 @class nn::ssl::ResultFailToGetServerCert 250 @brief 証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生)を表します。 251 */ 252 NN_DEFINE_RESULT_CONST_LM( 253 ResultFailToGetServerCert, 254 detail::MakePermanentResult, Result::SUMMARY_SUCCESS, EGET_SERVER_CERT 255 ); 256 257 /*! 258 :category Result 259 @class nn::ssl::ResultVerifyCertRevokedErr 260 @brief サーバ認証エラー(サーバ証明書が失効リストに登録されているサーバ証明書であった)を表します。 261 */ 262 NN_DEFINE_RESULT_CONST_LM( 263 ResultVerifyCertRevokedErr, 264 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_REVOKED_CERT 265 ); 266 267 /*! 268 :category Result 269 @class nn::ssl::ResultLibraryStateErr 270 @brief SSLライブラリの状態が不正(「初期化処理を行わずにライブラリの他関数を実行した」場合などに発生)を表します。 271 */ 272 NN_DEFINE_RESULT_CONST_LM( 273 ResultLibraryStateErr, 274 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ESTATE 275 ); 276 277 /*! 278 :category Result 279 @class nn::ssl::ResultRandomErr 280 @brief 乱数処理のエラーを表します。 281 */ 282 NN_DEFINE_RESULT_CONST_LM( 283 ResultRandomErr, 284 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ERANDOM 285 ); 286 287 /*! 288 :category Result 289 @class nn::ssl::ResultVerifyCertErr 290 @brief 証明書検証NGを表します。 291 */ 292 NN_DEFINE_RESULT_CONST_LM( 293 ResultVerifyCertErr, 294 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_CERT 295 ); 296 297 /*! 298 :category Result 299 @class nn::ssl::ResultAlreadyInitializedErr 300 @brief ライブラリがすでに初期化済を表します。 301 */ 302 NN_DEFINE_RESULT_CONST_LM( 303 ResultAlreadyInitializedErr, 304 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_INITIALIZED 305 ); 306 307 /*! 308 :category Result 309 @class nn::ssl::ResultNotInitializedErr 310 @brief ライブラリが未初期化を表します。 311 */ 312 NN_DEFINE_RESULT_CONST_LM( 313 ResultNotInitializedErr, 314 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_INITIALIZED 315 ); 316 317 /*! 318 :category Result 319 @class nn::ssl::ResultOutOfMemoryErr 320 @brief メモリ確保の失敗を表します。 321 */ 322 NN_DEFINE_RESULT_CONST_LM( 323 ResultOutOfMemoryErr, 324 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_OUT_OF_MEMORY 325 ); 326 327 /*! 328 :category Result 329 @class nn::ssl::ResultNotAssignServerErr 330 @brief 通信先サーバーが未割り当てを表します。 331 */ 332 NN_DEFINE_RESULT_CONST_LM( 333 ResultNotAssignServerErr, 334 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_ASSIGN_SERVER 335 ); 336 337 338 /*! 339 :category Result 340 @class nn::ssl::ResultAlreadyAssignServerErr 341 @brief すでに通信先サーバーが割り当て済みを表します。 342 */ 343 NN_DEFINE_RESULT_CONST_LM( 344 ResultAlreadyAssignServerErr, 345 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_ASSIGN_SERVER 346 ); 347 348 /*! 349 :category Result 350 @class nn::ssl::ResultIpcSessionErr 351 @brief 不正なIPCセッションであるを表します。 352 */ 353 NN_DEFINE_RESULT_CONST_LM( 354 ResultIpcSessionErr, 355 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION 356 ); 357 358 /*! 359 :category Result 360 @class nn::ssl::ResultProcessConnectionMaxErr 361 @brief 1プロセスの使用できるコネクションの最大数を越えているを表します。 362 */ 363 NN_DEFINE_RESULT_CONST_LM( 364 ResultProcessConnectionMaxErr, 365 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_PROCESS_MAX 366 ); 367 368 /*! 369 :category Result 370 @class nn::ssl::ResultFailToCreateCertStoreErr 371 @brief 証明書ストアの作成に失敗しましたを表します。 372 */ 373 NN_DEFINE_RESULT_CONST_LM( 374 ResultFailToCreateCertStoreErr, 375 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_FAIL_TO_CREATE_CERT_STORE 376 ); 377 378 /*! 379 :category Result 380 @class nn::ssl::ResultFailToCreateCrlStoreErr 381 @brief CRLストアの作成失敗を表します。 382 */ 383 NN_DEFINE_RESULT_CONST_LM( 384 ResultFailToCreateCrlStoreErr, 385 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_FAIL_TO_CREATE_CRL_STORE 386 ); 387 388 389 /*! 390 :category Result 391 @class nn::ssl::ResultFailToCreateClientCertErr 392 @brief クライアント証明書の作成失敗を表します。 393 */ 394 NN_DEFINE_RESULT_CONST_LM( 395 ResultFailToCreateClientCertErr, 396 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_FAIL_TO_CREATE_CLIENT_CERT 397 ); 398 399 /*! 400 :category Result 401 @class nn::ssl::ResultInvalidParamErr 402 @brief 不正な引数を表します。 403 */ 404 NN_DEFINE_RESULT_CONST_LM( 405 ResultInvalidParamErr, 406 detail::MakePermanentResult, Result::SUMMARY_INVALID_ARGUMENT, ER_INVALID_PARAM 407 ); 408 409 /*! 410 :category Result 411 @class nn::ssl::ResultNotImplementedErr 412 @brief 処理が未実装を表します。 413 */ 414 NN_DEFINE_RESULT_CONST_LM( 415 ResultNotImplementedErr, 416 detail::MakePermanentResult, Result::SUMMARY_INTERNAL, nn::Result::DESCRIPTION_NOT_IMPLEMENTED 417 ); 418 419 /*! 420 :category Result 421 @class nn::ssl::ResultClientProcessMaxErr 422 @brief 同時利用可能なクライアントプロセス数のクライアントがすでに利用中を表します。 423 */ 424 NN_DEFINE_RESULT_CONST_LM( 425 ResultClientProcessMaxErr, 426 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CLIENT_PROCESS_MAX 427 ); 428 429 /*! 430 :category Result 431 @class nn::ssl::ResultIpcSessionMaxErr 432 @brief 同時に接続可能なIPCセッション数のセッションがすでに接続を表します。 433 */ 434 NN_DEFINE_RESULT_CONST_LM( 435 ResultIpcSessionMaxErr, 436 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION_MAX 437 ); 438 439 /*! 440 :category Result 441 @class nn::ssl::ResultInternalCertErr 442 @brief 内蔵証明書の利用に失敗を表します。 443 */ 444 NN_DEFINE_RESULT_CONST_LM( 445 ResultInternalCertErr, 446 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INTERNAL_CERT 447 ); 448 449 /*! 450 :category Result 451 @class nn::ssl::ResultInternalCrlErr 452 @brief 内蔵CRLの利用に失敗を表します。 453 */ 454 NN_DEFINE_RESULT_CONST_LM( 455 ResultInternalCrlErr, 456 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INTERNAL_CRL 457 ); 458 459 /*! 460 :category Result 461 @class nn::ssl::ResultServerCertBufAlreadySetErr 462 @brief サーバ証明書用バッファが既に設定されているを表します。 463 */ 464 NN_DEFINE_RESULT_CONST_LM( 465 ResultServerCertBufAlreadySetErr, 466 detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ECERT_BUF_ALREADY_SET 467 ); 468 } // end of namespace ssl 469 } // end of namespace nn 470 471 #endif // __cplusplus 472 473 474 #endif /* NN_SSL_SSL_RESULT_H_ */ 475