char *             hostname    = NULL;
const char *             hostname    = NULL;
SSL_AuthCertificate(void *arg, PRFileDesc *fd, PRBool checkSig, PRBool isServer){    SECStatus          rv;    CERTCertDBHandle * handle;    sslSocket *        ss;    SECCertUsage       certUsage;    char *             hostname    = NULL;        ss = ssl_FindSocket(fd);    PORT_Assert(ss != NULL);    handle = (CERTCertDBHandle *)arg;    /* this may seem backwards, but isn't. */    certUsage = isServer ? certUsageSSLClient : certUsageSSLServer;    rv = CERT_VerifyCertNow(handle, ss->sec->peerCert, checkSig, certUsage,			    ss->pkcs11PinArg);    if ( rv != SECSuccess || isServer )	return rv;      /* cert is OK.  This is the client side of an SSL connection.     * Now check the name field in the cert against the desired hostname.     * NB: This is our only defense against Man-In-The-Middle (MITM) attacks!     */    hostname = ss->url;    if (hostname && hostname[0])	rv = CERT_VerifyCertName(ss->sec->peerCert, hostname);    else 	rv = SECFailure;    if (rv != SECSuccess)	PORT_SetError(SSL_ERROR_BAD_CERT_DOMAIN);    return rv;}