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

📄 yassl_imp.cpp

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 CPP
📖 第 1 页 / 共 4 页
字号:
output_buffer& Certificate::get(output_buffer& out) const{    return out << *this;}HandShakeType Certificate::get_type() const{    return certificate;}ServerDHParams::ServerDHParams()    : pSz_(0), gSz_(0), pubSz_(0), p_(0), g_(0), Ys_(0){}ServerDHParams::~ServerDHParams(){    ysArrayDelete(Ys_);    ysArrayDelete(g_);    ysArrayDelete(p_);}int ServerDHParams::get_pSize() const{    return pSz_;}int ServerDHParams::get_gSize() const{    return gSz_;}int ServerDHParams::get_pubSize() const{    return pubSz_;}const opaque* ServerDHParams::get_p() const{    return p_;}const opaque* ServerDHParams::get_g() const{    return g_;}const opaque* ServerDHParams::get_pub() const{    return Ys_;}opaque* ServerDHParams::alloc_p(int sz){    p_ = new (ys) opaque[pSz_ = sz];    return p_;}opaque* ServerDHParams::alloc_g(int sz){    g_ = new (ys) opaque[gSz_ = sz];    return g_;}opaque* ServerDHParams::alloc_pub(int sz){    Ys_ = new (ys) opaque[pubSz_ = sz];    return Ys_;}int ServerKeyBase::get_length() const{    return 0;}opaque* ServerKeyBase::get_serverKey() const{    return 0;}// input operator for ServerHelloinput_buffer& operator>>(input_buffer& input, ServerHello& hello){     // Protocol    hello.server_version_.major_ = input[AUTO];    hello.server_version_.minor_ = input[AUTO];       // Random    input.read(hello.random_, RAN_LEN);        // Session    hello.id_len_ = input[AUTO];    input.read(hello.session_id_, ID_LEN);     // Suites    hello.cipher_suite_[0] = input[AUTO];    hello.cipher_suite_[1] = input[AUTO];       // Compression    hello.compression_method_ = CompressionMethod(input[AUTO]);    return input;}// output operator for ServerHellooutput_buffer& operator<<(output_buffer& output, const ServerHello& hello){    // Protocol    output[AUTO] = hello.server_version_.major_;    output[AUTO] = hello.server_version_.minor_;    // Random    output.write(hello.random_, RAN_LEN);    // Session    output[AUTO] = hello.id_len_;    output.write(hello.session_id_, ID_LEN);    // Suites    output[AUTO] = hello.cipher_suite_[0];    output[AUTO] = hello.cipher_suite_[1];    // Compression    output[AUTO] = hello.compression_method_;    return output;}// Server Hello processing handlervoid ServerHello::Process(input_buffer&, SSL& ssl){    ssl.set_pending(cipher_suite_[1]);    ssl.set_random(random_, server_end);    ssl.set_sessionID(session_id_);    if (ssl.getSecurity().get_resuming())        if (memcmp(session_id_, ssl.getSecurity().get_resume().GetID(),                   ID_LEN) == 0) {            ssl.set_masterSecret(ssl.getSecurity().get_resume().GetSecret());            if (ssl.isTLS())                ssl.deriveTLSKeys();            else                ssl.deriveKeys();            ssl.useStates().useClient() = serverHelloDoneComplete;            return;        }        else {            ssl.useSecurity().set_resuming(false);            ssl.useLog().Trace("server denied resumption");        }    ssl.useStates().useClient() = serverHelloComplete;}ServerHello::ServerHello(){    memset(random_, 0, RAN_LEN);    memset(session_id_, 0, ID_LEN);}ServerHello::ServerHello(ProtocolVersion pv)    : server_version_(pv){    memset(random_, 0, RAN_LEN);    memset(session_id_, 0, ID_LEN);}input_buffer& ServerHello::set(input_buffer& in){    return in  >> *this;}output_buffer& ServerHello::get(output_buffer& out) const{    return out << *this;}HandShakeType ServerHello::get_type() const{    return server_hello;}const opaque* ServerHello::get_random() const{    return random_;}// Server Hello Done processing handlervoid ServerHelloDone::Process(input_buffer&, SSL& ssl){    ssl.useStates().useClient() = serverHelloDoneComplete;}ServerHelloDone::ServerHelloDone(){    set_length(0);}input_buffer& ServerHelloDone::set(input_buffer& in){    return in;}output_buffer& ServerHelloDone::get(output_buffer& out) const{    return out;}HandShakeType ServerHelloDone::get_type() const{    return server_hello_done;}int ClientKeyBase::get_length() const{    return 0;}opaque* ClientKeyBase::get_clientKey() const{    return 0;}// input operator for Client Helloinput_buffer& operator>>(input_buffer& input, ClientHello& hello){    // Protocol    hello.client_version_.major_ = input[AUTO];    hello.client_version_.minor_ = input[AUTO];    // Random    input.read(hello.random_, RAN_LEN);    // Session    hello.id_len_ = input[AUTO];    if (hello.id_len_) input.read(hello.session_id_, ID_LEN);        // Suites    byte tmp[2];    tmp[0] = input[AUTO];    tmp[1] = input[AUTO];    ato16(tmp, hello.suite_len_);    input.read(hello.cipher_suites_, hello.suite_len_);    // Compression    hello.comp_len_ = input[AUTO];    hello.compression_methods_ = CompressionMethod(input[AUTO]);    return input;}// output operaotr for Client Hellooutput_buffer& operator<<(output_buffer& output, const ClientHello& hello){     // Protocol    output[AUTO] = hello.client_version_.major_;    output[AUTO] = hello.client_version_.minor_;    // Random    output.write(hello.random_, RAN_LEN);    // Session    output[AUTO] = hello.id_len_;    if (hello.id_len_) output.write(hello.session_id_, ID_LEN);    // Suites    byte tmp[2];    c16toa(hello.suite_len_, tmp);    output[AUTO] = tmp[0];    output[AUTO] = tmp[1];    output.write(hello.cipher_suites_, hello.suite_len_);      // Compression    output[AUTO] = hello.comp_len_;    output[AUTO] = hello.compression_methods_;    return output;}// Client Hello processing handlervoid ClientHello::Process(input_buffer&, SSL& ssl){    if (ssl.isTLS() && client_version_.minor_ == 0) {        ssl.useSecurity().use_connection().TurnOffTLS();        ProtocolVersion pv = ssl.getSecurity().get_connection().version_;        ssl.useSecurity().use_parms().SetSuites(pv);  // reset w/ SSL suites    }    ssl.set_random(random_, client_end);    while (id_len_) {  // trying to resume        SSL_SESSION* session = GetSessions().lookup(session_id_);        if (!session)  {            ssl.useLog().Trace("session lookup failed");            break;        }        ssl.set_session(session);        ssl.useSecurity().set_resuming(true);        ssl.matchSuite(session->GetSuite(), SUITE_LEN);        ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]);        ssl.set_masterSecret(session->GetSecret());        opaque serverRandom[RAN_LEN];        ssl.getCrypto().get_random().Fill(serverRandom, sizeof(serverRandom));        ssl.set_random(serverRandom, server_end);        if (ssl.isTLS())            ssl.deriveTLSKeys();        else            ssl.deriveKeys();        ssl.useStates().useServer() = clientKeyExchangeComplete;        return;    }    ssl.matchSuite(cipher_suites_, suite_len_);    ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]);    ssl.useStates().useServer() = clientHelloComplete;}input_buffer& ClientHello::set(input_buffer& in){    return in  >> *this;}output_buffer& ClientHello::get(output_buffer& out) const{    return out << *this;}HandShakeType ClientHello::get_type() const{    return client_hello;}const opaque* ClientHello::get_random() const{    return random_;}ClientHello::ClientHello(){    memset(random_, 0, RAN_LEN);}ClientHello::ClientHello(ProtocolVersion pv)    : client_version_(pv){    memset(random_, 0, RAN_LEN);}// output operator for ServerKeyExchangeoutput_buffer& operator<<(output_buffer& output, const ServerKeyExchange& sk){    output.write(sk.getKey(), sk.getKeyLength());    return output;}// Server Key Exchange processing handlervoid ServerKeyExchange::Process(input_buffer& input, SSL& ssl){    createKey(ssl);    if (ssl.GetError()) return;    server_key_->read(ssl, input);    ssl.useStates().useClient() = serverKeyExchangeComplete;}ServerKeyExchange::ServerKeyExchange(SSL& ssl){    createKey(ssl);}ServerKeyExchange::ServerKeyExchange()    : server_key_(0){}ServerKeyExchange::~ServerKeyExchange(){    ysDelete(server_key_);}void ServerKeyExchange::build(SSL& ssl) {     server_key_->build(ssl);     set_length(server_key_->get_length());}const opaque* ServerKeyExchange::getKey() const{    return server_key_->get_serverKey();}int ServerKeyExchange::getKeyLength() const{    return server_key_->get_length();}input_buffer& ServerKeyExchange::set(input_buffer& in){    return in;      // process does}output_buffer& ServerKeyExchange::get(output_buffer& out) const{    return out << *this;}HandShakeType ServerKeyExchange::get_type() const{    return server_key_exchange;}// CertificateRequest CertificateRequest::CertificateRequest()    : typeTotal_(0){    memset(certificate_types_, 0, sizeof(certificate_types_));}CertificateRequest::~CertificateRequest(){    mySTL::for_each(certificate_authorities_.begin(),                  certificate_authorities_.end(),                  del_ptr_zero()) ;}void CertificateRequest::Build(){    certificate_types_[0] = rsa_sign;    certificate_types_[1] = dss_sign;    typeTotal_ = 2;    uint16 authCount = 0;    uint16 authSz = 0;      for (int j = 0; j < authCount; j++) {        int sz = REQUEST_HEADER + MIN_DIS_SIZE;        DistinguishedName dn;        certificate_authorities_.push_back(dn = new (ys) byte[sz]);        opaque tmp[REQUEST_HEADER];        c16toa(MIN_DIS_SIZE, tmp);        memcpy(dn, tmp, sizeof(tmp));          // fill w/ junk for now        memcpy(dn, tmp, MIN_DIS_SIZE);        authSz += sz;    }    set_length(SIZEOF_ENUM + typeTotal_ + REQUEST_HEADER + authSz);}input_buffer& CertificateRequest::set(input_buffer& in){    return in >> *this;}output_buffer& CertificateRequest::get(output_buffer& out) const{    return out << *this;}// input operator for CertificateRequestinput_buffer& operator>>(input_buffer& input, CertificateRequest& request){    // types    request.typeTotal_ = input[AUTO];    for (int i = 0; i < request.typeTotal_; i++)

⌨️ 快捷键说明

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