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

📄 ssl.cpp

📁 mysql-5.0.22.tar.gz源码包
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// TODO: all session statslong SSL_CTX_sess_accept(SSL_CTX* ctx){    return ctx->GetStats().accept_;}long SSL_CTX_sess_connect(SSL_CTX* ctx){    return ctx->GetStats().connect_;}long SSL_CTX_sess_accept_good(SSL_CTX* ctx){    return ctx->GetStats().acceptGood_;}long SSL_CTX_sess_connect_good(SSL_CTX* ctx){    return ctx->GetStats().connectGood_;}long SSL_CTX_sess_accept_renegotiate(SSL_CTX* ctx){    return ctx->GetStats().acceptRenegotiate_;}long SSL_CTX_sess_connect_renegotiate(SSL_CTX* ctx){    return ctx->GetStats().connectRenegotiate_;}long SSL_CTX_sess_hits(SSL_CTX* ctx){    return ctx->GetStats().hits_;}long SSL_CTX_sess_cb_hits(SSL_CTX* ctx){    return ctx->GetStats().cbHits_;}long SSL_CTX_sess_cache_full(SSL_CTX* ctx){    return ctx->GetStats().cacheFull_;}long SSL_CTX_sess_misses(SSL_CTX* ctx){    return ctx->GetStats().misses_;}long SSL_CTX_sess_timeouts(SSL_CTX* ctx){    return ctx->GetStats().timeouts_;}long SSL_CTX_sess_number(SSL_CTX* ctx){    return ctx->GetStats().number_;}long SSL_CTX_sess_get_cache_size(SSL_CTX* ctx){    return ctx->GetStats().getCacheSize_;}// end session stats TODO:int SSL_CTX_get_verify_mode(SSL_CTX* ctx){    return ctx->GetStats().verifyMode_;}int SSL_get_verify_mode(SSL* ssl){    return ssl->getSecurity().GetContext()->GetStats().verifyMode_;}int SSL_CTX_get_verify_depth(SSL_CTX* ctx){    return ctx->GetStats().verifyDepth_;}int SSL_get_verify_depth(SSL* ssl){    return ssl->getSecurity().GetContext()->GetStats().verifyDepth_;}long SSL_CTX_set_options(SSL_CTX*, long){    // TDOD:    return SSL_SUCCESS;}void SSL_CTX_set_info_callback(SSL_CTX*, void (*)()){    // TDOD:}void OpenSSL_add_all_algorithms()  // compatibility only{}void SSL_library_init()  // compatibility only{}DH* DH_new(void){    DH* dh = new (ys) DH;    if (dh)        dh->p = dh->g = 0;    return dh;}void DH_free(DH* dh){    ysDelete(dh->g);    ysDelete(dh->p);    ysDelete(dh);}// convert positive big-endian num of length sz into retVal, which may need to // be createdBIGNUM* BN_bin2bn(const unsigned char* num, int sz, BIGNUM* retVal){    using mySTL::auto_ptr;    bool created = false;    auto_ptr<BIGNUM> bn(ysDelete);    if (!retVal) {        created = true;        bn.reset(new (ys) BIGNUM);        retVal = bn.get();    }    retVal->assign(num, sz);    if (created)        return bn.release();    else        return retVal;}unsigned long ERR_get_error_line_data(const char**, int*, const char**, int *){    //return SSL_NOT_IMPLEMENTED;    return 0;}void ERR_print_errors_fp(FILE* /*fp*/){    // need ssl access to implement TODO:    //fprintf(fp, "%s", ssl.get_states().errorString_.c_str());}char* ERR_error_string(unsigned long /*err*/, char* buffer){    // TODO:    static char* msg = "Not Implemented";    if (buffer)        return strncpy(buffer, msg, strlen(msg));    return msg;}const char* X509_verify_cert_error_string(long /* error */){    // TODO:    static const char* msg = "Not Implemented";    return msg;}const EVP_MD* EVP_md5(void){    // TODO: FIX add to some list for destruction    return new (ys) MD5;}const EVP_CIPHER* EVP_des_ede3_cbc(void){    // TODO: FIX add to some list for destruction    return new (ys) DES_EDE;}int EVP_BytesToKey(const EVP_CIPHER* type, const EVP_MD* md, const byte* salt,                   const byte* data, int sz, int count, byte* key, byte* iv){    EVP_MD* myMD = const_cast<EVP_MD*>(md);    uint digestSz = myMD->get_digestSize();    byte digest[SHA_LEN];                   // max size    int keyLen    = type->get_keySize();    int ivLen     = type->get_ivSize();    int keyLeft   = keyLen;    int ivLeft    = ivLen;    int keyOutput = 0;    while (keyOutput < (keyLen + ivLen)) {        int digestLeft = digestSz;        // D_(i - 1)        if (keyOutput)                      // first time D_0 is empty            myMD->update(digest, digestSz);        // data        myMD->update(data, sz);        // salt        if (salt)            myMD->update(salt, EVP_SALT_SZ);        myMD->get_digest(digest);        // count        for (int j = 1; j < count; j++) {            myMD->update(digest, digestSz);            myMD->get_digest(digest);        }        if (keyLeft) {            int store = min(keyLeft, static_cast<int>(digestSz));            memcpy(&key[keyLen - keyLeft], digest, store);            keyOutput  += store;            keyLeft    -= store;            digestLeft -= store;        }        if (ivLeft && digestLeft) {            int store = min(ivLeft, digestLeft);            memcpy(&iv[ivLen - ivLeft], digest, store);            keyOutput += store;            ivLeft    -= store;        }    }    assert(keyOutput == (keyLen + ivLen));    return keyOutput;}void DES_set_key_unchecked(const_DES_cblock* key, DES_key_schedule* schedule){    memcpy(schedule, key, sizeof(const_DES_cblock));}void DES_ede3_cbc_encrypt(const byte* input, byte* output, long sz,                          DES_key_schedule* ks1, DES_key_schedule* ks2,                          DES_key_schedule* ks3, DES_cblock* ivec, int enc){    DES_EDE des;    byte key[DES_EDE_KEY_SZ];    memcpy(key, *ks1, DES_BLOCK);    memcpy(&key[DES_BLOCK], *ks2, DES_BLOCK);    memcpy(&key[DES_BLOCK * 2], *ks3, DES_BLOCK);    if (enc) {        des.set_encryptKey(key, *ivec);        des.encrypt(output, input, sz);    }    else {        des.set_decryptKey(key, *ivec);        des.decrypt(output, input, sz);    }}    // functions for stunnel    void RAND_screen()    {        // TODO:    }    const char* RAND_file_name(char*, size_t)    {        // TODO:        return 0;    }    int RAND_write_file(const char*)    {        // TODO:        return 0;    }    int RAND_load_file(const char*, long)    {        // TODO:        return 0;    }    void RSA_free(RSA*)    {        // TODO:    }    RSA* RSA_generate_key(int, unsigned long, void(*)(int, int, void*), void*)    {        //  TODO:        return 0;    }    int X509_LOOKUP_add_dir(X509_LOOKUP*, const char*, long)    {        // TODO:        return SSL_SUCCESS;    }    int X509_LOOKUP_load_file(X509_LOOKUP*, const char*, long)    {        // TODO:        return SSL_SUCCESS;    }    X509_LOOKUP_METHOD* X509_LOOKUP_hash_dir(void)    {        // TODO:        return 0;    }    X509_LOOKUP_METHOD* X509_LOOKUP_file(void)    {        // TODO:        return 0;    }    X509_LOOKUP* X509_STORE_add_lookup(X509_STORE*, X509_LOOKUP_METHOD*)    {        // TODO:        return 0;    }    int X509_STORE_get_by_subject(X509_STORE_CTX*, int, X509_NAME*, X509_OBJECT*)    {        // TODO:        return SSL_SUCCESS;    }    X509_STORE* X509_STORE_new(void)    {        // TODO:        return 0;    }    char* SSL_alert_type_string_long(int)    {        // TODO:        return 0;    }    char* SSL_alert_desc_string_long(int)    {        // TODO:        return 0;    }    char* SSL_state_string_long(SSL*)    {        // TODO:        return 0;    }    void SSL_CTX_set_tmp_rsa_callback(SSL_CTX*, RSA*(*)(SSL*, int, int))    {        // TDOD:    }    long SSL_CTX_set_session_cache_mode(SSL_CTX*, long)    {        // TDOD:        return SSL_SUCCESS;    }    long SSL_CTX_set_timeout(SSL_CTX*, long)    {        // TDOD:        return SSL_SUCCESS;    }    int SSL_CTX_use_certificate_chain_file(SSL_CTX*, const char*)    {        // TDOD:        return SSL_SUCCESS;    }    void SSL_CTX_set_default_passwd_cb(SSL_CTX*, pem_password_cb)    {        // TDOD:    }    int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX*, const char*, int)    {        // TDOD:        return SSL_SUCCESS;    }    int SSL_set_rfd(SSL*, int)    {        return SSL_SUCCESS; // TODO:    }    int SSL_set_wfd(SSL*, int)    {        return SSL_SUCCESS; // TODO:    }    int SSL_pending(SSL*)    {        return SSL_SUCCESS; // TODO:    }    int SSL_want_read(SSL*)    {        return 0; // TODO:    }    int SSL_want_write(SSL*)    {        return 0; // TODO:    }    void SSL_set_shutdown(SSL*, int)    {        // TODO:    }    SSL_CIPHER* SSL_get_current_cipher(SSL*)    {        // TODO:        return 0;    }    char* SSL_CIPHER_description(SSL_CIPHER*, char*, int)    {        // TODO:        return 0;    }    void SSLeay_add_ssl_algorithms()  // compatibility only    {}    void ERR_remove_state(unsigned long)    {        // TODO:    }    int ERR_GET_REASON(int l)    {        return l & 0xfff;    }    unsigned long ERR_peek_error()    {        return 0;  // TODO:    }    unsigned long ERR_get_error()    {        return ERR_peek_error();    }    // end stunnel needs} // namespace

⌨️ 快捷键说明

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