1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: http_CertStore.h 4 Copyright (C)2010 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_HTTP_HTTP_CERTSTORE_H_ 17 #define NN_HTTP_HTTP_CERTSTORE_H_ 18 19 #include <nn/util/util_NonCopyable.h> 20 #include <nn/http/http_Types.h> 21 22 #ifdef __cplusplus 23 24 namespace nn { 25 namespace http { 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 nn::Result Finalize(void); 63 64 /* Please see man pages for details 65 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 */ 89 nn::Result RegisterCert(InternalCaCertId inCaCertName, CertId* pCertIdCourier=NULL); 90 91 /* Please see man pages for details 92 93 94 95 96 97 98 99 */ 100 nn::Result UnRegisterCert(CertId certId); 101 102 103 104 private: 105 bool m_isInitialized; 106 NN_PADDING3; 107 CertStoreId m_certStoreId; 108 109 /* Please see man pages for details 110 111 112 */ IsValid()113 bool IsValid(){return m_isInitialized;} 114 }; 115 116 } // end of namespace http 117 } // end of namespace nn 118 119 #endif // __cplusplus 120 121 122 #include <nn/util/detail/util_CLibImpl.h> 123 124 125 /* Please see man pages for details 126 127 128 129 130 131 132 133 134 */ 135 136 /* Please see man pages for details 137 138 139 140 141 */ 142 NN_UTIL_DETAIL_CLIBIMPL_DEFINE_BUFFER_CLASS(nnhttpCertStore, nn::http::CertStore, 12, u32); 143 144 /* Please see man pages for details 145 146 */ 147 NN_EXTERN_C nnResult nnhttpCertStoreInitialize(nnhttpCertStore* this_); 148 149 /* Please see man pages for details 150 151 */ 152 NN_EXTERN_C nnResult nnhttpCertStoreFinalize(nnhttpCertStore* this_); 153 154 /* Please see man pages for details 155 156 */ 157 NN_EXTERN_C nnResult nnhttpCertStoreRegisterCert(nnhttpCertStore* this_, const u8* pCertData, size_t certDataSize, NnHttpCertId* pCertIdCourier); 158 159 /* Please see man pages for details 160 161 */ 162 NN_EXTERN_C nnResult nnhttpCertStoreRegisterInternalCert(nnhttpCertStore* this_, NnHttpInternalCaCertId inCaCertName, NnHttpCertId* pCertIdCourier); 163 164 165 /* Please see man pages for details 166 167 */ 168 NN_EXTERN_C nnResult nnhttpCertStoreUnRegisterCert(nnhttpCertStore* this_, NnHttpCertId certId); 169 170 171 /* 172 173 174 175 */ 176 177 #endif /* NN_HTTP_HTTP_CERTSTORE_H_ */ 178