summaryrefslogtreecommitdiff
path: root/pipermail/pycrypto/attachments/20090206/f0613e03/attachment.html
diff options
context:
space:
mode:
Diffstat (limited to 'pipermail/pycrypto/attachments/20090206/f0613e03/attachment.html')
-rw-r--r--pipermail/pycrypto/attachments/20090206/f0613e03/attachment.html43
1 files changed, 43 insertions, 0 deletions
diff --git a/pipermail/pycrypto/attachments/20090206/f0613e03/attachment.html b/pipermail/pycrypto/attachments/20090206/f0613e03/attachment.html
new file mode 100644
index 0000000..bf881f4
--- /dev/null
+++ b/pipermail/pycrypto/attachments/20090206/f0613e03/attachment.html
@@ -0,0 +1,43 @@
+<tt>
+Hello,&lt;br&gt;I&amp;#39;m&nbsp;trying&nbsp;to&nbsp;import/export&nbsp;keys&nbsp;from/to&nbsp;&lt;a&nbsp;href=&quot;http://pear.php.net/package/Crypt_RSA&quot;&gt;Crypt_RSA&lt;/a&gt;,&nbsp;using&nbsp;&lt;a&nbsp;href=&quot;http://www.dlitz.net/software/pycrypto/&quot;&gt;PyCrypto&lt;/a&gt;.&nbsp;My&nbsp;problem&nbsp;is&nbsp;that&nbsp;while&nbsp;using&nbsp;PyCrypto&nbsp;to&nbsp;generate&nbsp;both&nbsp;public&nbsp;and&nbsp;private&nbsp;keys,&nbsp;the&nbsp;e(exponent?)&nbsp;is&nbsp;always&nbsp;the&nbsp;same.&lt;br&gt;<br>
+According&nbsp;to&nbsp;this&nbsp;site:&nbsp;&lt;a&nbsp;href=&quot;http://pajhome.org.uk/crypt/rsa/rsa.html&quot;&gt;http://pajhome.org.uk/crypt/rsa/rsa.html&lt;/a&gt;,&nbsp;and&nbsp;yet&nbsp;others,&nbsp;the&nbsp;e(exponent?)&nbsp;is&nbsp;used&nbsp;for&nbsp;the&nbsp;public&nbsp;key,&nbsp;and&nbsp;d&nbsp;for&nbsp;the&nbsp;private&nbsp;key.&lt;br&gt;<br>
+<br>
+<br>
+&nbsp;&nbsp;&lt;table&nbsp;class=&quot;lined&quot;&nbsp;align=&quot;center&quot;&nbsp;cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&nbsp;width=&quot;50%&quot;&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;h3&nbsp;style=&quot;text-align:&nbsp;center;&quot;&gt;Public&nbsp;Key&lt;/h3&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;&lt;span&nbsp;class=&quot;math&quot;&gt;n&nbsp;=&nbsp;133&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;e&nbsp;=&nbsp;5&lt;/span&gt;&lt;/p&gt;<br>
+&nbsp;&nbsp;&lt;/td&gt;<br>
+&nbsp;&nbsp;&lt;td&nbsp;width=&quot;50%&quot;&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;h3&nbsp;style=&quot;text-align:&nbsp;center;&quot;&gt;Secret&nbsp;Key&lt;/h3&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;&lt;span&nbsp;class=&quot;math&quot;&gt;n&nbsp;=&nbsp;133&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;d&nbsp;=&nbsp;65&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;With&nbsp;Crypt_RSA&amp;nbsp;&nbsp;the&nbsp;e(exponent!)&nbsp;does&nbsp;change.&nbsp;And,&nbsp;currently,&nbsp;Crypt_RSA&nbsp;&amp;#39;should&amp;#39;&nbsp;import&nbsp;a&nbsp;key&nbsp;with:&lt;br&gt;&lt;pre&gt;&lt;font&nbsp;color=&quot;blue&quot;&gt;function&amp;nbsp;&lt;/font&gt;&lt;a&nbsp;href=&quot;http://pear.php.net/package/Crypt_RSA/docs/latest/Crypt_RSA/Crypt_RSA_Key.html#methodCrypt_RSA_Key&quot;&nbsp;target=&quot;_blank&quot;&gt;Crypt_RSA_Key&lt;/a&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;strong&gt;$modulus&lt;/strong&gt;&lt;strong&gt;,&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;$exp&lt;/strong&gt;&lt;strong&gt;,&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;$key_type&lt;/strong&gt;&lt;strong&gt;,&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;$wrapper_name&amp;nbsp;&lt;/strong&gt;=&amp;nbsp;&lt;span&gt;&amp;#39;default&amp;#39;&lt;/span&gt;&lt;strong&gt;,&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;$error_handler&amp;nbsp;&lt;/strong&gt;=&amp;nbsp;&lt;span&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/pre&gt;<br>
+&lt;br&gt;I&amp;#39;ve&nbsp;made&nbsp;some&nbsp;examples&nbsp;to&nbsp;find&nbsp;out&nbsp;why&nbsp;it&amp;#39;s&nbsp;no&nbsp;working,&nbsp;I&nbsp;couldn&amp;#39;t&nbsp;find&nbsp;anything&nbsp;besides&nbsp;what&nbsp;I&amp;#39;m&nbsp;telling&nbsp;here,&nbsp;I&amp;#39;m&nbsp;getting:&lt;br&gt;&lt;pre&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/pre&gt;I&amp;#39;m&nbsp;getting:&lt;br&gt;&lt;br&gt;&lt;b&gt;php&nbsp;output:&lt;/b&gt;&lt;br&gt;<br>
+public:&lt;br&gt;e&nbsp;=&nbsp;576770076438170600293020230006&lt;div&nbsp;id=&quot;:gv&quot;&nbsp;class=&quot;ArwC7c&nbsp;ckChnd&quot;&gt;11111558980619493053522755045300999066282094579&lt;br&gt;n&nbsp;=&nbsp;8181236468479469953170512321145304204212043012891758446155743461774497958816815322484398388795674807728198188380330393972375008693925124720339387183472981&lt;br&gt;<br>
+<br>
+&lt;br&gt;private:&lt;br&gt;e&nbsp;=&nbsp;437180361711592053741873121324365600858808727935298705094471030803249044470609246732980373383618106117311336729585366532974229499133803473168583498751419&lt;br&gt;n&nbsp;=&nbsp;8181236468479469953170512321145304204212043012891758446155743461774497958816815322484398388795674807728198188380330393972375008693925124720339387183472981&lt;br&gt;<br>
+<br>
+&lt;br&gt;plain&nbsp;text:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;This&nbsp;is&nbsp;the&nbsp;secret&nbsp;phrase&nbsp;testing.&lt;br&gt;key:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;YTozOntpOjA7czo2NDoiVSFbfK0ZrvVUOUo/EejHR7YO4F8ugtRGrDPSjrTZEMYZqLUuiZhNhxr2ZdSyvoBN/2wfVnYJzqqYrYT/BA01nCI7aToxO3M6MzI6IvPv6+fj39vXU1DMyMRAvbk1sq4qpyOgHJkVkg6LB4R/IjtpOjI7czo2OiJwdWJsaWMiO30=&lt;br&gt;<br>
+<br>
+encrypted&nbsp;text:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;mBL6f3pRyFX34nB/0H5jL3VOwylAjJzGx32UKS11EOhtooAVjdiYZHGh5jUOAUWj3GD9+ccPPyh5afXmGrq3UA==&lt;br&gt;decrypted&nbsp;text:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;This&nbsp;is&nbsp;the&nbsp;secret&nbsp;phrase&nbsp;testing.&lt;br&gt;&lt;br&gt;&lt;b&gt;python&nbsp;output:&lt;/b&gt;&lt;br&gt;privkey&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;n=6725954312330247844957820045120819261330667638399165421086669714474128366894973621051940873915934423533814876921018123156635212781400913635892080927069649&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;e=65537&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;d=4335534734949590616144210259946732528112578457728805761841499642766064251636039038235790562167224376876190746808970727821310520543898873435686861965120773&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;p=67052724006509355618909096968505962144329319327659728670702224750645922227811&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;q=100308442527663820502897858910213458115962396303231005493840992047817473580859&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;u=49237107846093262220122150056829317849796914810691525815572680169759496162772&lt;br&gt;&lt;br&gt;pubkey&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;n=6725954312330247844957820045120819261330667638399165421086669714474128366894973621051940873915934423533814876921018123156635212781400913635892080927069649&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;e=65537&lt;br&gt;&lt;br&gt;msg=&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;This&nbsp;is&nbsp;the&nbsp;secret&nbsp;phrase&nbsp;testing.&lt;br&gt;data=&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;Sh&amp;#39;fâªaÓÏ!_ÍTÊÅ\~1rA²µG!ðbS(e¨&amp;reg;e{]Èî¬&amp;lt;PÍL³,$h&lt;br&gt;strdata=&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;(&amp;quot;Sh&amp;#39;f\x12\xe2\xaa\x82a\xd3\xcf\x98!_\xcd\x94T\xca\x05\xc5\\~\x7f1r\x95\x9eA\xb2\xb5G!\x15\xf0bS(e\x94\xa8\x90\xaee\x01{]\xc8\xee\xac&amp;lt;\x07P\xcd\x87\x8eL\x84\x8e\x8f\xb3,\x9a$h&amp;quot;,)&lt;br&gt;<br>
+decrypted=&amp;nbsp;&amp;nbsp;&nbsp;This&nbsp;is&nbsp;the&nbsp;secret&nbsp;phrase&nbsp;testing.&lt;br&gt;<br>
+&lt;/div&gt;&lt;br&gt;here&nbsp;are&nbsp;the&nbsp;sources:&lt;br&gt;&lt;b&gt;cryp.py&lt;br&gt;&lt;/b&gt;from&nbsp;Crypto.PublicKey&nbsp;import&nbsp;RSA&lt;br&gt;from&nbsp;Crypto.Util.randpool&nbsp;import&nbsp;RandomPool&lt;br&gt;import&nbsp;os&lt;br&gt;rpool&nbsp;=&nbsp;RandomPool()&lt;br&gt;&lt;br&gt;#&nbsp;Generate&nbsp;keys&lt;br&gt;print&nbsp;os.urandom(0);&lt;br&gt;<br>
+privkeyA&nbsp;=&nbsp;RSA.generate(512,&nbsp;rpool.get_bytes)&lt;br&gt;pubkeyA&nbsp;=&nbsp;privkeyA.publickey()&lt;br&gt;&lt;br&gt;msg&nbsp;=&nbsp;&amp;#39;This&nbsp;is&nbsp;the&nbsp;secret&nbsp;phrase&nbsp;testing.&amp;#39;&lt;br&gt;msgc&nbsp;=&nbsp;pubkeyA.encrypt(msg,&nbsp;&amp;#39;&amp;#39;)&lt;br&gt;msgf&nbsp;=&nbsp;privkeyA.decrypt(msgc)&lt;br&gt;&lt;br&gt;<br>
+print&nbsp;&amp;#39;privkey\n\tn=%s\n\te=%s\n\td=%s\n\tp=%s\n\tq=%s\n\tu=%s\n&amp;#39;&nbsp;%&nbsp;(privkeyA.n,&nbsp;privkeyA.e,&nbsp;privkeyA.d,&nbsp;privkeyA.p,&nbsp;privkeyA.q,&nbsp;privkeyA.u)&lt;br&gt;print&nbsp;&amp;#39;pubkey\n\tn=%s\n\te=%s\n&amp;#39;&nbsp;%&nbsp;(pubkeyA.n,&nbsp;pubkeyA.e)&lt;br&gt;<br>
+print&nbsp;&amp;#39;msg=\t\t%s\ndata=\t\t%s\nstrdata=\t%s\ndecrypted=\t%s\n&amp;#39;&nbsp;%&nbsp;(msg,&nbsp;msgc[0],str(msgc),msgf)&lt;br&gt;&lt;br&gt;&lt;b&gt;cryp.php&lt;br&gt;&lt;/b&gt;&amp;lt;?php&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;require_once&nbsp;&amp;#39;Crypt/RSA.php&amp;#39;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;require_once&nbsp;&amp;#39;Crypt/RSA/MathLoader.php&amp;#39;;&lt;br&gt;<br>
+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//Generates&nbsp;the&nbsp;pair&nbsp;keys&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;function&nbsp;generate_key_pair()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;global&nbsp;$public_key,$private_key;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$obj&nbsp;=&nbsp;&amp;amp;Crypt_RSA_MathLoader::loadWrapper(&amp;#39;default&amp;#39;);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$key_pair&nbsp;=&nbsp;new&nbsp;Crypt_RSA_KeyPair(512);&lt;br&gt;<br>
+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//Returns&nbsp;public&nbsp;key&nbsp;from&nbsp;the&nbsp;pair&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$public_key&nbsp;=&nbsp;$key_pair-&amp;gt;getPublicKey();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;echo&nbsp;&amp;quot;public:\ne&nbsp;=&nbsp;&amp;quot;.$obj-&amp;gt;bin2int($public_key-&amp;gt;getExponent()).&amp;quot;\nn&nbsp;=&nbsp;&amp;quot;.$obj-&amp;gt;bin2int($public_key-&amp;gt;getModulus()).&amp;quot;\n\n&amp;quot;;&lt;br&gt;<br>
+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//Returns&nbsp;private&nbsp;key&nbsp;from&nbsp;the&nbsp;pair&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$private_key&nbsp;=&nbsp;$key_pair-&amp;gt;getPrivateKey();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;echo&nbsp;&amp;quot;private:\ne&nbsp;=&nbsp;&amp;quot;.$obj-&amp;gt;bin2int($private_key-&amp;gt;getExponent()).&amp;quot;\nn&nbsp;=&nbsp;&amp;quot;.$obj-&amp;gt;bin2int($private_key-&amp;gt;getModulus()).&amp;quot;\n\n&amp;quot;;&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//Check&nbsp;runtime&nbsp;errors&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;function&nbsp;check_error(&amp;amp;$obj)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;if&nbsp;(PEAR::isError($obj))&nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;echo&nbsp;&amp;quot;error:&nbsp;&amp;quot;,&nbsp;$obj-&amp;gt;getMessage(),&nbsp;&amp;quot;\n&amp;quot;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;}&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;if&nbsp;($obj-&amp;gt;isError()){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;$error&nbsp;=&nbsp;$obj-&amp;gt;getLastError();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;switch&nbsp;($error-&amp;gt;getCode())&nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;case&nbsp;CRYPT_RSA_ERROR_WRONG_TAIL&nbsp;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//&nbsp;nothing&nbsp;to&nbsp;do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;break;&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;default:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//&nbsp;echo&nbsp;error&nbsp;message&nbsp;and&nbsp;exit&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;echo&nbsp;&amp;#39;error:&nbsp;&amp;#39;,&nbsp;$error-&amp;gt;getMessage();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;exit;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;generate_key_pair();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$plain_text&nbsp;=&nbsp;&amp;#39;This&nbsp;is&nbsp;the&nbsp;secret&nbsp;phrase&nbsp;testing.&amp;#39;;&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;echo&nbsp;&amp;quot;plain&nbsp;text:\t\t&amp;quot;.$plain_text.&amp;quot;\n&amp;quot;;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//get&nbsp;string&nbsp;represenation&nbsp;of&nbsp;the&nbsp;public&nbsp;key&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$key&nbsp;=&nbsp;Crypt_RSA_Key::fromString($public_key-&amp;gt;toString());&nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;echo&nbsp;&amp;quot;key:\t\t\t&amp;quot;.$public_key-&amp;gt;toString().&amp;quot;\n&amp;quot;;&lt;br&gt;<br>
+&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$rsa_obj&nbsp;=&nbsp;new&nbsp;Crypt_RSA;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;check_error($rsa_obj);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//Ecnrypts&nbsp;$plain_text&nbsp;by&nbsp;the&nbsp;key&nbsp;$key.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$encrypted&nbsp;=&nbsp;$rsa_obj-&amp;gt;encrypt($plain_text,&nbsp;$key);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$enc_text&nbsp;=&nbsp;$encrypted;&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;echo&nbsp;&amp;quot;encrypted&nbsp;text:\t\t&amp;quot;.$enc_text.&amp;quot;\n&amp;quot;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//Get&nbsp;string&nbsp;represenation&nbsp;of&nbsp;the&nbsp;private&nbsp;key&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$key2&nbsp;=&nbsp;Crypt_RSA_Key::fromString($private_key-&amp;gt;toString());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;check_error($key2);&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//Check&nbsp;encrypting/decrypting&nbsp;function&amp;#39;s&nbsp;behaviour&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$rsa_obj-&amp;gt;setParams(array(&amp;#39;dec_key&amp;#39;&nbsp;=&amp;gt;&nbsp;$key2));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;check_error($rsa_obj);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;//Decrypts&nbsp;$enc_text&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;$decrypted&nbsp;=&nbsp;$rsa_obj-&amp;gt;decrypt($enc_text);&lt;br&gt;<br>
+&amp;nbsp;&amp;nbsp;&amp;nbsp;&nbsp;echo&nbsp;&amp;quot;decrypted&nbsp;text:\t\t&amp;quot;.$decrypted.&amp;quot;\n&amp;quot;;&lt;br&gt;&lt;br&gt;?&amp;gt;&lt;br&gt;&lt;br&gt;Thanks&nbsp;in&nbsp;advance.&lt;br&gt;<br>
+
+</tt>