<div dir="ltr"><div><div>This is what I thought, but I've also tried loading the file as-is, turning it into a byte[] and giving it to xmlSecCryptoAppKeyLoadMemory; or even loading directly from file (which I wouldn't be able to do in a production system, as the keyfile is packaged up in an APK file) and giving it to xmlSecCryptoAppKeyLoad - no luck. As I said, I've tried numerous ways of getting this to work, and I cannot make it happen.<br>
<br></div>Best wishes,<br></div>Alice.<br><br>PS. Encrypted keys do work if they're in PEM format.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Oct 17, 2013 at 4:32 PM, Aleksey Sanin <span dir="ltr"><<a href="mailto:aleksey@aleksey.com" target="_blank">aleksey@aleksey.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">privateExponent.toByteArray() might not return the DER format expected by the function.<span class="HOEnZb"><font color="#888888"><br>

<br>
Aleksey</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On 10/17/13 7:59 AM, allicoder redocilla wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear Aleksey (CC xmlsec list),<br>
<br>
I am trying to load a private key from memory using xmlsec (testing with<br>
RSA keys). Unfortunately, I can only do this if the memory buffer is a<br>
pem file's contents; anything else fails. I was hoping you might be able<br>
to shed some light on why this might be going wrong.<br>
<br>
I am getting the key data from Java using various methods, all to no<br>
avail. I have tried PrivateKey.getEncodedBytes(),<br>
RSAPrivateKey.<u></u>getPrivateExponent().<u></u>toByteArray(), new<br>
PKCS8Key().getEncodedBytes(), passing in a der file directly, loading a<br>
der file directly... Nothing but pem files seems to work.<br>
<br>
Is this a limitation of xmlsec, or am I just doing something wrong?<br>
Could you suggest a combination of xmlSecKeyDataFormat and the format it<br>
expects?<br>
<br>
I'm (attempting to) load the key using<br>
   xmlSecKeyPtr privateKey = xmlSecCryptoAppKeyLoadMemory((<u></u>const<br>
xmlChar*)data, dataLength, xmlSecKeyDataFormat*, NULL, NULL, NULL);<br>
<br>
Error message (xmlSecKeyDataFormatDer, privateExponent.toByteArray())<u></u>:<br>
E/XmlSigner_jni( 6867):<br>
(/home/arc/projects/xml-<u></u>signing/android-builds//<u></u>xmlsec/./src/openssl/app.c:<u></u>263):<br>
(null):PEM_read_bio_PrivateKey and PEM_read_bio_PUBKEY:4:<br>
E/XmlSigner_jni( 6867):<br>
(/home/arc/projects/xml-<u></u>signing/android-builds//<u></u>xmlsec/./src/openssl/app.c:<u></u>205):<br>
(null):<u></u>xmlSecOpenSSLAppKeyLoadBIO:1:<br>
<br>
The keys I'm testing with are unencrypted. I'm using xmlsec checked out<br>
from a few days ago, openssl 0.9.8 from tarball. Platform is Android.<br>
<br>
Best wishes,<br>
Alice.<br>
</blockquote>
</div></div></blockquote></div><br></div>