Provides classes to give the user a handle to accept invalid server certificates. The {@link javax.net.ssl.TrustManager} doing this is implemented by {@link nl.nikhef.slcshttps.trust.TrustManagerImpl}. In addition to standard certificate chain checking, it also checks the hostname against the certificate. For this it is necessary to extend the standard {@link javax.net.ssl.HttpsURLConnection} since the {@link javax.net.ssl.TrustManager} normally doesn't receive the hostname/port. This extension is {@link nl.nikhef.slcshttps.trust.HttxURLConnection}, which is a delegate class due to the abstract nature of {@link javax.net.ssl.HttpsURLConnection}. The hostname is checked using the {@link nl.nikhef.slcshttps.trust.HostnameChecker} class which is roughly a combination of JDK1.6 implementation dependent sun.security.util.HostnameChecker with sun.net.util.IPAddressUtil, while using a method getCNS(), adapted from the not-yet-commons-ssl-0.3.10 package, instead of the getSubjectX500Name(). TODO: findMostSpecificAttribute(X500Name.commonName_oid) adapted from not-yet-commons-ssl-0.3.10.
@see nl.nikhef.slcshttps @see http://www.nikhef.nl/pub/projects/grid/slcshttps/