[xmlsec] core methods for write of <X509SubjectName/> and <X509IssuerSerial/>
Aleksey Sanin
aleksey at aleksey.com
Wed Jul 23 18:04:29 PDT 2003
Hi, Roumen!
I have looked at your new patch and I have few comments:
0) It seems that xmlSecOpenSSLKeyDataX509XmlWrite() function
now writes subject, serial or full certificate only for the first
certificate
in the xmlSecKey. All other certificates are written "in-full".
This seems wrong to me. Yo don't know which certificate will be the
"first" one. I am not sure I understand why you don't want to do the
same for all certs.
I thought that the plan was:
- Read X509Data node and create a bits mask of its children
(cert, subject, serial, ski, crl).
- If mask is 0 (no children) then set cert and crl bits to
simulate
current behaiviour (write certs and crls in empty X509Data node).
- Remove X509Data node content.
- Walk thru the list of certificates and write cert and/or
subject and/or
serial and/or ski according to bits mask.
- If crls bit is set walk thru the list of crls and write them
out.
This seems more natural to me than "special case" the first cert.
1) I don't like the way you implemented the "empty" check in *Read()
functions.
IMHO, this is a bad coding style to repeat the same code again and
again.
Probably a small internal static function
int xmlSecOpenSSLX509IsEmpty(xmlChar*)
would be better :)
Also I am not sure I understand why you put "XXX" comments around
it. Seems
useless to me.
2) You are using the figure brackets to mark block of code all the time
(I meant the "write Issuer Name" block in the example bellow):
+ if(cur == NULL) {
+ cur = xmlSecAddChild(node, xmlSecNodeX509IssuerSerial,
xmlSecDSigNs);
+ ....
+ }
+
+ { /*write Issuer Name*/
+ for(node_in = xmlSecGetNextElementNode(cur->children);
+ ....
+ }
Please don't do this. It makes code difficult to read.
3) In xmlSecOpenSSLX509NameWrite() function I wonder if there is a
way to
print name to a buffer, not memory BIO. Mallocs might be expensive
:( But I guess
the answer is "no".
4) Which OpenSSL version do you use? I wonder if this new code works
with OpenSSL 0.9.6.
Aleksey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.aleksey.com/pipermail/xmlsec/attachments/20030723/97d87c1e/attachment.htm
More information about the xmlsec
mailing list