📄 pubkey_8h-source.html
字号:
00228 <span class="keyword">public</span>:00229 <span class="keywordtype">bool</span> VerifyDigest(<span class="keyword">const</span> byte *digest, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> digestLen, <span class="keyword">const</span> byte *sig) <span class="keyword">const</span>;00230 };00231 00232 <span class="comment">// ********************************************************</span>00233 <span class="comment"></span>00234 <span class="comment">//! .</span>00235 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> T1, <span class="keyword">class</span> T2, <span class="keyword">class</span> T3><a name="l00236"></a><a class="code" href="struct_t_f___scheme_options.html">00236</a> <span class="keyword">struct </span><a class="code" href="struct_t_f___scheme_options.html">TF_SchemeOptions</a>00237 {00238 <span class="keyword">typedef</span> T1 AlgorithmInfo;00239 <span class="keyword">typedef</span> T2 Keys;00240 <span class="keyword">typedef</span> <span class="keyword">typename</span> Keys::PrivateKey PrivateKey;00241 <span class="keyword">typedef</span> <span class="keyword">typename</span> Keys::PublicKey PublicKey;00242 <span class="keyword">typedef</span> T3 PaddingAlgorithm;00243 };00244 <span class="comment"></span>00245 <span class="comment">//! .</span>00246 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> KEYS><a name="l00247"></a><a class="code" href="class_public_key_copier.html">00247</a> <span class="keyword">class </span><a class="code" href="class_public_key_copier.html">PublicKeyCopier</a>00248 {00249 <span class="keyword">public</span>:00250 <span class="keyword">virtual</span> <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> KEYS::PublicKey &key) <span class="keyword">const</span> =0;00251 };00252 <span class="comment"></span>00253 <span class="comment">//! .</span>00254 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> KEYS><a name="l00255"></a><a class="code" href="class_private_key_copier.html">00255</a> <span class="keyword">class </span><a class="code" href="class_private_key_copier.html">PrivateKeyCopier</a>00256 {00257 <span class="keyword">public</span>:00258 <span class="keyword">virtual</span> <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> KEYS::PublicKey &key) <span class="keyword">const</span> =0;00259 <span class="keyword">virtual</span> <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> KEYS::PrivateKey &key) <span class="keyword">const</span> =0;00260 };00261 <span class="comment"></span>00262 <span class="comment">//! .</span>00263 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> BASE, <span class="keyword">class</span> SCHEME_OPTIONS, <span class="keyword">class</span> KEY><a name="l00264"></a><a class="code" href="class_t_f___object_impl_base.html">00264</a> <span class="keyword">class </span><a class="code" href="class_t_f___object_impl_base.html">TF_ObjectImplBase</a> : <span class="keyword">public</span> AlgorithmImpl<BASE, typename SCHEME_OPTIONS::AlgorithmInfo>00265 {00266 <span class="keyword">public</span>:00267 <span class="keyword">typedef</span> SCHEME_OPTIONS SchemeOptions;00268 <span class="keyword">typedef</span> KEY KeyClass;00269 00270 <a class="code" href="class_public_key.html">PublicKey</a> & AccessPublicKey() {<span class="keywordflow">return</span> AccessKey();}00271 <span class="keyword">const</span> <a class="code" href="class_public_key.html">PublicKey</a> & GetPublicKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetKey();}00272 00273 <a class="code" href="class_private_key.html">PrivateKey</a> & AccessPrivateKey() {<span class="keywordflow">return</span> AccessKey();}00274 <span class="keyword">const</span> <a class="code" href="class_private_key.html">PrivateKey</a> & GetPrivateKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetKey();}00275 00276 <span class="keyword">virtual</span> <span class="keyword">const</span> KeyClass & GetKey() <span class="keyword">const</span> =0;00277 <span class="keyword">virtual</span> KeyClass & AccessKey() =0;00278 00279 <span class="keyword">const</span> KeyClass & GetTrapdoorFunction()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetKey();}00280 00281 <span class="keyword">protected</span>:00282 <span class="keyword">const</span> <a class="code" href="class_p_k___padding_algorithm.html">PK_PaddingAlgorithm</a> & GetPaddingAlgorithm()<span class="keyword"> const </span>{<span class="keyword">static</span> <span class="keyword">typename</span> SCHEME_OPTIONS::PaddingAlgorithm paddingScheme; <span class="keywordflow">return</span> paddingScheme;}00283 <span class="keyword">const</span> TrapdoorFunctionBounds & GetTrapdoorFunctionBounds()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetKey();}00284 <span class="keyword">const</span> <span class="keyword">typename</span> BASE::TrapdoorFunctionInterface & GetTrapdoorFunctionInterface()<span class="keyword"> const </span>{<span class="keywordflow">return</span> GetKey();}00285 };00286 <span class="comment"></span>00287 <span class="comment">//! .</span>00288 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> BASE, <span class="keyword">class</span> SCHEME_OPTIONS, <span class="keyword">class</span> KEY><a name="l00289"></a><a class="code" href="class_t_f___object_impl_ext_ref.html">00289</a> <span class="keyword">class </span><a class="code" href="class_t_f___object_impl_ext_ref.html">TF_ObjectImplExtRef</a> : <span class="keyword">public</span> <a class="code" href="class_t_f___object_impl_base.html">TF_ObjectImplBase</a><BASE, SCHEME_OPTIONS, KEY>00290 {00291 <span class="keyword">public</span>:00292 <a class="code" href="class_t_f___object_impl_ext_ref.html">TF_ObjectImplExtRef</a>(<span class="keyword">const</span> KEY *pKey = NULL) : m_pKey(pKey) {}00293 <span class="keywordtype">void</span> SetKeyPtr(<span class="keyword">const</span> KEY *pKey) {m_pKey = pKey;}00294 00295 <span class="keyword">const</span> KEY & GetKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *m_pKey;}00296 KEY & AccessKey() {<span class="keywordflow">throw</span> <a class="code" href="class_not_implemented.html">NotImplemented</a>(<span class="stringliteral">"TF_ObjectImplExtRef: cannot modify refererenced key"</span>);}00297 00298 <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> SCHEME_OPTIONS::PrivateKey &key)<span class="keyword"> const </span>{assert(<span class="keyword">false</span>);}00299 <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> SCHEME_OPTIONS::PublicKey &key)<span class="keyword"> const </span>{assert(<span class="keyword">false</span>);}00300 00301 <span class="keyword">private</span>:00302 <span class="keyword">const</span> KEY * m_pKey;00303 };00304 <span class="comment"></span>00305 <span class="comment">//! .</span>00306 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> BASE, <span class="keyword">class</span> SCHEME_OPTIONS, <span class="keyword">class</span> KEY><a name="l00307"></a><a class="code" href="class_t_f___object_impl.html">00307</a> <span class="keyword">class </span><a class="code" href="class_t_f___object_impl.html">TF_ObjectImpl</a> : <span class="keyword">public</span> <a class="code" href="class_t_f___object_impl_base.html">TF_ObjectImplBase</a><BASE, SCHEME_OPTIONS, KEY>00308 {00309 <span class="keyword">public</span>:00310 <span class="keyword">const</span> KEY & GetKey()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_trapdoorFunction;}00311 KEY & AccessKey() {<span class="keywordflow">return</span> m_trapdoorFunction;}00312 00313 <span class="keyword">private</span>:00314 KEY m_trapdoorFunction;00315 };00316 <span class="comment"></span>00317 <span class="comment">//! .</span>00318 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> BASE, <span class="keyword">class</span> SCHEME_OPTIONS><a name="l00319"></a><a class="code" href="class_t_f___public_object_impl.html">00319</a> <span class="keyword">class </span><a class="code" href="class_t_f___public_object_impl.html">TF_PublicObjectImpl</a> : <span class="keyword">public</span> <a class="code" href="class_t_f___object_impl.html">TF_ObjectImpl</a><BASE, SCHEME_OPTIONS, typename SCHEME_OPTIONS::PublicKey>, <span class="keyword">public</span> <a class="code" href="class_public_key_copier.html">PublicKeyCopier</a><SCHEME_OPTIONS>00320 {00321 <span class="keyword">public</span>:00322 <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> SCHEME_OPTIONS::PublicKey &key)<span class="keyword"> const </span>{key = GetKey();}00323 };00324 <span class="comment"></span>00325 <span class="comment">//! .</span>00326 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> BASE, <span class="keyword">class</span> SCHEME_OPTIONS><a name="l00327"></a><a class="code" href="class_t_f___private_object_impl.html">00327</a> <span class="keyword">class </span><a class="code" href="class_t_f___private_object_impl.html">TF_PrivateObjectImpl</a> : <span class="keyword">public</span> <a class="code" href="class_t_f___object_impl.html">TF_ObjectImpl</a><BASE, SCHEME_OPTIONS, typename SCHEME_OPTIONS::PrivateKey>, <span class="keyword">public</span> <a class="code" href="class_private_key_copier.html">PrivateKeyCopier</a><SCHEME_OPTIONS>00328 {00329 <span class="keyword">public</span>:00330 <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> SCHEME_OPTIONS::PrivateKey &key)<span class="keyword"> const </span>{key = GetKey();}00331 <span class="keywordtype">void</span> CopyKeyInto(<span class="keyword">typename</span> SCHEME_OPTIONS::PublicKey &key)<span class="keyword"> const </span>{key = GetKey();}00332 };00333 <span class="comment"></span>00334 <span class="comment">//! .</span>00335 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> SCHEME_OPTIONS><a name="l00336"></a><a class="code" href="class_t_f___decryptor_impl.html">00336</a> <span class="keyword">class </span><a class="code" href="class_t_f___decryptor_impl.html">TF_DecryptorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_t_f___private_object_impl.html">TF_PrivateObjectImpl</a><TF_DecryptorBase, SCHEME_OPTIONS>00337 {00338 };00339 <span class="comment"></span>00340 <span class="comment">//! .</span>00341 <span class="comment"></span><span class="keyword">template</span> <<span class="keyword">class</span> SCHEME_OPTIONS><a name="l00342"></a><a class="code" href="class_t_f___encryptor_impl.html">00342</a> <span class="keyword">class </span><a class="code" href="class_t_f___encryptor_impl.html">TF_EncryptorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_t_f___public_object_impl.html">TF_PublicObjectImpl</a><TF_EncryptorBase, SCHEME_OPTIONS>00343 {00344 };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -