SSLChannelInfo info;
SSLChannelInfo    channel; SSLCipherSuiteInfo suite;
void printSecurityInfo(PRFileDesc *fd){    CERTCertificate * cert;    SSL3Statistics * ssl3stats = SSL_GetStatistics();    SECStatus result;    SSLChannelInfo info;    result = SSL_GetChannelInfo(fd, &info, sizeof info);    if (result != SECSuccess)    	return;    if (info.length >= offsetof(SSLChannelInfo, reserved)) {	fprintf(stderr, 	       "SSL version %d.%d using %d-bit %s with %d-bit %s MAC\n",	       info.protocolVersion >> 8, info.protocolVersion & 0xff,	       info.effectiveKeyBits, info.symCipherName, 	       info.macBits, info.macAlgorithmName);	fprintf(stderr, 	       "Server Authentication: %d-bit %s, Key Exchange: %d-bit %s\n",	       info.authKeyBits, info.authAlgorithmName,	       info.keaKeyBits,  info.keaTypeName);    }    cert = SSL_RevealCert(fd);    if (cert) {	char * ip = CERT_NameToAscii(&cert->issuer);	char * sp = CERT_NameToAscii(&cert->subject);        if (sp) {	    fprintf(stderr, "subject DN: %s\n", sp);	    PR_Free(sp);	}        if (ip) {	    fprintf(stderr, "issuer  DN: %s\n", ip);	    PR_Free(ip);	}	CERT_DestroyCertificate(cert);	cert = NULL;    }    fprintf(stderr,    	"%ld cache hits; %ld cache misses, %ld cache not reusable\n",    	ssl3stats->hsh_sid_cache_hits, ssl3stats->hsh_sid_cache_misses,	ssl3stats->hsh_sid_cache_not_ok);}