您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ssl_FindSocket函数代码示例

51自学网 2021-06-03 08:19:39
  C++
这篇教程C++ ssl_FindSocket函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ssl_FindSocket函数的典型用法代码示例。如果您正苦于以下问题:C++ ssl_FindSocket函数的具体用法?C++ ssl_FindSocket怎么用?C++ ssl_FindSocket使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ssl_FindSocket函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: SSL_CertDBHandleSet

SECStatusSSL_CertDBHandleSet(PRFileDesc *fd, CERTCertDBHandle *dbHandle){    sslSocket *    ss;    ss = ssl_FindSocket(fd);    if (!ss)    	return SECFailure;    if (!dbHandle) {    	PORT_SetError(SEC_ERROR_INVALID_ARGS);	return SECFailure;    }    ss->dbHandle = dbHandle;    return SECSuccess;}
开发者ID:LittleForker,项目名称:mozilla-central,代码行数:15,


示例2: SSLInt_Set0RttAlpn

SECStatus SSLInt_Set0RttAlpn(PRFileDesc *fd, PRUint8 *data, unsigned int len) {  sslSocket *ss = ssl_FindSocket(fd);  if (!ss) {    return SECFailure;  }  ss->xtnData.nextProtoState = SSL_NEXT_PROTO_EARLY_VALUE;  if (ss->xtnData.nextProto.data) {    SECITEM_FreeItem(&ss->xtnData.nextProto, PR_FALSE);  }  if (!SECITEM_AllocItem(NULL, &ss->xtnData.nextProto, len)) return SECFailure;  PORT_Memcpy(ss->xtnData.nextProto.data, data, len);  return SECSuccess;}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:15,


示例3: SSL_SetPKCS11PinArg

/* NEED LOCKS IN HERE.  */SECStatus SSL_SetPKCS11PinArg(PRFileDesc *s, void *arg){    sslSocket *ss;    ss = ssl_FindSocket(s);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in GetClientAuthDataHook",		 SSL_GETPID(), s));	return SECFailure;    }    ss->pkcs11PinArg = arg;    return SECSuccess;}
开发者ID:crow89,项目名称:Alcatel_OT_985_kernel,代码行数:16,


示例4: SSLInt_PrintTls13CipherSpecs

void SSLInt_PrintTls13CipherSpecs(PRFileDesc *fd) {  PRCList *cur_p;  sslSocket *ss = ssl_FindSocket(fd);  if (!ss) {    return;  }  fprintf(stderr, "Cipher specs/n");  for (cur_p = PR_NEXT_LINK(&ss->ssl3.hs.cipherSpecs);       cur_p != &ss->ssl3.hs.cipherSpecs; cur_p = PR_NEXT_LINK(cur_p)) {    ssl3CipherSpec *spec = (ssl3CipherSpec *)cur_p;    fprintf(stderr, "  %s/n", spec->phase);  }}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:15,


示例5: SSLInt_CountTls13CipherSpecs

PRInt32 SSLInt_CountTls13CipherSpecs(PRFileDesc *fd) {  PRCList *cur_p;  PRInt32 ct = 0;  sslSocket *ss = ssl_FindSocket(fd);  if (!ss) {    return -1;  }  for (cur_p = PR_NEXT_LINK(&ss->ssl3.hs.cipherSpecs);       cur_p != &ss->ssl3.hs.cipherSpecs; cur_p = PR_NEXT_LINK(cur_p)) {    ++ct;  }  return ct;}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:15,


示例6: SSLInt_CheckSecretsDestroyed

PRBool SSLInt_CheckSecretsDestroyed(PRFileDesc *fd) {  sslSocket *ss = ssl_FindSocket(fd);  if (!ss) {    return PR_FALSE;  }  CHECK_SECRET(currentSecret);  CHECK_SECRET(resumptionMasterSecret);  CHECK_SECRET(dheSecret);  CHECK_SECRET(clientEarlyTrafficSecret);  CHECK_SECRET(clientHsTrafficSecret);  CHECK_SECRET(serverHsTrafficSecret);  return PR_TRUE;}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:15,


示例7: SSL_RevealCert

/* given PRFileDesc, returns a copy of certificate associated with the socket * the caller should delete the cert when done with SSL_DestroyCertificate */CERTCertificate * SSL_RevealCert(PRFileDesc * fd){  CERTCertificate * cert = NULL;  sslSocket * sslsocket = NULL;  sslsocket = ssl_FindSocket(fd);    /* CERT_DupCertificate increases reference count and returns pointer to    * the same cert   */  if (sslsocket && sslsocket->sec.peerCert)    cert = CERT_DupCertificate(sslsocket->sec.peerCert);    return cert;}
开发者ID:andropenoffie,项目名称:nss4android,代码行数:19,


示例8: SSL_DataPending

/*** Returns Negative number on error, zero or greater on success.** Returns the amount of data immediately available to be read.*/intSSL_DataPending(PRFileDesc *fd){    sslSocket *ss;    int        rv  = 0;    ss = ssl_FindSocket(fd);    if (ss && ss->opt.useSecurity) {	ssl_GetRecvBufLock(ss);	rv = ss->gs.writeOffset - ss->gs.readOffset;	ssl_ReleaseRecvBufLock(ss);    }    return rv;}
开发者ID:Metrological,项目名称:chromium,代码行数:20,


示例9: SSL_PeerCertificate

/* NEED LOCKS IN HERE.  */CERTCertificate *SSL_PeerCertificate(PRFileDesc *fd){    sslSocket *ss;    ss = ssl_FindSocket(fd);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in PeerCertificate",		 SSL_GETPID(), fd));	return 0;    }    if (ss->opt.useSecurity && ss->sec.peerCert) {	return CERT_DupCertificate(ss->sec.peerCert);    }    return 0;}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:17,


示例10: SSL_ConfigServerCert

/* Configure a certificate and private key. * * This function examines the certificate and key to determine which slot (or * slots) to place the information in.  As long as certificates are different * (based on having different values of sslServerCertType), then this function * can be called multiple times and the certificates will all be remembered. */SECStatusSSL_ConfigServerCert(PRFileDesc *fd, CERTCertificate *cert,                     SECKEYPrivateKey *key,                     const SSLExtraServerCertData *data, unsigned int data_len){    sslSocket *ss;    SECKEYPublicKey *pubKey;    sslKeyPair *keyPair;    SECStatus rv;    SSLExtraServerCertData dataCopy = {        ssl_auth_null, NULL, NULL, NULL    };    ss = ssl_FindSocket(fd);    if (!ss) {        return SECFailure;    }    if (!cert || !key) {        PORT_SetError(SEC_ERROR_INVALID_ARGS);        return SECFailure;    }    if (data) {        if (data_len > sizeof(dataCopy)) {            PORT_SetError(SEC_ERROR_INVALID_ARGS);            return SECFailure;        }        PORT_Memcpy(&dataCopy, data, data_len);    }    pubKey = CERT_ExtractPublicKey(cert);    if (!pubKey) {        return SECFailure;    }    keyPair = ssl_MakeKeyPairForCert(key, pubKey);    if (!keyPair) {        /* pubKey is adopted by ssl_MakeKeyPairForCert() */        PORT_SetError(SEC_ERROR_NO_MEMORY);        return SECFailure;    }    rv = ssl_ConfigCertByUsage(ss, cert, keyPair, &dataCopy);    ssl_FreeKeyPair(keyPair);    return rv;}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:54,


示例11: SSL_HandshakeNegotiatedExtension

SECStatusSSL_HandshakeNegotiatedExtension(PRFileDesc * socket,                                  SSLExtensionType extId,                                 PRBool *pYes){  /* some decisions derived from SSL_GetChannelInfo */  sslSocket * sslsocket = NULL;  PRBool enoughFirstHsDone = PR_FALSE;  if (!pYes) {    PORT_SetError(SEC_ERROR_INVALID_ARGS);    return SECFailure;  }  sslsocket = ssl_FindSocket(socket);  if (!sslsocket) {    SSL_DBG(("%d: SSL[%d]: bad socket in HandshakeNegotiatedExtension",             SSL_GETPID(), socket));    return SECFailure;  }  *pYes = PR_FALSE;  if (sslsocket->firstHsDone) {    enoughFirstHsDone = PR_TRUE;  } else if (sslsocket->ssl3.initialized && ssl3_CanFalseStart(sslsocket)) {    enoughFirstHsDone = PR_TRUE;  }  /* according to public API SSL_GetChannelInfo, this doesn't need a lock */  if (sslsocket->opt.useSecurity && enoughFirstHsDone) {    if (sslsocket->ssl3.initialized) { /* SSL3 and TLS */      /* now we know this socket went through ssl3_InitState() and       * ss->xtnData got initialized, which is the only member accessed by       * ssl3_ExtensionNegotiated();       * Member xtnData appears to get accessed in functions that handle       * the handshake (hello messages and extension sending),       * therefore the handshake lock should be sufficient.       */      ssl_GetSSL3HandshakeLock(sslsocket);      *pYes = ssl3_ExtensionNegotiated(sslsocket, extId);      ssl_ReleaseSSL3HandshakeLock(sslsocket);    }  }  return SECSuccess;}
开发者ID:andropenoffie,项目名称:nss4android,代码行数:47,


示例12: SSL_GetPreliminaryChannelInfo

SECStatusSSL_GetPreliminaryChannelInfo(PRFileDesc *fd,                              SSLPreliminaryChannelInfo *info,                              PRUintn len){    sslSocket *ss;    SSLPreliminaryChannelInfo inf;    /* Check if we can properly return the length of data written and that     * we're not asked to return more information than we know how to provide.     */    if (!info || len < sizeof inf.length || len > sizeof inf) {        PORT_SetError(SEC_ERROR_INVALID_ARGS);        return SECFailure;    }    ss = ssl_FindSocket(fd);    if (!ss) {        SSL_DBG(("%d: SSL[%d]: bad socket in SSL_GetPreliminaryChannelInfo",                 SSL_GETPID(), fd));        return SECFailure;    }    memset(&inf, 0, sizeof(inf));    inf.length = PR_MIN(sizeof(inf), len);    inf.valuesSet = ss->ssl3.hs.preliminaryInfo;    inf.protocolVersion = ss->version;    inf.cipherSuite = ss->ssl3.hs.cipher_suite;    inf.canSendEarlyData = !ss->sec.isServer &&                           (ss->ssl3.hs.zeroRttState == ssl_0rtt_sent ||                            ss->ssl3.hs.zeroRttState == ssl_0rtt_accepted);    /* We shouldn't be able to send early data if the handshake is done. */    PORT_Assert(!ss->firstHsDone || !inf.canSendEarlyData);    if (ss->sec.ci.sid &&        (ss->ssl3.hs.zeroRttState == ssl_0rtt_sent ||         ss->ssl3.hs.zeroRttState == ssl_0rtt_accepted)) {        inf.maxEarlyDataSize =            ss->sec.ci.sid->u.ssl3.locked.sessionTicket.max_early_data_size;    } else {        inf.maxEarlyDataSize = 0;    }    memcpy(info, &inf, inf.length);    return SECSuccess;}
开发者ID:Wafflespeanut,项目名称:gecko-dev,代码行数:47,


示例13: SSL_AuthCertificateHook

/* NEED LOCKS IN HERE.  */SECStatusSSL_AuthCertificateHook(PRFileDesc *s, SSLAuthCertificate func, void *arg){    sslSocket *ss;    ss = ssl_FindSocket(s);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in AuthCertificateHook",		 SSL_GETPID(), s));	return SECFailure;    }    ss->authCertificate = func;    ss->authCertificateArg = arg;    return SECSuccess;}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:18,


示例14: SSL_GetClientAuthDataHook

/* NEED LOCKS IN HERE.  */SECStatus SSL_GetClientAuthDataHook(PRFileDesc *s, SSLGetClientAuthData func,			      void *arg){    sslSocket *ss;    ss = ssl_FindSocket(s);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in GetClientAuthDataHook",		 SSL_GETPID(), s));	return SECFailure;    }    ss->getClientAuthData = func;    ss->getClientAuthDataArg = arg;    return SECSuccess;}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:18,


示例15: SSL_SNISocketConfigHook

/* For more info see ssl.h */SECStatus SSL_SNISocketConfigHook(PRFileDesc *fd, SSLSNISocketConfig func,                        void *arg){    sslSocket *ss;    ss = ssl_FindSocket(fd);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in SNISocketConfigHook",		 SSL_GETPID(), fd));	return SECFailure;    }    ss->sniSocketConfig = func;    ss->sniSocketConfigArg = arg;    return SECSuccess;}
开发者ID:Metrological,项目名称:chromium,代码行数:18,


示例16: SSL_BadCertHook

SECStatusSSL_BadCertHook(PRFileDesc *fd, SSLBadCertHandler f, void *arg){    sslSocket *ss;        ss = ssl_FindSocket(fd);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in SSLBadCertHook",		 SSL_GETPID(), fd));	return SECFailure;    }    ss->handleBadCert = f;    ss->badCertArg = arg;    return SECSuccess;}
开发者ID:Metrological,项目名称:chromium,代码行数:17,


示例17: SSLInt_AdvanceWriteSeqNum

SECStatus SSLInt_AdvanceWriteSeqNum(PRFileDesc *fd, PRUint64 to) {  PRUint64 epoch;  sslSocket *ss;  ss = ssl_FindSocket(fd);  if (!ss) {    return SECFailure;  }  if (to >= (1ULL << 48)) {    return SECFailure;  }  ssl_GetSpecWriteLock(ss);  epoch = ss->ssl3.cwSpec->write_seq_num >> 48;  ss->ssl3.cwSpec->write_seq_num = (epoch << 48) | to;  ssl_ReleaseSpecWriteLock(ss);  return SECSuccess;}
开发者ID:cstipkovic,项目名称:gecko-dev,代码行数:17,


示例18: SSL_SetClientChannelIDCallback

SECStatusSSL_SetClientChannelIDCallback(PRFileDesc *fd,			       SSLClientChannelIDCallback callback,			       void *arg) {    sslSocket *ss = ssl_FindSocket(fd);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in SSL_SetClientChannelIDCallback",		 SSL_GETPID(), fd));	return SECFailure;    }    ss->getChannelID = callback;    ss->getChannelIDArg = arg;    return SECSuccess;}
开发者ID:agamdua,项目名称:libjingle,代码行数:17,


示例19: SSL_CacheSession

SECStatusSSL_CacheSession(PRFileDesc *fd){    sslSocket *   ss = ssl_FindSocket(fd);    SECStatus     rv = SECFailure;    if (ss) {	ssl_Get1stHandshakeLock(ss);	ssl_GetSSL3HandshakeLock(ss);	ssl3_CacheSessionUnlocked(ss);	rv = SECSuccess;	ssl_ReleaseSSL3HandshakeLock(ss);	ssl_Release1stHandshakeLock(ss);    }    return rv;}
开发者ID:Metrological,项目名称:chromium,代码行数:18,


示例20: SSL_ForceHandshake

/* Try to make progress on an SSL handshake by attempting to read the ** next handshake from the peer, and sending any responses.** For non-blocking sockets, returns PR_ERROR_WOULD_BLOCK  if it cannot ** read the next handshake from the underlying socket.** For SSLv2, returns when handshake is complete or fatal error occurs.** For SSLv3, returns when handshake is complete, or application data has** arrived that must be taken by application before handshake can continue, ** or a fatal error occurs.** Application should use handshake completion callback to tell which. */SECStatusSSL_ForceHandshake(PRFileDesc *fd){    sslSocket *ss;    SECStatus  rv = SECFailure;    ss = ssl_FindSocket(fd);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in ForceHandshake",		 SSL_GETPID(), fd));	return rv;    }    /* Don't waste my time */    if (!ss->opt.useSecurity)     	return SECSuccess;    ssl_Get1stHandshakeLock(ss);    if (ss->version >= SSL_LIBRARY_VERSION_3_0) {	int gatherResult;    	ssl_GetRecvBufLock(ss);	gatherResult = ssl3_GatherCompleteHandshake(ss, 0);	ssl_ReleaseRecvBufLock(ss);	if (gatherResult > 0) {	    rv = SECSuccess;	} else if (gatherResult == 0) {	    PORT_SetError(PR_END_OF_FILE_ERROR);	} else if (gatherResult == SECWouldBlock) {	    PORT_SetError(PR_WOULD_BLOCK_ERROR);	}    } else if (!ss->firstHsDone) {	rv = ssl_Do1stHandshake(ss);    } else {	/* tried to force handshake on an SSL 2 socket that has 	** already completed the handshake. */    	rv = SECSuccess;	/* just pretend we did it. */    }    ssl_Release1stHandshakeLock(ss);    return rv;}
开发者ID:LittleForker,项目名称:mozilla-central,代码行数:54,


示例21: SSLInt_SendNewSessionTicket

PRBool SSLInt_SendNewSessionTicket(PRFileDesc *fd) {  sslSocket *ss = ssl_FindSocket(fd);  if (!ss) {    return PR_FALSE;  }  ssl_GetSSL3HandshakeLock(ss);  ssl_GetXmitBufLock(ss);  SECStatus rv = tls13_SendNewSessionTicket(ss);  if (rv == SECSuccess) {    rv = ssl3_FlushHandshake(ss, 0);  }  ssl_ReleaseXmitBufLock(ss);  ssl_ReleaseSSL3HandshakeLock(ss);  return rv == SECSuccess;}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:19,


示例22: SSL_SetSignedCertTimestamps

/* Public deprecated function */SECStatusSSL_SetSignedCertTimestamps(PRFileDesc *fd, const SECItem *scts,                            SSLKEAType certType){    sslSocket *ss;    SECStatus rv;    ss = ssl_FindSocket(fd);    if (!ss) {        SSL_DBG(("%d: SSL[%d]: bad socket in SSL_SetSignedCertTimestamps",                 SSL_GETPID(), fd));        return SECFailure;    }    switch (certType) {        case ssl_kea_rsa:            rv = ssl_SetSignedTimestampsInSlot(ss, ssl_auth_rsa_decrypt, scts);            if (rv != SECSuccess) {                return SECFailure;            }            return ssl_SetSignedTimestampsInSlot(ss, ssl_auth_rsa_sign, scts);        case ssl_kea_dh:            return ssl_SetSignedTimestampsInSlot(ss, ssl_auth_dsa, scts);        case ssl_kea_ecdh:            rv = ssl_SetSignedTimestampsInSlot(ss, ssl_auth_ecdsa, scts);            if (rv != SECSuccess) {                return SECFailure;            }            rv = ssl_SetSignedTimestampsInSlot(ss, ssl_auth_ecdh_rsa, scts);            if (rv != SECSuccess) {                return SECFailure;            }            return ssl_SetSignedTimestampsInSlot(ss, ssl_auth_ecdh_ecdsa, scts);        default:            SSL_DBG(("%d: SSL[%d]: invalid cert type in SSL_SetSignedCertTimestamps",                     SSL_GETPID(), fd));            PORT_SetError(SEC_ERROR_INVALID_ARGS);            return SECFailure;    }}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:44,


示例23: SSL_ConfigSecureServerWithCertChain

/* Public deprecated function */SECStatusSSL_ConfigSecureServerWithCertChain(PRFileDesc *fd, CERTCertificate *cert,                                    const CERTCertificateList *certChainOpt,                                    SECKEYPrivateKey *key, SSLKEAType certType){    sslSocket *ss;    ss = ssl_FindSocket(fd);    if (!ss) {        return SECFailure;    }    if (!cert != !key) { /* Configure both, or neither */        PORT_SetError(SEC_ERROR_INVALID_ARGS);        return SECFailure;    }    if (!cert) {        switch (certType) {            case ssl_kea_rsa:                ssl_RemoveCertAndKeyByAuthType(ss, ssl_auth_rsa_decrypt);                ssl_RemoveCertAndKeyByAuthType(ss, ssl_auth_rsa_sign);                break;            case ssl_kea_dh:                ssl_RemoveCertAndKeyByAuthType(ss, ssl_auth_dsa);                break;            case ssl_kea_ecdh:                ssl_RemoveCertAndKeyByAuthType(ss, ssl_auth_ecdsa);                ssl_RemoveCertAndKeyByAuthType(ss, ssl_auth_ecdh_rsa);                ssl_RemoveCertAndKeyByAuthType(ss, ssl_auth_ecdh_ecdsa);                break;            default:                PORT_SetError(SEC_ERROR_INVALID_ARGS);                return SECFailure;        }        return SECSuccess;    }    return ssl_AddCertsByKEA(ss, cert, certChainOpt, key, certType);}
开发者ID:lazyparser,项目名称:gecko-dev,代码行数:44,


示例24: SSL_InvalidateSession

SECStatusSSL_InvalidateSession(PRFileDesc *fd){    sslSocket *   ss = ssl_FindSocket(fd);    SECStatus     rv = SECFailure;    if (ss) {	ssl_Get1stHandshakeLock(ss);	ssl_GetSSL3HandshakeLock(ss);	if (ss->sec.ci.sid && ss->sec.uncache) {	    ss->sec.uncache(ss->sec.ci.sid);	    rv = SECSuccess;	}	ssl_ReleaseSSL3HandshakeLock(ss);	ssl_Release1stHandshakeLock(ss);    }    return rv;}
开发者ID:Metrological,项目名称:chromium,代码行数:20,


示例25: SSL_LocalCertificate

/* NEED LOCKS IN HERE.  */CERTCertificate *SSL_LocalCertificate(PRFileDesc *fd){    sslSocket *ss;    ss = ssl_FindSocket(fd);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in PeerCertificate",		 SSL_GETPID(), fd));	return NULL;    }    if (ss->opt.useSecurity) {    	if (ss->sec.localCert) {	    return CERT_DupCertificate(ss->sec.localCert);	}	if (ss->sec.ci.sid && ss->sec.ci.sid->localCert) {	    return CERT_DupCertificate(ss->sec.ci.sid->localCert);	}    }    return NULL;}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:22,


示例26: SSL_AuthCertificate

SECStatusSSL_AuthCertificate(void *arg, PRFileDesc *fd, PRBool checkSig, PRBool isServer){    SECStatus          rv;    CERTCertDBHandle * handle;    sslSocket *        ss;    SECCertUsage       certUsage;    const char *             hostname    = NULL;        ss = ssl_FindSocket(fd);    PORT_Assert(ss != NULL);    if (!ss) {	return SECFailure;    }    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;}
开发者ID:crow89,项目名称:Alcatel_OT_985_kernel,代码行数:40,


示例27: ssl_SetTimeout

static SECStatus ssl_SetTimeout(PRFileDesc *fd, PRIntervalTime timeout){    sslSocket *ss;    ss = ssl_FindSocket(fd);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in SetTimeout", SSL_GETPID(), fd));	return SECFailure;    }    SSL_LOCK_READER(ss);    ss->rTimeout = timeout;    if (ss->opt.fdx) {        SSL_LOCK_WRITER(ss);    }    ss->wTimeout = timeout;    if (ss->opt.fdx) {        SSL_UNLOCK_WRITER(ss);    }    SSL_UNLOCK_READER(ss);    return SECSuccess;}
开发者ID:Metrological,项目名称:chromium,代码行数:22,


示例28: SSL_GetNegotiatedHostInfo

SECItem *SSL_GetNegotiatedHostInfo(PRFileDesc *fd){    SECItem *sniName = NULL;    sslSocket *ss;    char *name = NULL;    ss = ssl_FindSocket(fd);    if (!ss) {        SSL_DBG(("%d: SSL[%d]: bad socket in SSL_GetNegotiatedHostInfo",                 SSL_GETPID(), fd));        return NULL;    }    if (ss->sec.isServer) {        if (ss->version > SSL_LIBRARY_VERSION_3_0 &&            ss->ssl3.initialized) { /* TLS */            SECItem *crsName;            ssl_GetSpecReadLock(ss); /*********************************/            crsName = &ss->ssl3.hs.srvVirtName;            if (crsName->data) {                sniName = SECITEM_DupItem(crsName);            }            ssl_ReleaseSpecReadLock(ss); /*----------------------------*/        }        return sniName;    }    name = SSL_RevealURL(fd);    if (name) {        sniName = PORT_ZNew(SECItem);        if (!sniName) {            PORT_Free(name);            return NULL;        }        sniName->data = (void *)name;        sniName->len = PORT_Strlen(name);    }    return sniName;}
开发者ID:Wafflespeanut,项目名称:gecko-dev,代码行数:39,


示例29: SSL_RestartHandshakeAfterCertReq

/* * attempt to restart the handshake after asynchronously handling * a request for the client's certificate. * * inputs:   *	cert	Client cert chosen by application. *		Note: ssl takes this reference, and does not bump the  *		reference count.  The caller should drop its reference *		without calling CERT_DestroyCertificate after calling this *		function. * *	key	Private key associated with cert.  This function takes *		ownership of the private key, so the caller should drop its *		reference without destroying the private key after this *		function returns. * *	certChain  Chain of signers for cert.   *		Note: ssl takes this reference, and does not copy the chain. *		The caller should drop its reference without destroying the  *		chain.  SSL will free the chain when it is done with it. * * Return value: XXX * * XXX This code only works on the initial handshake on a connection, XXX *     It does not work on a subsequent handshake (redo). */SECStatusSSL_RestartHandshakeAfterCertReq(PRFileDesc *        fd,				CERTCertificate *    cert, 				SECKEYPrivateKey *   key,				CERTCertificateList *certChain){    sslSocket *   ss = ssl_FindSocket(fd);    SECStatus     ret;    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in SSL_RestartHandshakeAfterCertReq",		 SSL_GETPID(), fd));	if (cert) {	    CERT_DestroyCertificate(cert);	}	if (key) {	    SECKEY_DestroyPrivateKey(key);	}	if (certChain) {	    CERT_DestroyCertificateList(certChain);	}	return SECFailure;    }    ssl_Get1stHandshakeLock(ss);   /************************************/    if (ss->version >= SSL_LIBRARY_VERSION_3_0) {	ret = ssl3_RestartHandshakeAfterCertReq(ss, cert, key, certChain);    } else {	if (certChain != NULL) {	    CERT_DestroyCertificateList(certChain);	}	PORT_SetError(SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SSL2);	ret = SECFailure;    }    ssl_Release1stHandshakeLock(ss);  /************************************/    return ret;}
开发者ID:Metrological,项目名称:chromium,代码行数:65,


示例30: SSL_PeerCertificateChain

/* NEED LOCKS IN HERE.  */CERTCertList *SSL_PeerCertificateChain(PRFileDesc *fd){    sslSocket *ss;    CERTCertList *chain = NULL;    CERTCertificate *cert;    ssl3CertNode *cur;    ss = ssl_FindSocket(fd);    if (!ss) {	SSL_DBG(("%d: SSL[%d]: bad socket in PeerCertificateChain",		 SSL_GETPID(), fd));	return NULL;    }    if (!ss->opt.useSecurity || !ss->sec.peerCert) {	PORT_SetError(SSL_ERROR_NO_CERTIFICATE);	return NULL;    }    chain = CERT_NewCertList();    if (!chain) {	return NULL;    }    cert = CERT_DupCertificate(ss->sec.peerCert);    if (CERT_AddCertToListTail(chain, cert) != SECSuccess) {	goto loser;    }    for (cur = ss->ssl3.peerCertChain; cur; cur = cur->next) {	cert = CERT_DupCertificate(cur->cert);	if (CERT_AddCertToListTail(chain, cert) != SECSuccess) {	    goto loser;	}    }    return chain;loser:    CERT_DestroyCertList(chain);    return NULL;}
开发者ID:Nazi-Nigger,项目名称:gecko-dev,代码行数:39,



注:本文中的ssl_FindSocket函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ssl_Get1stHandshakeLock函数代码示例
C++ sslErrors函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。