[xmlsec] Encrypting with pub key in cert

Aleksey Sanin aleksey at aleksey.com
Wed Feb 13 10:36:51 PST 2013


This doesn't sound right. This error is probably indicating
that the certificate parsing was not done properly.

Not sure why is it happening.

Aleksey

On 2/13/13 1:51 AM, Ashley Hindmarsh wrote:
> On 12/02/2013 14:38, Aleksey Sanin wrote:
>> There is a stack trace printed for the error. What is it?
> That is all we get - no further stack trace.
> 
> func=xmlSecOpenSSLX509FindCert:file=x509vfy.c:line=742:obj=unknown:subj=BN_dec2bn:error=4:crypto
> 
> library function failed:
> 
> 
> I just noticed that the output file was being created - so that may have
> been a warning.
> 
> However, the X509IssuerSerial element was not being populated as expected.
> Instead there is a dump of the X509Certificate.
> 
> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
>         <X509Data>
>           <X509IssuerSerial>
>             <X509IssuerName/>
>             <X509SerialNumber/>
>           </X509IssuerSerial>
> <X509Certificate>MIIEmzCCA4OgAwIBAgIJAPvusOvlHmEXMA0GCSqGSIb3DQEBBQUAMIGPMQswCQYD
> 
> VQQGEwJHQjEPMA0GA1UECBMGTG9uZG9uMRMwEQYDVQQHEwpXaGl0ZSBDaXR5MQww
> ...
> 
> This isn't a showstopper as I can inject the correct X509 details myself.
> 
> In the --print-debug output, I can see the X509 being extracted
> == KEY
> === method: RSAKeyValue
> === key type: Public
> === key usage: -1
> === rsa key: size = 2048
> === list size: 1
> === X509 Data:
> ==== Certificate:
> ==== Subject Name:
> /C=GB/ST=London/L=XXXXX/O=XXXX/OU=XXXX/CN=XXXX/emailAddress=xxx at example.com
> ==== Issuer Name:
> /C=GB/ST=London/L=XXXXX/O=XXXX/OU=XXXX/CN=XXXX/emailAddress=xxx at example.com
> ==== Issuer Serial: FBEEB0EBE51E6117
> 
>    Ash
> 
>> Aleksey
>>
>> On 2/12/13 1:19 AM, Ashley Hindmarsh wrote:
>>> I'm trying to generate encrypted XML from a pre-signed SAML token using
>>> xmlsec1.
>>>
>>> Platform is RHEL5 (running as a VM).
>>>
>>> I'm using this document (along with xmlsec docs) as a reference
>>> http://users.dcc.uchile.cl/~pcamacho/tutorial/web/xmlsec/xmlsec.html#htoc9
>>>
>>> This describes the use-case (hybrid encryption) very nicely.
>>>
>>> /usr/bin/xmlsec1 encrypt \
>>>   --pubkey-cert-pem t/psdrsamlcert.pem  \
>>>   --print-debug \
>>>   --session-key aes-256  \
>>>   --xml-data t/DecryptedToken.xml \
>>>   --output psdr-encrypted-xpath.xml \
>>>   --node-xpath / t/session-key-template.xml
>>>
>>> psdrsamlcert.pem is generated using basic openssl defaults + an RSA key
>>> pair (self-signed).
>>>
>>> session-key-template.xml reads as follows:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#"
>>> Type="http://www.w3.org/2001/04/xmlenc#Element">
>>>    <EncryptionMethod
>>> Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
>>>    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
>>>      <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
>>>        <EncryptionMethod
>>> Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
>>>        </EncryptionMethod>
>>>        <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
>>>          <X509Data>
>>>            <X509IssuerSerial>
>>>              <X509IssuerName/>
>>>              <X509SerialNumber/>
>>>            </X509IssuerSerial>
>>>          </X509Data>
>>>        </KeyInfo>
>>>        <CipherData>
>>>          <CipherValue/>
>>>        </CipherData>
>>>      </EncryptedKey>
>>>    </KeyInfo>
>>>    <CipherData>
>>>      <CipherValue/>
>>>    </CipherData>
>>> </EncryptedData>
>>>
>>> The error I get is:
>>> func=xmlSecOpenSSLX509FindCert:file=x509vfy.c:line=742:obj=unknown:subj=BN_dec2bn:error=4:crypto
>>>
>>> library function failed:
>>>
>>> I tried adding --X509-skip-strict-checks, but that makes no difference.
>>>
>>> It seems that using self-signed certs may be a problem, but that
>>> appeared to apply only to xmlsec verification functions
>>>
>>> Is it the case that the same functions are required to extract the X509
>>> credentials?
>>>
>>> If so it there a work-around which avoids this.
>>> I don't *need* to have X509Data in the token response, just some
>>> reference to the issuer.
>>> I tried using 'KeyName' in place of X509Data but again, it makes no
>>> difference.
>>>
>>> thanks for reading,
>>>    Ash
>>>
>>> _______________________________________________
>>> xmlsec mailing list
>>> xmlsec at aleksey.com
>>> http://www.aleksey.com/mailman/listinfo/xmlsec
> 


More information about the xmlsec mailing list