/*---------------------------------------------------------------------------* Project: Horizon File: ssl_Common.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: 19716 $ *---------------------------------------------------------------------------*/ #ifndef NN_SSL_SSL_COMMON_H_ #define NN_SSL_SSL_COMMON_H_ #include #include #ifdef __cplusplus namespace nn { namespace ssl { //---------------------------------------- //! @name ライブラリ全体の初期化、終了処理 //@{ /*! @brief SSLライブラリの初期化を実施します。SSLライブラリをリンクしているプロセスは、ライブラリ利用前に一度呼び出す必要があります。 @return 処理の結果が返ります。
@retval Description==ER_ALREADY_INITIALIZED 「すでに初期化済み」を表すエラー。 */ Result Initialize(void); /*! @brief SSLライブラリの終了処理を実施します。SSLライブラリをリンクしているプロセスは、ライブラリ利用終了後に一度呼び出す必要があります。 @return 処理の結果が返ります。
@retval Description==ER_NOT_INITIALIZED 「初期化されていない」を表すエラー。 */ Result Finalize(void); //@} //---------------------------------------- //! @name 擬似乱数用関数 //@{ /*! @brief 乱数用エントロピーを新規に収集します。 ※SSLプロセスも自らエントロピーを収集しています。本関数は任意のタイミングで新たにエントロピーを収集しなおさせたい場合に利用します。 @return 処理の結果が返ります。
*/ Result GatherRandomEntropy( void ); /*! @brief 乱数を取得します。 @param[out] pOutData 乱数を格納するバッファ。 @param[in] outDataSize pOutDataのサイズ。 @return 処理の結果が返ります。
*/ Result GenerateRandomBytes( u8 pOutData[], size_t outDataSize ); //@} namespace { /** @brief コネクション用IPCポートの名称 */ const char PORT_NAME_CONNECTION[] = "ssl:C"; /** @brief ポートのタイプと、ポート数を表す列挙体 */ enum IpcPortType { PORT_CONNECTION, NUM_OF_PORTS }; } } // end of namespace ssl } // end of namespace nn #endif /*__cplusplus*/ extern "C" { /*! @brief 対応する C++ 関数 @ref nn::ssl::Initialize を参照してください。 */ nnResult nnsslInitialize(void); /*! @brief 対応する C++ 関数 @ref nn::ssl::Finalize を参照してください。 */ nnResult nnsslFinalize(void); /*! @brief 対応する C++ 関数 @ref nn::ssl::GatherRandomEntropy を参照してください。 */ nnResult nnsslGatherRandomEntropy( void ); /*! @brief 対応する C++ 関数 @ref nn::ssl::GenerateRandomBytes を参照してください。 */ nnResult nnsslGenerateRandomBytes(u8 pOutData[], size_t outDataSize); } /*extern "C"*/ #endif /* NN_SSL_SSL_COMMON_H_ */