[xmlsec] core methods for write of <X509SubjectName/> and <X509IssuerSerial/>
Roumen Petrov
xmlsec at roumenpetrov.info
Tue Jul 22 06:37:50 PDT 2003
Aleksey Sanin wrote:
> IMHO, the better approach would be:
> 0) At the very beggining of the xmlSecOpenSSLKeyDataX509XmlWrite()
> function you read the <X509Data/> node content and determine what do
> you want
> to write (certs, subject names, ...) based on the content of
> <X509Data/> node
> and the xmlSecKeyInfoCtx flags.
O.K.
but when <X509Data/> in template contain child nodes some XXXXRead
methods fails.
This happen beffore call of xmlSecOpenSSLKeyDataX509XmlWrite(...).
At momment I can put only <X509SubjectName/> in <X509Data/> without
XXXXRead to fail.
How to suppress read errors:
sample:
================================================
func=xmlSecBase64CtxFinal:file=XXXX/src/base64.c:line=272:obj=unknown:subj=outSize
> 0:error=100:assertion:
func=xmlSecBase64Decode:file=XXXX/src/base64.c:line=738:obj=unknown:subj=xmlSecBase64CtxFinal:error=1:xmlsec
library function failed:
func=xmlSecOpenSSLX509CertBase64DerRead:file=XXXX/src/openssl/x509.c:line=1752:obj=unknown:subj=xmlSecBase64Decode:error=1:xmlsec
library function failed:
func=xmlSecOpenSSLX509CertificateNodeRead:file=XXXX/src/openssl/x509.c:line=982:obj=x509:subj=xmlSecOpenSSLX509CertBase64DerRead:error=1:xmlsec
library function failed:
func=xmlSecOpenSSLX509DataNodeRead:file=XXXX/src/openssl/x509.c:line=949:obj=x509:subj=X509Certificate:error=1:xmlsec
library function failed:read node failed
func=xmlSecOpenSSLKeyDataX509XmlRead:file=XXXX/src/openssl/x509.c:line=680:obj=x509:subj=xmlSecOpenSSLX509DataNodeRead:error=1:xmlsec
library function failed:
func=xmlSecKeyInfoNodeRead:file=XXXX/src/keyinfo.c:line=114:obj=x509:subj=xmlSecKeyDataXmlRead:error=1:xmlsec
library function failed:node=X509Data
func=xmlSecKeysMngrGetKey:file=XXXX/src/keys.c:line=905:obj=unknown:subj=xmlSecKeyInfoNodeRead:error=1:xmlsec
library function failed:node=KeyInfo
func=xmlSecDSigCtxProcessKeyInfoNode:file=XXXX/src/xmldsig.c:line=871:obj=unknown:subj=unknown:error=45:key
is not found:
func=xmlSecDSigCtxProcessSignatureNode:file=XXXX/src/xmldsig.c:line=565:obj=unknown:subj=xmlSecDSigCtxProcessKeyInfoNode:error=1:xmlsec
library function failed:
func=xmlSecDSigCtxSign:file=XXXX/src/xmldsig.c:line=303:obj=unknown:subj=xmlSecDSigCtxSigantureProcessNode:error=1:xmlsec
library function failed:
Error: signature failed
Error: failed to sign file "rumen-data.tmpl"
================================================
Note: x509.c is modified and line numbers are different from CVS current.
where "rumen-data.tmpl" is:
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="urn:envelope">
<Data>
Hello, World!
чт юли 3 14:42:07 EEST 2003
<X509IssuerSerial><X509IssuerName/><X509SerialNumber/></X509IssuerSerial>
<X509SubjectName/>
</Data>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference>
<Transforms>
<Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue/>
</Reference>
</SignedInfo>
<SignatureValue/>
<KeyInfo>
<X509Data>
<X509Certificate/>
</X509Data>
</KeyInfo>
</Signature>
</Envelope>
================================================
and command is:
xmlsec1 sign \
--privkey-pem "user1_key.pem,user1_crt.pem,ca_crt.pem" \
--trusted-pem "ca_crt.pem" \
--pwd XXXX \
rumen-data.tmpl
More information about the xmlsec
mailing list