⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yassl_int.cpp

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 CPP
📖 第 1 页 / 共 4 页
字号:
SSL_CTX::~SSL_CTX(){    ysDelete(method_);    ysDelete(certificate_);    ysDelete(privateKey_);    mySTL::for_each(caList_.begin(), caList_.end(), del_ptr_zero());}void SSL_CTX::AddCA(x509* ca){    caList_.push_back(ca);}const SSL_CTX::CertList& SSL_CTX::GetCA_List() const{    return caList_;}const x509* SSL_CTX::getCert() const{    return certificate_;}const x509* SSL_CTX::getKey() const{    return privateKey_;}const SSL_METHOD* SSL_CTX::getMethod() const{    return method_;}const Ciphers& SSL_CTX::GetCiphers() const{    return ciphers_;}const DH_Parms& SSL_CTX::GetDH_Parms() const{    return dhParms_;}const Stats& SSL_CTX::GetStats() const{    return stats_;}void SSL_CTX::setVerifyPeer(){    method_->setVerifyPeer();}void SSL_CTX::setFailNoCert(){    method_->setFailNoCert();}bool SSL_CTX::SetDH(const DH& dh){    dhParms_.p_ = dh.p->int_;    dhParms_.g_ = dh.g->int_;    return dhParms_.set_ = true;}bool SSL_CTX::SetCipherList(const char* list){    if (!list)        return false;    bool ret = false;    char name[MAX_SUITE_NAME];    char  needle[] = ":";    char* haystack = const_cast<char*>(list);    char* prev;    const int suiteSz = sizeof(cipher_names) / sizeof(cipher_names[0]);    int idx = 0;    for(;;) {        int len;        prev = haystack;        haystack = strstr(haystack, needle);        if (!haystack)    // last cipher            len = min(sizeof(name), strlen(prev));        else            len = min(sizeof(name), (size_t)(haystack - prev));        strncpy(name, prev, len);        name[(len == sizeof(name)) ? len - 1 : len] = 0;        for (int i = 0; i < suiteSz; i++)            if (strncmp(name, cipher_names[i], sizeof(name)) == 0) {                ciphers_.suites_[idx++] = 0x00;  // first byte always zero                ciphers_.suites_[idx++] = i;                if (!ret) ret = true;   // found at least one                break;            }        if (!haystack) break;        haystack++;    }    if (ret) {        ciphers_.setSuites_ = true;        ciphers_.suiteSz_ = idx;    }    return ret;}void SSL_CTX::IncrementStats(StatsField fd){    Lock guard(mutex_);        switch (fd) {	case Accept:        ++stats_.accept_;        break;    case Connect:        ++stats_.connect_;        break;    case AcceptGood:        ++stats_.acceptGood_;        break;    case ConnectGood:        ++stats_.connectGood_;        break;    case AcceptRenegotiate:        ++stats_.acceptRenegotiate_;        break;    case ConnectRenegotiate:        ++stats_.connectRenegotiate_;        break;    case Hits:        ++stats_.hits_;        break;    case CbHits:        ++stats_.cbHits_;        break;    case CacheFull:        ++stats_.cacheFull_;        break;    case Misses:        ++stats_.misses_;        break;    case Timeouts:        ++stats_.timeouts_;        break;    case Number:        ++stats_.number_;        break;    case GetCacheSize:        ++stats_.getCacheSize_;        break;    case VerifyMode:        ++stats_.verifyMode_;        break;    case VerifyDepth:        ++stats_.verifyDepth_;        break;    default:        break;    }}Crypto::Crypto()     : digest_(0), cipher_(0), dh_(0) {}Crypto::~Crypto(){    ysDelete(dh_);    ysDelete(cipher_);    ysDelete(digest_);}const Digest& Crypto::get_digest() const{    return *digest_;}const BulkCipher& Crypto::get_cipher() const{    return *cipher_;}const DiffieHellman& Crypto::get_dh() const{    return *dh_;}const RandomPool& Crypto::get_random() const{    return random_;}const CertManager& Crypto::get_certManager() const{    return cert_;}      Digest& Crypto::use_digest(){    return *digest_;}BulkCipher& Crypto::use_cipher(){    return *cipher_;}DiffieHellman& Crypto::use_dh(){    return *dh_;}RandomPool& Crypto::use_random(){    return random_;}CertManager& Crypto::use_certManager(){    return cert_;}void Crypto::SetDH(DiffieHellman* dh){    dh_ = dh;}void Crypto::SetDH(const DH_Parms& dh){    if (dh.set_)        dh_ = new (ys) DiffieHellman(dh.p_, dh.g_, random_);}bool Crypto::DhSet(){    return dh_ != 0;}void Crypto::setDigest(Digest* digest){    digest_ = digest;}void Crypto::setCipher(BulkCipher* c){    cipher_ = c;}const MD5& sslHashes::get_MD5() const{    return md5HandShake_;}const SHA& sslHashes::get_SHA() const{    return shaHandShake_;}const Finished& sslHashes::get_verify() const{    return verify_;}const Hashes& sslHashes::get_certVerify() const{    return certVerify_;}MD5& sslHashes::use_MD5(){    return md5HandShake_;}SHA& sslHashes::use_SHA(){    return shaHandShake_;}Finished& sslHashes::use_verify(){    return verify_;}Hashes& sslHashes::use_certVerify(){    return certVerify_;}Buffers::~Buffers(){    mySTL::for_each(handShakeList_.begin(), handShakeList_.end(),                  del_ptr_zero()) ;    mySTL::for_each(dataList_.begin(), dataList_.end(),                  del_ptr_zero()) ;}const Buffers::inputList& Buffers::getData() const{    return dataList_;}const Buffers::outputList& Buffers::getHandShake() const{    return handShakeList_;}Buffers::inputList& Buffers::useData(){    return dataList_;}Buffers::outputList& Buffers::useHandShake(){    return handShakeList_;}Security::Security(ProtocolVersion pv, RandomPool& ran, ConnectionEnd ce,                   const Ciphers& ciphers, SSL_CTX* ctx)   : conn_(pv, ran), parms_(ce, ciphers, pv), resumeSession_(ran), ctx_(ctx),     resuming_(false){}const Connection& Security::get_connection() const{    return conn_;}const SSL_CTX* Security::GetContext() const{    return ctx_;}const Parameters& Security::get_parms() const{    return parms_;}const SSL_SESSION& Security::get_resume() const{    return resumeSession_;}bool Security::get_resuming() const{    return resuming_;}Connection& Security::use_connection(){    return conn_;}Parameters& Security::use_parms(){    return parms_;}SSL_SESSION& Security::use_resume(){    return resumeSession_;}void Security::set_resuming(bool b){    resuming_ = b;}X509_NAME::X509_NAME(const char* n, size_t sz)    : name_(0){    if (sz) {        name_ = new (ys) char[sz];        memcpy(name_, n, sz);    }}X509_NAME::~X509_NAME(){    ysArrayDelete(name_);}char* X509_NAME::GetName(){    return name_;}X509::X509(const char* i, size_t iSz, const char* s, size_t sSz)    : issuer_(i, iSz), subject_(s, sSz){}   X509_NAME* X509::GetIssuer(){    return &issuer_;}X509_NAME* X509::GetSubject(){    return &subject_;}} // namespace#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATIONnamespace mySTL {template yaSSL::yassl_int_cpp_local1::SumData for_each<mySTL::list<yaSSL::input_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumData>(mySTL::list<yaSSL::input_buffer*>::iterator, mySTL::list<yaSSL::input_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumData);template yaSSL::yassl_int_cpp_local1::SumBuffer for_each<mySTL::list<yaSSL::output_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer>(mySTL::list<yaSSL::output_buffer*>::iterator, mySTL::list<yaSSL::output_buffer*>::iterator, yaSSL::yassl_int_cpp_local1::SumBuffer);template mySTL::list<yaSSL::SSL_SESSION*>::iterator find_if<mySTL::list<yaSSL::SSL_SESSION*>::iterator, yaSSL::yassl_int_cpp_local2::sess_match>(mySTL::list<yaSSL::SSL_SESSION*>::iterator, mySTL::list<yaSSL::SSL_SESSION*>::iterator, yaSSL::yassl_int_cpp_local2::sess_match);}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -