📄 cypher_8h-source.html
字号:
00452 00453 <span class="preprocessor">#if P_SSL</span>00454 <span class="preprocessor"></span>00459 <span class="keyword">class </span>PMessageDigestSHA1 : <span class="keyword">public</span> <a class="code" href="classPMessageDigest.html">PMessageDigest</a>00460 {00461 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(PMessageDigestSHA1, <a class="code" href="classPMessageDigest.html">PMessageDigest</a>)00462 00463 <span class="keyword">public</span>:00465 PMessageDigestSHA1();00466 ~PMessageDigestSHA1();00467 00469 <span class="keywordtype">void</span> <a class="code" href="classPMessageDigest.html#a1">Start</a>();00470 00472 <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> Encode(00473 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & str 00474 );00476 <span class="keyword">static</span> <span class="keywordtype">void</span> Encode(00477 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & str, 00478 Result & result 00479 );00481 <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> Encode(00482 <span class="keyword">const</span> <span class="keywordtype">char</span> * cstr 00483 );00485 <span class="keyword">static</span> <span class="keywordtype">void</span> Encode(00486 <span class="keyword">const</span> <span class="keywordtype">char</span> * cstr, 00487 Result & result 00488 );00490 <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> Encode(00491 <span class="keyword">const</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & data 00492 );00494 <span class="keyword">static</span> <span class="keywordtype">void</span> Encode(00495 <span class="keyword">const</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & data, 00496 Result & result 00497 );00499 <span class="keyword">static</span> <a class="code" href="classPString.html">PString</a> Encode(00500 <span class="keyword">const</span> <span class="keywordtype">void</span> * dataBlock, 00501 PINDEX length 00502 );00508 <span class="keyword">static</span> <span class="keywordtype">void</span> Encode(00509 <span class="keyword">const</span> <span class="keywordtype">void</span> * dataBlock, 00510 PINDEX length, 00511 Result & result 00512 );00513 00514 <span class="keyword">protected</span>:00515 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPMessageDigest.html#b0">InternalProcess</a>(00516 <span class="keyword">const</span> <span class="keywordtype">void</span> * dataBlock, 00517 PINDEX length 00518 );00519 00520 <span class="keywordtype">void</span> <a class="code" href="classPMessageDigest.html#b1">InternalCompleteDigest</a>(00521 Result & result 00522 );00523 00524 <span class="keyword">private</span>:00525 <span class="keywordtype">void</span> * shaContext;00526 };00527 00528 <span class="preprocessor">#endif</span>00529 <span class="preprocessor"></span><a name="l00533"></a><a class="code" href="classPCypher.html">00533</a> <span class="keyword">class </span><a class="code" href="classPCypher.html">PCypher</a> : <span class="keyword">public</span> <a class="code" href="classPObject.html">PObject</a>00534 {00535 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPCypher.html">PCypher</a>, <a class="code" href="classPObject.html">PObject</a>)00536 00537 <span class="keyword">public</span>:<a name="l00539"></a><a class="code" href="classPCypher.html#s9">00539</a> <span class="keyword">enum</span> <a class="code" href="classPCypher.html#s9">BlockChainMode</a> {00540 <a class="code" href="classPCypher.html#s9s0">ElectronicCodebook</a>,00541 <a class="code" href="classPCypher.html#s9s1">ECB</a> = <a class="code" href="classPCypher.html#s9s0">ElectronicCodebook</a>,00542 <a class="code" href="classPCypher.html#s9s2">CypherBlockChaining</a>,00543 <a class="code" href="classPCypher.html#s9s3">CBC</a> = <a class="code" href="classPCypher.html#s9s2">CypherBlockChaining</a>,00544 <a class="code" href="classPCypher.html#s9s4">OutputFeedback</a>,00545 <a class="code" href="classPCypher.html#s9s5">OFB</a> = <a class="code" href="classPCypher.html#s9s4">OutputFeedback</a>,00546 <a class="code" href="classPCypher.html#s9s6">CypherFeedback</a>,00547 <a class="code" href="classPCypher.html#s9s7">CFB</a> = <a class="code" href="classPCypher.html#s9s6">CypherFeedback</a>,00548 <a class="code" href="classPCypher.html#s9s8">NumBlockChainModes</a>00549 };00550 00551 <span class="comment">// New functions for class</span>00553 <span class="comment"></span> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPCypher.html#a0">Encode</a>(00554 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & str 00555 );00557 <a class="code" href="classPString.html">PString</a> <a class="code" href="classPCypher.html#a0">Encode</a>(00558 <span class="keyword">const</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & clear 00559 );00561 <a class="code" href="classPString.html">PString</a> <a class="code" href="classPCypher.html#a0">Encode</a>(00562 <span class="keyword">const</span> <span class="keywordtype">void</span> * data, 00563 PINDEX length 00564 );00566 <span class="keywordtype">void</span> <a class="code" href="classPCypher.html#a0">Encode</a>(00567 <span class="keyword">const</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & clear, 00568 <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & coded 00569 );00585 <span class="keywordtype">void</span> <a class="code" href="classPCypher.html#a0">Encode</a>(00586 <span class="keyword">const</span> <span class="keywordtype">void</span> * data, <span class="comment">// Clear text binary data to be encoded.</span>00587 PINDEX length, <span class="comment">// Number of bytes of data to be encoded.</span>00588 <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & coded <span class="comment">// Encoded data.</span>00589 );00590 00592 <a class="code" href="classPString.html">PString</a> <a class="code" href="classPCypher.html#a5">Decode</a>(00593 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & cypher 00594 );00596 BOOL <a class="code" href="classPCypher.html#a5">Decode</a>(00597 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & cypher, 00598 <a class="code" href="classPString.html">PString</a> & clear 00599 );00601 BOOL <a class="code" href="classPCypher.html#a5">Decode</a>(00602 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & cypher, 00603 <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & clear 00604 );00606 PINDEX <a class="code" href="classPCypher.html#a5">Decode</a>(00607 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & cypher, 00608 <span class="keywordtype">void</span> * data, 00609 PINDEX length 00610 );00612 PINDEX <a class="code" href="classPCypher.html#a5">Decode</a>(00613 <span class="keyword">const</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & coded, 00614 <span class="keywordtype">void</span> * data, 00615 PINDEX length 00616 );00632 BOOL <a class="code" href="classPCypher.html#a5">Decode</a>(00633 <span class="keyword">const</span> <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & coded, 00634 <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & clear 00635 );00636 00637 00638 <span class="keyword">protected</span>:00642 <a class="code" href="classPCypher.html#b0">PCypher</a>(00643 PINDEX <a class="code" href="classPCypher.html#n1">blockSize</a>, 00644 <a class="code" href="classPCypher.html#s9">BlockChainMode</a> <a class="code" href="classPCypher.html#n2">chainMode</a> 00645 );00646 <a class="code" href="classPCypher.html#b0">PCypher</a>(00647 <span class="keyword">const</span> <span class="keywordtype">void</span> * keyData, 00648 PINDEX keyLength, 00649 PINDEX <a class="code" href="classPCypher.html#n1">blockSize</a>, 00650 <a class="code" href="classPCypher.html#s9">BlockChainMode</a> <a class="code" href="classPCypher.html#n2">chainMode</a> 00651 );00652 00653 00655 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPCypher.html#b2">Initialise</a>(00656 BOOL encoding 00657 ) = 0;00658 00660 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPCypher.html#b3">EncodeBlock</a>(00661 <span class="keyword">const</span> <span class="keywordtype">void</span> * in, 00662 <span class="keywordtype">void</span> * out 00663 ) = 0;00664 00665 00667 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPCypher.html#b4">DecodeBlock</a>(00668 <span class="keyword">const</span> <span class="keywordtype">void</span> * in, 00669 <span class="keywordtype">void</span> * out 00670 ) = 0;00671 00672 <a name="l00674"></a><a class="code" href="classPCypher.html#n0">00674</a> <a class="code" href="classPBYTEArray.html">PBYTEArray</a> <a class="code" href="classPCypher.html#n0">key</a>;<a name="l00676"></a><a class="code" href="classPCypher.html#n1">00676</a> PINDEX <a class="code" href="classPCypher.html#n1">blockSize</a>;<a name="l00678"></a><a class="code" href="classPCypher.html#n2">00678</a> <a class="code" href="classPCypher.html#s9">BlockChainMode</a> <a class="code" href="classPCypher.html#n2">chainMode</a>;00679 };00680 00681 <a name="l00689"></a><a class="code" href="classPTEACypher.html">00689</a> <span class="keyword">class </span><a class="code" href="classPTEACypher.html">PTEACypher</a> : <span class="keyword">public</span> <a class="code" href="classPCypher.html">PCypher</a>00690 {00691 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPTEACypher.html">PTEACypher</a>, <a class="code" href="classPCypher.html">PCypher</a>)00692 00693 <span class="keyword">public</span>:<a name="l00694"></a><a class="code" href="structPTEACypher_1_1Key.html">00694</a> <span class="keyword">struct </span><a class="code" href="structPTEACypher_1_1Key.html">Key</a> {<a name="l00695"></a><a class="code" href="structPTEACypher_1_1Key.html#m0">00695</a> BYTE <a class="code" href="structPTEACypher_1_1Key.html#m0">value</a>[16];00696 };00697 00702 <a class="code" href="classPTEACypher.html#a0">PTEACypher</a>(00703 <a class="code" href="classPCypher.html#s9">BlockChainMode</a> <a class="code" href="classPCypher.html#n2">chainMode</a> = <a class="code" href="classPCypher.html#s9s0">ElectronicCodebook</a> 00704 );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -