1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: ssl_CertStore.h 4 Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. 5 These coded instructions, statements, and computer programs contain 6 proprietary information of Nintendo of America Inc. and/or Nintendo 7 Company Ltd., and are protected by Federal copyright law. They may 8 not be disclosed to third parties or copied or duplicated in any form, 9 in whole or in part, without the prior written consent of Nintendo. 10 $Rev: 31762 $ 11 *--------------------------------------------------------------------------- 12 13 14 */ 15 16 #ifndef NN_SSL_SSL_CERTSTORE_H_ 17 #define NN_SSL_SSL_CERTSTORE_H_ 18 19 #include <nn/util/util_NonCopyable.h> 20 #include <nn/ssl/ssl_Types.h> 21 22 #ifdef __cplusplus 23 24 namespace nn { 25 namespace ssl { 26 27 class Connection; 28 29 /* Please see man pages for details 30 31 */ 32 class CertStore : private nn::util::NonCopyable<CertStore> 33 { 34 friend class Connection; 35 public: 36 /* Please see man pages for details 37 38 */ 39 explicit CertStore(); 40 41 /* Please see man pages for details 42 43 */ 44 virtual ~CertStore (void); 45 46 /* Please see man pages for details 47 48 49 50 51 52 */ 53 nn::Result Initialize(void); 54 55 /* Please see man pages for details 56 57 58 59 60 61 62 */ 63 nn::Result Finalize(void); 64 65 /* Please see man pages for details 66 67 68 69 70 71 72 73 74 75 */ 76 nn::Result RegisterCert(const u8* pCertData, size_t certDataSize, CertId* pCertIdCourier=NULL); 77 78 /* Please see man pages for details 79 80 81 82 83 84 85 86 87 */ 88 nn::Result RegisterCert(InternalCaCert inCaCertName, CertId* pCertIdCourier=NULL); 89 90 /* Please see man pages for details 91 92 93 94 95 96 97 98 */ 99 nn::Result UnRegisterCert(CertId certId); 100 101 /* Please see man pages for details 102 103 104 */ GetID(void)105 CertStoreId GetID(void){return m_certStoreId;} 106 107 108 private: 109 bool m_isInitialized; 110 NN_PADDING3; 111 CertStoreId m_certStoreId; 112 113 /* Please see man pages for details 114 115 116 */ IsValid()117 bool IsValid(){return m_isInitialized;} 118 }; 119 120 } // end of namespace ssl 121 } // end of namespace nn 122 123 #endif // __cplusplus 124 125 126 #include <nn/util/detail/util_CLibImpl.h> 127 128 129 /* Please see man pages for details 130 131 132 133 134 135 136 137 138 */ 139 140 /* Please see man pages for details 141 142 143 144 145 */ 146 NN_UTIL_DETAIL_CLIBIMPL_DEFINE_BUFFER_CLASS(nnsslCertStore, nn::ssl::CertStore, 12, u32); 147 148 /* Please see man pages for details 149 150 */ 151 NN_EXTERN_C nnResult nnsslCertStoreInitialize(nnsslCertStore* this_); 152 153 /* Please see man pages for details 154 155 */ 156 NN_EXTERN_C nnResult nnsslCertStoreFinalize(nnsslCertStore* this_); 157 158 /* Please see man pages for details 159 160 */ 161 NN_EXTERN_C nnResult nnsslCertStoreRegisterCert(nnsslCertStore* this_, const u8* pCertData, size_t certDataSize, NnSslCertId* pCertIdCourier); 162 163 /* Please see man pages for details 164 165 */ 166 NN_EXTERN_C nnResult nnsslCertStoreRegistByInternalCert(nnsslCertStore* this_, NnSslInternalCaCert inCaCertName); 167 168 169 170 /* Please see man pages for details 171 172 */ 173 NN_EXTERN_C nnResult nnsslCertStoreUnRegisterCert(nnsslCertStore* this_, NnSslCertId certId); 174 175 176 /* 177 178 179 180 */ 181 182 #endif /* NN_SSL_SSL_CERTSTORE_H_ */ 183