<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">You are awesome!<div><br></div><div><br><div>Just for the search engines:  (this works)</div><div><br></div><div><br></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #7e4724">#include </span><botan/botan.h></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #7e4724">#include </span><iostream></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #7e4724">#include </span><botan/pkcs8.h></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #7e4724">#include </span>"botan/rsa.h"</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #7e4724">#include </span>"botan/pubkey.h"</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #7e4724">#include </span>"botan/look_pk.h"</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #7e4724">#include </span>"botan/rng.h"</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; min-height: 13px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(205, 0, 166); ">using<span style="color: #000000"> </span>namespace<span style="color: #000000"> </span><span style="color: #8000af">Botan</span><span style="color: #000000">;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; min-height: 13px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span style="color: #cd00a6">inline</span> <span style="color: #8000af">std</span>::<span style="color: #8000af">string</span> fromBase64 (<span style="color: #cd00a6">const</span> <span style="color: #8000af">std</span>::<span style="color: #8000af">string</span> &block)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">{</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(128, 0, 175); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">     </span></span>Botan<span style="color: #000000">::</span>Pipe<span style="color: #000000"> pipe(</span><span style="color: #cd00a6">new</span><span style="color: #000000"> </span>Botan<span style="color: #000000">::</span>Base64_Decoder<span style="color: #000000">);</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">     </span>pipe.<span style="color: #4b0086">process_msg</span>((<span style="color: #8000af">byte</span> *)block.<span style="color: #4b0086">data</span>(), block.<span style="color: #4b0086">size</span>());</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(75, 0, 134); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">        </span></span><span style="color: #cd00a6">return</span><span style="color: #000000"> pipe.</span>read_all_as_string<span style="color: #000000">();</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; min-height: 13px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span style="color: #cd00a6">int</span> main (<span style="color: #cd00a6">int</span> argc, <span style="color: #cd00a6">char</span> *argv[])</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">{</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(205, 0, 166); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">   </span></span>try<span style="color: #000000"> </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">  </span>{</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">             </span></span><span style="color: #8000af">std</span><span style="color: #000000">::</span><span style="color: #8000af">string</span><span style="color: #000000"> privateKeyFromJava = </span>"MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDSycLKgoy2XKsdihwTIAyBBte9cPoVPGHnmpZDz2kw8/sNnKFyRZ+bVQ/m0csrPJsCm4UgD0esxag132bHUeO0ymyUXQBzOKZ9/rtAeKeRqXE6+rqFu9YwP4+MiJTM4lx5VEucHVgm22ISXGlwXTh+Zxhbwx8Us/nyHdHaItXIPZUgPtvYowCzNBB/NVcGob6O8giM1i85rdtuMIFlzWw1Y8PlbthowmBPnD86ivgQ9uYRGVoF+5Z9w232DzlTMw42K0CIOMA9anp/cMUg+GhzX6FXj0ChO6LXsGkyOA762kZ3rz7rmOnKlJU5JHuBEHRW4HVBDo8bFSh43Pc4diyNAgMBAAECggEBAJXnNGcuRoGeD3b3dBXJ0fqkciLgSIl3oqzBzCE3TLiqmhzJCiupBePCr4dYJWN/O0G0dg0hsLhW7NQ7Ju2S+BvnZSZxqVNHs2ehE2u7Ing9hzAJhUJ8Hcu8OAsaSrAWPutuHkNMvxcLJ4ilPbrSIM4L5U/EyMLBZ3xe5pF5+ozmrCf8hmAXvRF30ddqwFs62KQA+KDRwjbBkwKOcAifnRLXk8Czv/Otw7AQ4MDpme2MzkdxDPWkpyFkVB4sjUtbDxYRg0vhiVspqqb3axrzgISvL0/8BC4w+Zl50xbnMcuEOr1dDPM89uNBAhukXMjXKXE1opCT5xwClnEprAUmEgUCgYEA782gMluK2tD+rElGoGBwMYi+zoVow92E6XIafC9a5WYh41kuCugRD8exHcOT5YUL+Sx9iD1tBqmHdswxvrC4Qel3cwGbSD5WxFz8ArYwAm2c/NtA8Vj2J7C8N4MbxUqugZH7zjmUTDcAuEHW2xx9/M0d1nzbWRtwHcsnaUAMzEcCgYEA4QZxWFGvQf6L1DY2/8eTyghqcnqhRUgRlJdKtX2imy9mDI3cGGY5hX4qb319EZLRaZwXfHo3UmocrnmyyttLa7bx8K7El5pu9pxAbJuIcxJ9FofEdosSvuywqcuSgnqqhKPVS7SpFuB7YrGyWZnyAvVOvyOxt0Ph9CSqLwB9rosCgYEA5nRQTdTXvq428U+CRkIn0BLAfCyNoB3Uy5xSg6Hm0qqySpC7xNN9AhNAzX/VNDAGb7In+bQ+gLaPbsWR0NZ4XS+HEckrd+Qg8pkBv4Fi5hJ9WitDYC3EciRQ3XBsUdARoIew3GFNeWkqkekEGJJrKXXeBPD8w8ewmZFREL7zDaUCgYAcmR4ElHUKlRgeQzmgLjQZJBKrM+yVCoC5erTS9gGZaV+1zr2fGDbNQWiRPMiNWDRnEKBngHzRa4zzm6HeaBpguSJsbTms7sKVcuw5IVcpELt3BpAwZKJgQ2J8YdPf40kSjGPKOE6ZCrSDqYO6IXeBar20SwwF94ma5qH+UTin2wKBgQDgjz/cFXTn0DDr2FEJCrVRUR1ipPuVjKNC6/0ptlejv0c/M70zXPYdJSsmNAgC0+tbyftnGk9PMoYLmE3TBWPIFLKOoFVGY19odRNicMeN/NhNsAwi9SFtnRvJdebMjb5oAKQ9+XKewlY0oLX/RdtxmvttBBdrv5gqvtvUSsGvUQ=="<span style="color: #000000">;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">         </span><span style="color: #8000af">std</span>::<span style="color: #8000af">string</span> wrappedPrivateKey = </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                     </span></span>"-----BEGIN PRIVATE KEY-----\n"<span style="color: #000000"> +</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">                        </span>privateKeyFromJava +</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(225, 0, 0); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                  </span></span>"-----END PRIVATE KEY-----"<span style="color: #000000">;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; min-height: 13px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">               </span><span style="color: #8000af">std</span>::<span style="color: #8000af">string</span> key = wrappedPrivateKey;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(0, 142, 0); ">//<span class="Apple-tab-span" style="white-space:pre">         </span>std::string key = fromBase64(privateKeyFromJava);</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><span class="Apple-tab-span" style="white-space:pre">            </span><br class="webkit-block-placeholder"></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(128, 0, 175); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">         </span></span>AutoSeeded_RNG<span style="color: #000000"> rng;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #8000af">DataSource_Memory</span> dataSource((<span style="color: #cd00a6">const</span> <span style="color: #cd00a6">unsigned</span> <span style="color: #cd00a6">char</span> *)key.<span style="color: #4b0086">data</span>(), key.<span style="color: #4b0086">size</span>());</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">          </span><span style="color: #8000af">PKCS8_PrivateKey</span> *genericPrivateKey = <span style="color: #8000af">Botan</span>::<span style="color: #8000af">PKCS8</span>::<span style="color: #4b0086">load_key</span>(dataSource, rng);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; min-height: 13px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">              </span><span style="color: #8000af">RSA_PrivateKey</span> *rsaPrivateKey = </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(128, 0, 175); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">                     </span></span><span style="color: #cd00a6">dynamic_cast</span><span style="color: #000000"><</span>RSA_PrivateKey<span style="color: #000000"> *> (</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">                         </span>genericPrivateKey</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">                 </span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(128, 0, 175); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">   </span></span><span style="color: #cd00a6">catch</span><span style="color: #000000"> (</span>Exception<span style="color: #000000"> &e)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">       </span>{</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">         </span><span style="color: #8000af">std</span>::<span style="color: #8000af">cerr</span> << e.<span style="color: #4b0086">what</span>();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(205, 0, 166); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre">          </span></span>return<span style="color: #000000"> -</span><span style="color: #4e00e0">1</span><span style="color: #000000">;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; "><span class="Apple-tab-span" style="white-space:pre">     </span>}</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><span class="Apple-tab-span" style="white-space:pre">            </span><br class="webkit-block-placeholder"></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; color: rgb(205, 0, 166); "><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre"> </span></span>return<span style="color: #000000"> </span><span style="color: #4e00e0">0</span><span style="color: #000000">;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">}</div></div><div><br></div><div><br></div><div><br></div><div><div><div>On Jul 25, 2012, at 7:24 AM, Jack Lloyd wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">"-----END PRIVATE KEY-----"</blockquote></div><br></div></div></body></html>