office-gobmx/libxmlsec
Vladimir Glazounov be48c3f6d0 INTEGRATION: CWS mingwport03 (1.9.6); FILE MERGED
2006/10/24 13:14:35 vg 1.9.6.2: #i53572# MinGW port
2006/09/26 10:48:46 vg 1.9.6.1: #i53572# MinGW port
2007-03-27 08:10:13 +00:00
..
prj INTEGRATION: CWS rt08 (1.8.2); FILE MERGED 2005-05-03 13:27:38 +00:00
makefile.mk INTEGRATION: CWS mingwport03 (1.9.6); FILE MERGED 2007-03-27 08:10:13 +00:00
readme.txt INTEGRATION: CWS xmlsec13 (1.1.2); FILE ADDED 2005-11-11 08:04:23 +00:00
xmlsec1-1.2.6.patch INTEGRATION: CWS mingwport03 (1.15.4); FILE MERGED 2007-03-26 15:03:02 +00:00

The XML Security library has been modified, so that there is NO verification
of the certificate during sign or verification operation. On Windows this was 
done in the function xmlSecMSCryptoX509StoreVerify (file 
src/mscrypto/x509vfy.c) and on UNIX in xmlSecNssX509StoreVerify 
(file src/nss/x509vfy.c).

This change requires that the XML Signature contains in 
Signature/KeyInfo/X509Data only entries which represent the same 
certificate.
The implementation creates certificates from all of the X509Data children
(X509IssuerSerial, X509Certificate) and used to iterate over all certificates,
verify them and return the first "good" certificate. Now the first one is 
used.

The X509IssuerSerial information is used by XML Security Library to find the 
certificate in the certificate store on the machine. The X509Certificate entry
is used to create a certificate no matter if this is already contained in the
certificate store.

Do not forget: Suggest to XML Security Library to provide a way to carry out 
signature operations without verification of certificates. There is flag
XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS that can be set in a 
xmlSecKeyInfoCtx (see function xmlSecNssKeyDataX509XmlRead, in file src/nss/x509.c),
which indicates such a possibility but it does not work.