/*---------------------------------------------------------------------------* Project: Horizon File: ssl_Result.h Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 19958 $ *---------------------------------------------------------------------------*/ #ifndef NN_SSL_SSL_RESULT_H_ #define NN_SSL_SSL_RESULT_H_ #include #include //NHTTPライブラリのResultコードを、HTTPのResultCodeに変換するためのマクロ #define CHANGE_NSSL_RESULT_CODE_MASK 0x000003ff #define CHANGE_NSSL_RESULT_CODE(nhttpCode) \ (nhttpCode) & (CHANGE_NSSL_RESULT_CODE_MASK) /*! @addtogroup nn_ssl ssl @{ */ /*! * @brief APIのC言語用結果コード。APIの返値であるnnResultのdescription要素として格納される。 */ enum NnSslResultCode { /* SSL処理関連 */ NNSSL_ENONE = CHANGE_NSSL_RESULT_CODE(NSSL_ENONE), //!< エラー無し NNSSL_EFAILED = CHANGE_NSSL_RESULT_CODE(NSSL_EFAILED), //!< SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等) NNSSL_EWANT_READ = CHANGE_NSSL_RESULT_CODE(NSSL_EWANT_READ), //!< 非同期ソケット使用時の Read 関数の処理未完了。(再試行してください。) NNSSL_EWANT_WRITE = CHANGE_NSSL_RESULT_CODE(NSSL_EWANT_WRITE), //!< 非同期ソケット使用時のWrite 関数の処理未完了。(再試行してください。) NNSSL_ESYSCALL = CHANGE_NSSL_RESULT_CODE(NSSL_ESYSCALL), //!< 内部で使用しているシステム関数が予期せぬエラーを返した。 NNSSL_EZERO_RETURN = CHANGE_NSSL_RESULT_CODE(NSSL_EZERO_RETURN), //!< 内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返された。 NNSSL_EWANT_CONNECT = CHANGE_NSSL_RESULT_CODE(NSSL_EWANT_CONNECT), //!< 非同期ソケット使用時のSSLハンドシェイク(DoHandshake)未完了。(再試行してください。) NNSSL_ESSLID = CHANGE_NSSL_RESULT_CODE(NSSL_ESSLID), //!< 内部エラー(不正なSSLID) NNSSL_EVERIFY_COMMON_NAME = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_COMMON_NAME), //!< サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しない。 NNSSL_EVERIFY_ROOT_CA = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_ROOT_CA), //!< サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しない。 NNSSL_EVERIFY_CHAIN = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_CHAIN), //!< サーバ認証エラー。サーバ証明書の証明書チェインが不正。 NNSSL_EVERIFY_DATE = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_DATE), //!< サーバ認証エラー。サーバ証明書が有効期限外である。 NNSSL_EGET_SERVER_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_EGET_SERVER_CERT), //!< 証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生) NNSSL_EVERIFY_REVOKED_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_REVOKED_CERT), //!< サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書であった。 NNSSL_ESTATE = CHANGE_NSSL_RESULT_CODE(NSSL_ESTATE), //!< SSLライブラリの状態が不正(「初期化処理を行わずにライブラリの他関数を実行した」場合などに発生。)。 NNSSL_ERANDOM = CHANGE_NSSL_RESULT_CODE(NSSL_ERANDOM), //!< 乱数処理のエラー。 NNSSL_EVERIFY_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_EVERIFY_SERVER_CERT), //!< サーバ証明書検証NG。 NNSSL_ECERT_BUF_ALREADY_SET = CHANGE_NSSL_RESULT_CODE(NSSL_ECERT_BUF_ALREADY_SET), //!< サーバ証明書保存用バッファがすでに設定されている。 /* その他のエラー */ NNSSL_ER_ALREADY_INITIALIZED = nn::Result::DESCRIPTION_ALREADY_INITIALIZED, //!< 初期化済み NNSSL_ER_NOT_INITIALIZED = nn::Result::DESCRIPTION_NOT_INITIALIZED, //!< 未初期化 NNSSL_ER_OUT_OF_MEMORY = nn::Result::DESCRIPTION_OUT_OF_MEMORY, //!< メモリの動的取得失敗 NNSSL_ER_NOT_ASSIGN_SERVER = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(50)), //!< 通信先サーバが割り当てられていない NNSSL_ER_ALREADY_ASSIGN_SERVER = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(51)), //!< 通信先サーバーがすでに割り当て済み NNSSL_ER_IPC_SESSION = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(52)), //!< IPCセッションが不正 NNSSL_ER_CONN_PROCESS_MAX = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(53)), //!< 1プロセスの使用コネクション最大数越え NNSSL_ER_FAIL_TO_CREATE_CERT_STORE = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(54)), //!< 証明書ストアの作成に失敗 NNSSL_ER_FAIL_TO_CREATE_CRL_STORE = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(55)), //!< CRLストアの作成に失敗 NNSSL_ER_FAIL_TO_CREATE_CLIENT_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(56)), //!< クライアント証明書の作成に失敗 NNSSL_ER_INVALID_PARAM = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(57)), //!< 引数が不正 NNSSL_ER_CLIENT_PROCESS_MAX = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(58)), //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中。 NNSSL_ER_IPC_SESSION_MAX = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(59)), //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。) NNSSL_ER_INTERNAL_CERT = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(60)), //!< 内蔵証明書の利用に失敗 NNSSL_ER_INTERNAL_CRL = CHANGE_NSSL_RESULT_CODE(NSSL_ERROR_CODE(61)) //!< 内蔵CRLの利用に失敗 }; /*! @} */ #ifdef __cplusplus namespace nn { namespace ssl { /*! * @brief APIの結果コード。APIの返値であるResultのdescription要素として格納される。 * @note 現状はNSSLライブラリの結果コード値と合わせる(ただしResultのdescriptionは10bitであるため、下位10bitのみ用いる。)NSSLライブラリと依存関係になってしまうため、将来的には独立した値に変更する。 */ enum ResultCode { /* SSL処理関連 */ ENONE = NNSSL_ENONE, //!< エラー無し EFAILED = NNSSL_EFAILED, //!< SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等 EWANT_READ = NNSSL_EWANT_READ, //!< 非同期ソケット使用時の Read 関数の処理未完了。(再試行してください。) EWANT_WRITE = NNSSL_EWANT_WRITE, //!< 非同期ソケット使用時のWrite 関数の処理未完了。(再試行してください。) ESYSCALL = NNSSL_ESYSCALL, //!< 内部で使用しているシステム関数が予期せぬエラーを返した。 EZERO_RETURN = NNSSL_EZERO_RETURN, //!< 内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返された。 EWANT_CONNECT = NNSSL_EWANT_CONNECT, //!< 非同期ソケット使用時のSSLハンドシェイク(DoHandshake)未完了。(再試行してください。) ESSLID = NNSSL_ESSLID, //!< 内部エラー(不正なSSLID) EVERIFY_COMMON_NAME = NNSSL_EVERIFY_COMMON_NAME, //!< サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しない。 EVERIFY_ROOT_CA = NNSSL_EVERIFY_ROOT_CA, //!< サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しない。 EVERIFY_CHAIN = NNSSL_EVERIFY_CHAIN, //!< サーバ認証エラー。サーバ証明書の証明書チェインが不正。 EVERIFY_DATE = NNSSL_EVERIFY_DATE, //!< サーバ認証エラー。サーバ証明書が有効期限外である。 EGET_SERVER_CERT = NNSSL_EGET_SERVER_CERT, //!< 証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生) EVERIFY_REVOKED_CERT = NNSSL_EVERIFY_REVOKED_CERT, //!< サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書であった。 ESTATE = NNSSL_ESTATE, //!< SSLライブラリの状態が不正(「初期化処理を行わずにライブラリの他関数を実行した」場合などに発生。)。 ERANDOM = NNSSL_ERANDOM, //!< 乱数処理のエラー。 EVERIFY_CERT = NNSSL_EVERIFY_CERT, //!< サーバ証明書検証NG。 ECERT_BUF_ALREADY_SET = NNSSL_ECERT_BUF_ALREADY_SET, //!< サーバ証明書保存用バッファがすでに設定されている。 /* その他のエラー */ ER_ALREADY_INITIALIZED = NNSSL_ER_ALREADY_INITIALIZED, //!< 初期化済み ER_NOT_INITIALIZED = NNSSL_ER_NOT_INITIALIZED, //!< 未初期化 ER_OUT_OF_MEMORY = NNSSL_ER_OUT_OF_MEMORY, //!< メモリの動的取得失敗 ER_NOT_ASSIGN_SERVER = NNSSL_ER_NOT_ASSIGN_SERVER, //!< 通信先サーバが割り当てられていない ER_ALREADY_ASSIGN_SERVER = NNSSL_ER_ALREADY_ASSIGN_SERVER, //!< 通信先サーバーがすでに割り当て済みである ER_IPC_SESSION = NNSSL_ER_IPC_SESSION, //!< IPCセッションが不正である ER_CONN_PROCESS_MAX = NNSSL_ER_CONN_PROCESS_MAX, //!< 1プロセスの使用コネクション最大数越え ER_FAIL_TO_CREATE_CERT_STORE = NNSSL_ER_FAIL_TO_CREATE_CERT_STORE, //!< 証明書ストアの作成に失敗しました ER_FAIL_TO_CREATE_CRL_STORE = NNSSL_ER_FAIL_TO_CREATE_CRL_STORE, //!< CRLストアの作成に失敗しました ER_FAIL_TO_CREATE_CLIENT_CERT = NNSSL_ER_FAIL_TO_CREATE_CLIENT_CERT, //!< クライアント証明書の作成に失敗しました ER_INVALID_PARAM = NNSSL_ER_INVALID_PARAM, //!< 引数が不正です ER_CLIENT_PROCESS_MAX = NNSSL_ER_CLIENT_PROCESS_MAX, //!< 同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。 ER_IPC_SESSION_MAX = NNSSL_ER_IPC_SESSION_MAX, //!< 同時に接続可能なIPCセッション数のセッションがすでに接続されている(つまりクライアント数、コネクション数共に最大値に達している。) ER_INTERNAL_CERT = NNSSL_ER_INTERNAL_CERT, //!< 内蔵証明書の利用に失敗 ER_INTERNAL_CRL = NNSSL_ER_INTERNAL_CRL //!< 内蔵CRLの利用に失敗 }; namespace detail { /** * @brief NSSLのPermanentエラーを表すResultを返す。 * @param summary エラーを表すResult::Summary値。 * @param errCode エラーコード(nn::nssl::ResultCode列挙体のいずれかの値) * @return 引数に対応するPermanentエラーを表すResult。 */ NN_DEFINE_RESULT_FUNC_LM(MakePermanentResult, Result::LEVEL_PERMANENT, Result::MODULE_NN_SSL); /** * @brief リターンコードに対して、それを表すResultを返す。 * @param returnCode リターンコード(nn::http::ResultCode列挙体のいずれかの値) * @return 引数の内容を表すResult。 */ inline Result ChangeNsslRetCodeToResult(ResultCode returnCode) { if(returnCode == ENONE) { return ResultSuccess(); } else if((returnCode == EWANT_READ) || (returnCode == EWANT_WRITE) || (returnCode == EWANT_CONNECT)) { return detail::MakePermanentResult(Result::SUMMARY_WOULD_BLOCK, returnCode); } else if(returnCode == ER_INVALID_PARAM) { return detail::MakePermanentResult(Result::SUMMARY_INVALID_ARGUMENT, returnCode); } else { return detail::MakePermanentResult(Result::SUMMARY_INVALID_STATE, returnCode); } } /** * @brief リターンコードに対して、それを表すResultを返す。 * @param returnCode NSSLライブラリのリターンコード(nssl.hに定義されたエラーコード) * @return 引数の内容を表すResult。 */ inline Result ChangeNsslRetCodeToResult(s32 returnCode) { return ChangeNsslRetCodeToResult(static_cast(CHANGE_NSSL_RESULT_CODE(returnCode))); } } /** * @brief 「SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等)」エラーを表すResultを返す。 * @return 「SSLプロトコルの失敗によるエラー。(サーバー側でクライアント証明書の検証が失敗した場合等)」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultProtocolFailedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EFAILED ); /** * @brief 「非同期ソケット使用時の Read 関数の処理未完了。(再試行してください。)」を表すResultを返す。 * @return 「非同期ソケット使用時の Read 関数の処理未完了」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultWantRead, detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, EWANT_READ ); /** * @brief 「非同期ソケット使用時のWrite 関数の処理未完了。(再試行してください。)」を表すResultを返す。 * @return 「非同期ソケット使用時のWrite 関数の処理未完了」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultWantWrite, detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, EWANT_WRITE ); /** * @brief 「内部で使用しているシステム関数が予期せぬエラーを返した。」エラーを表すResultを返す。 * @return 「内部で使用しているシステム関数が予期せぬエラーを返した。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultSystemCallErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ESYSCALL ); /** * @brief 「内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返された。」エラーを表すResultを返す。 * @return 「内部でSocketのRead / Write を実施した際、予期せぬタイミングでゼロが返された。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultSocketZeroReturnErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EZERO_RETURN ); /** * @brief 「非同期ソケット使用時のSSLハンドシェイク(DoHandshake)未完了。(再試行してください。)」を表すResultを返す。 * @return 「非同期ソケット使用時のSSLハンドシェイク(DoHandshake)未完了」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultWantConnect, detail::MakePermanentResult, Result::SUMMARY_WOULD_BLOCK, EWANT_CONNECT ); /** * @brief 「内部エラー(不正なSSLID)」エラーを表すResultを返す。 * @return 「内部エラー(不正なSSLID)」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultInternalSslIdErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ESSLID ); /** * @brief 「サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しない。」エラーを表すResultを返す。 * @return 「サーバ認証エラー。サーバ証明書の CommonName と、AssignServer()で指定した通信先サーバのホスト名が一致しない。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultVerifyCertCommonNameErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_COMMON_NAME ); /** * @brief 「サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しない。」を表すResultを返す。 * @return 「サーバ認証エラー。サーバ証明書の Root CA 証明書が、Connectionに設定された証明書と一致しない。」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultVerifyCertRootCaErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_ROOT_CA ); /** * @brief 「サーバ認証エラー。サーバ証明書の証明書チェインが不正。」エラーを表すResultを返す。 * @return 「サーバ認証エラー。サーバ証明書の証明書チェインが不正。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultVerifyCertChainErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_CHAIN ); /** * @brief 「サーバ認証エラー。サーバ証明書が有効期限外である。」エラーを表すResultを返す。 * @return 「サーバ認証エラー。サーバ証明書が有効期限外である。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultVerifyCertDateErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_DATE ); /** * @brief 「証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生)」を表すResultを返す。 * @return 「証明書データのバッファへの格納失敗(引数有りのDoHandshake()で 証明書のサイズがバッファより大きい場合に発生)」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultFailToGetServerCert, detail::MakePermanentResult, Result::SUMMARY_SUCCESS, EGET_SERVER_CERT ); /** * @brief 「サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書であった。」エラーを表すResultを返す。 * @return 「サーバ認証エラー。サーバ証明書が失効リストに登録されているサーバ証明書であった。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultVerifyCertRevokedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_REVOKED_CERT ); /** * @brief 「SSLライブラリの状態が不正(「初期化処理を行わずにライブラリの他関数を実行した」場合などに発生。)。」エラーを表すResultを返す。 * @return 「SSLライブラリの状態が不正(「初期化処理を行わずにライブラリの他関数を実行した」場合などに発生。)。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultLibraryStateErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ESTATE ); /** * @brief 「乱数処理のエラー。」エラーを表すResultを返す。 * @return 「乱数処理のエラー。」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultRandomErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ERANDOM ); /** * @brief 「証明書検証NG」エラーを表すResultを返す。 * @return 「証明書検証NG」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultVerifyCertErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, EVERIFY_CERT ); /** * @brief 「ライブラリがすでに初期化済」エラーを表すResultを返す。 * @return 「ライブラリがすでに初期化済」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultAlreadyInitializedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_INITIALIZED ); /** * @brief 「ライブラリが未初期化」エラーを表すResultを返す。 * @return 「ライブラリが未初期化」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultNotInitializedErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_INITIALIZED ); /** * @brief 「メモリ確保の失敗」エラーを表すResultを返す。 * @return 「メモリ確保の失敗」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultOutOfMemoryErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_OUT_OF_MEMORY ); /** * @brief 「通信先サーバーが未割り当て」を表すResultを返す。 * @return 「通信先サーバーが未割り当て」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultNotAssignServerErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_NOT_ASSIGN_SERVER ); /** * @brief 「すでに通信先サーバーが割り当て済み」を表すResultを返す。 * @return 「すでに通信先サーバーが割り当て済み」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultAlreadyAssignServerErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_ALREADY_ASSIGN_SERVER ); /** * @brief 「不正なIPCセッションである」エラーを表すResultを返す。 * @return 「不正なIPCセッションである」エラーを表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultIpcSessionErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION ); /** * @brief 「1プロセスの使用できるコネクションの最大数を越えています。」を表すResultを返す。 * @return 「1プロセスの使用できるコネクションの最大数を越えています。」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultProcessConnectionMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CONN_PROCESS_MAX ); /** * @brief 「証明書ストアの作成に失敗しました」を表すResultを返す。 * @return 「証明書ストアの作成に失敗しました」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultFailToCreateCertStoreErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_FAIL_TO_CREATE_CERT_STORE ); /** * @brief 「CRLストアの作成に失敗しました」を表すResultを返す。 * @return 「CRLストアの作成に失敗しました」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultFailToCreateCrlStoreErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_FAIL_TO_CREATE_CRL_STORE ); /** * @brief 「クライアント証明書の作成に失敗しました」を表すResultを返す。 * @return 「クライアント証明書の作成に失敗しました」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultFailToCreateClientCertErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_FAIL_TO_CREATE_CLIENT_CERT ); /** * @brief 「不正な引数です。」を表すResultを返す。 * @return 「不正な引数です。」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultInvalidParamErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_ARGUMENT, ER_INVALID_PARAM ); /** * @brief 「処理が未実装です。」を表すResultを返す。このエラーは内部実装エラーである。 * @return 「処理が未実装です。」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultNotImplementedErr, detail::MakePermanentResult, Result::SUMMARY_INTERNAL, nn::Result::DESCRIPTION_NOT_IMPLEMENTED ); /** * @brief 「同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。」を表すResultを返す。 * @return 「同時利用可能なクライアントプロセス数のクライアントがすでに利用中である。」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultClientProcessMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_CLIENT_PROCESS_MAX ); /** * @brief 「同時に接続可能なIPCセッション数のセッションがすでに接続されている」を表すResultを返す。 * @return 「同時に接続可能なIPCセッション数のセッションがすでに接続されている」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultIpcSessionMaxErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_IPC_SESSION_MAX ); /** * @brief 「内蔵証明書の利用に失敗」を表すResultを返す。 * @return 「内蔵証明書の利用に失敗」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultInternalCertErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INTERNAL_CERT ); /** * @brief 「内蔵CRLの利用に失敗」を表すResultを返す。 * @return 「内蔵CRLの利用に失敗」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultInternalCrlErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ER_INTERNAL_CRL ); /** * @brief 「サーバ証明書用バッファが既に設定されている。」を表すResultを返す。 * @return 「サーバ証明書用バッファが既に設定されている。」を表すResult */ NN_DEFINE_RESULT_CONST_LM( ResultServerCertBufAlreadySetErr, detail::MakePermanentResult, Result::SUMMARY_INVALID_STATE, ECERT_BUF_ALREADY_SET ); } // end of namespace ssl } // end of namespace nn #endif // __cplusplus #endif /* NN_SSL_SSL_RESULT_H_ */