<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I'm just kidding about the ascii. :-)  </div><div><br></div><div>I've tried to make an absolute minimum test:</div><div>I was hoping my bug would become obvious making this test, but so far it has not.</div><div><br></div><div><br></div><div>If you want something to run you can create a java file with this:</div><div><br></div><div><br></div><div><br></div><div>------------------- SNIP <span class="Apple-style-span" style="font-family: Monaco; font-size: 11px; ">GenRSA.java</span></div><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #a1006a">import</span> java.io.File;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #a1006a">import</span> java.io.FileOutputStream;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #a1006a">import</span> java.security.KeyPair;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #a1006a">import</span> java.security.KeyPairGenerator;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #a1006a">import</span> java.security.PrivateKey;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(161, 0, 106); ">public<span style="color: #000000"> </span>class<span style="color: #000000"> GenRSA</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">{</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">    </span><span style="color: #a1006a">public</span> <span style="color: #a1006a">static</span> <span style="color: #a1006a">void</span> main (String[] args) <span style="color: #a1006a">throws</span> Exception</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><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 Monaco; "><span class="Apple-tab-span" style="white-space:pre">                </span>KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(<span style="color: #6300ff">"RSA"</span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">             </span>keyPairGenerator.initialize(2048);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">               </span>KeyPair keyPair = keyPairGenerator.genKeyPair();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">         </span>PrivateKey privateKey = keyPair.getPrivate();</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.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 Monaco; "><span class="Apple-tab-span" style="white-space:pre">              </span>File fileName = <span style="color: #a1006a">new</span> File(<span style="color: #6300ff">"key.binary"</span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">            </span>FileOutputStream out = <span style="color: #a1006a">new</span> FileOutputStream(fileName);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">         </span>out.write(privateKey.getEncoded());</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span class="Apple-tab-span" style="white-space:pre">              </span>out.close();</div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.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 Monaco; "><span class="Apple-tab-span" style="white-space:pre">              </span>System.<span style="color: #3c00d3">out</span>.println(<span style="color: #6300ff">"Wrote: "</span> + fileName.getAbsolutePath());</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><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 Monaco; ">}</div></div><div>----------------- END SNIP</div><div><br></div><div>compile with: javac GenRSA.java</div><div>run with: java GenRSA</div><div><br></div><div>convert the file to base64 via:</div><div>prompt$ base64 key.binary</div><div><br></div><div>take output, paste into test snip</div><div><br></div><div><br></div><div>-----------------  START test snip</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> key = <span style="color: #255a5e">fromBase64</span>(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 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Menlo; ">------------- END test snip</div><br><div><div>On Jul 24, 2012, at 3:21 PM, Timothy Prepscius wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>i'm thinking of possible format problems,</div><div>it occurs to me that java, i think, streams big endian.</div><div><br></div><div>i wonder if the pkcs8 format declares the endian-ness to use.</div><div>i wonder if java is using big endian for integers in the formatů</div><div><br></div><div>will go lookup format definition, for all I know it's ascii, lol :-)</div><div><br></div><div>-tim</div><br class="Apple-interchange-newline"></blockquote></div><br></body></html>