[xmlsec] Problem when using the xmlSecOpenSSLAppKeyLoadMemory() API.
Aleksey Sanin
aleksey at aleksey.com
Wed Apr 10 23:33:40 PDT 2013
This is not a valid PEM key format.
Aleksey
On 4/3/13 12:31 AM, Venkataragavan Vijayakumar wrote:
> Hi all,
>
> Please check anything i am doing wrong in the key buffer creation.
> simply I am directly copying the key from the private key file generated
> using openssl. I have attached sample key file(dtls.key) , where i have
> taken the key.
>
> Please help me to solve this issue.
>
>
> const xmlSecByte *keybuf =
> "MIIBOwIBAAJBALe2myLsvZaYVDcZAkaHfaYnwlojm7ebRHGuLGUvYXHgmdMU9LLT6cMABq2me+ioQLhB0+KY4Nth91NG52spEtECAwEAAQJAMKWQCv15bolDs5tRuO9j3D2m/0tyjnn0881VQC39tbN6w+tCVhUHPEy+3l/jf7b/xkuIcbgV2voXVEVFjHmwCQIhAOTF+LdlVZ/TbIEM+GRTaYQQEXz0NjWWIARxDv6OWvdzAiEAzZPK3ZqQtXw3/E2HU6DGBFxB8S92PGk5EFKWaUtG06sCIQC+Cx9j6lBI5u9Z/RZS8V/UDy0X6h8mQMH0Lp9QI525tQIgaslZuNFAWDWlc1bmc+dw1PUDgAByf6D89mCgJyPmL68CIQCmkdwn7cuWI4GlVJnpDZ2iHZjeiih3oVR73/WquuyJqw==";
> xmlSecSize keysize = strlen(keybuf);
>
>
> assert(tmpl_file);
> assert(key_file);
>
> /* load template */
> doc = xmlParseFile(tmpl_file);
> if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){
> fprintf(stderr, "Error: unable to parse file \"%s\"\n", tmpl_file);
> goto done;
> }
>
> /* find start node */
> node = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeSignature,
> xmlSecDSigNs);
> if(node == NULL) {
> fprintf(stderr, "Error: start node not found in \"%s\"\n", tmpl_file);
> goto done;
> }
>
> /* create signature context, we don't need keys manager in this example */
> dsigCtx = xmlSecDSigCtxCreate(NULL);
> if(dsigCtx == NULL) {
> fprintf(stderr,"Error: failed to create signature context\n");
> goto done;
> }
>
>
>
> /* load private key, assuming that there is not password */
>
> dsigCtx->signKey =
> xmlSecCryptoAppKeyLoadMemory(keybuf,keysize,xmlSecKeyDataFormatPem,
> NULL, NULL, NULL);
> if(dsigCtx->signKey == NULL) {
> fprintf(stderr,"Error: failed to load private pem key from
> \"%s\"\n", key_file);
> goto done;
> }
>
> Thanks,
> Venkat.
>
>
>
>
>
> On Tue, Apr 2, 2013 at 11:38 PM, Aleksey Sanin <aleksey at aleksey.com
> <mailto:aleksey at aleksey.com>> wrote:
>
> You will need to debug what's going on at the openssl level. If I would
> guess then I would think you didn't load the key into memory correctly.
>
> Aleksey
>
> On 4/2/13 8:00 AM, Venkataragavan Vijayakumar wrote:
> > Hi All,
> >
> > Previously I have used the xmlSecCryptoAppKeyLoad() API to load
> the Key
> > file in the PEM format , it worked fine, but when i start to use
> > xmlSecCryptoAppKeyLoadMemory() with the same content in the key
> file is
> > given as input as buffer, it given error as
> >
> >
> >
> func=xmlSecOpenSSLAppKeyLoadBIO:file=app.c:line=263:obj=unknown:subj=PEM_read_bio_PrivateKey
> > and PEM_read_bio_PUBKEY:error=4:crypto library function
> > failed:
> >
> >
> func=xmlSecOpenSSLAppKeyLoadMemory:file=app.c:line=205:obj=unknown:subj=xmlSecOpenSSLAppKeyLoadBIO:error=1:xmlsec
> > library function failed:
> >
> >
> > *
> >
> > code used like this*:
> >
> > dsigCtx->signKey =
> > xmlSecCryptoAppKeyLoadMemory(keybuf,keysize,xmlSecKeyDataFormatPem,
> > NULL, NULL, NULL);
> > if(dsigCtx->signKey == NULL) {
> > fprintf(stderr,"Error: failed to load private pem key from
> > \"%s\"\n", key_file);
> > goto done;
> > }
> >
> > Please help me to resolve this issue.
> >
> > Thanks,
> > Venkat.
> >
> >
> >
> > _______________________________________________
> > xmlsec mailing list
> > xmlsec at aleksey.com <mailto:xmlsec at aleksey.com>
> > http://www.aleksey.com/mailman/listinfo/xmlsec
> >
>
>
More information about the xmlsec
mailing list