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

📄 yassl_int.cpp

📁 mysql-5.0.27版本源码包
💻 CPP
📖 第 1 页 / 共 4 页
字号:
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::setVerifyNone(){    method_->setVerifyNone();}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, bool haveDH)   : conn_(pv, ran), parms_(ce, ciphers, pv, haveDH), 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), sz_(sz){    if (sz) {        name_ = NEW_YS char[sz];        memcpy(name_, n, sz);    }    entry_.data = 0;}X509_NAME::~X509_NAME(){    ysArrayDelete(name_);    ysArrayDelete(entry_.data);}char* X509_NAME::GetName(){    return name_;}X509::X509(const char* i, size_t iSz, const char* s, size_t sSz,           const char* b, int bSz, const char* a, int aSz)    : issuer_(i, iSz), subject_(s, sSz),      beforeDate_(b, bSz), afterDate_(a, aSz){}   X509_NAME* X509::GetIssuer(){    return &issuer_;}X509_NAME* X509::GetSubject(){    return &subject_;}ASN1_STRING* X509::GetBefore(){    return beforeDate_.GetString();}ASN1_STRING* X509::GetAfter(){    return afterDate_.GetString();}ASN1_STRING* X509_NAME::GetEntry(int i){    if (i < 0 || i >= int(sz_))        return 0;    if (entry_.data)        ysArrayDelete(entry_.data);    entry_.data = NEW_YS byte[sz_];       // max size;    memcpy(entry_.data, &name_[i], sz_ - i);    if (entry_.data[sz_ -i - 1]) {        entry_.data[sz_ - i] = 0;        entry_.length = sz_ - i;    }    else        entry_.length = sz_ - i - 1;    entry_.type = 0;    return &entry_;}StringHolder::StringHolder(const char* str, int sz){    asnString_.length = sz;    asnString_.data = NEW_YS byte[sz + 1];    memcpy(asnString_.data, str, sz);    asnString_.type = 0;  // not used for now}StringHolder::~StringHolder(){    ysArrayDelete(asnString_.data);}ASN1_STRING* StringHolder::GetString(){    return &asnString_;}} // namespaceextern "C" void yaSSL_CleanUp(){    TaoCrypt::CleanUp();    yaSSL::ysDelete(yaSSL::sslFactoryInstance);    yaSSL::ysDelete(yaSSL::sessionsInstance);    // In case user calls more than once, prevent seg fault    yaSSL::sslFactoryInstance = 0;    yaSSL::sessionsInstance = 0;}#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 + -