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

📄 yassl_int.hpp

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 HPP
📖 第 1 页 / 共 2 页
字号:
};// SSL statsstruct Stats {    long accept_;    long connect_;    long acceptGood_;    long connectGood_;    long acceptRenegotiate_;    long connectRenegotiate_;    long hits_;    long cbHits_;    long cacheFull_;    long misses_;    long timeouts_;    long number_;    long getCacheSize_;    int verifyMode_;    int verifyDepth_;public:    Stats() : accept_(0), connect_(0), acceptGood_(0), connectGood_(0),        acceptRenegotiate_(0), connectRenegotiate_(0), hits_(0), cbHits_(0),        cacheFull_(0), misses_(0), timeouts_(0), number_(0), getCacheSize_(0),        verifyMode_(0), verifyDepth_(0)    {}private:    Stats(const Stats&);            // hide copy    Stats& operator=(const Stats&); // and assign};// the SSL contextclass SSL_CTX {public:    typedef mySTL::list<x509*> CertList;private:    SSL_METHOD* method_;    x509*       certificate_;    x509*       privateKey_;    CertList    caList_;    Ciphers     ciphers_;    DH_Parms    dhParms_;    Stats       stats_;    Mutex       mutex_;         // for Statspublic:    explicit SSL_CTX(SSL_METHOD* meth);    ~SSL_CTX();    const x509*       getCert()     const;    const x509*       getKey()      const;    const SSL_METHOD* getMethod()   const;    const Ciphers&    GetCiphers()  const;    const DH_Parms&   GetDH_Parms() const;    const Stats&      GetStats()    const;    void setVerifyPeer();    void setFailNoCert();    bool SetCipherList(const char*);    bool SetDH(const DH&);       void            IncrementStats(StatsField);    void            AddCA(x509* ca);    const CertList& GetCA_List() const;    friend int read_file(SSL_CTX*, const char*, int, CertType);private:    SSL_CTX(const SSL_CTX&);            // hide copy    SSL_CTX& operator=(const SSL_CTX&); // and assign};// holds all cryptographic typesclass Crypto {    Digest*             digest_;                // agreed upon digest    BulkCipher*         cipher_;                // agreed upon cipher    DiffieHellman*      dh_;                    // dh parms    RandomPool          random_;                // random number generator    CertManager         cert_;                  // manages certificatespublic:    explicit Crypto();    ~Crypto();    const Digest&        get_digest()      const;    const BulkCipher&    get_cipher()      const;    const DiffieHellman& get_dh()          const;    const RandomPool&    get_random()      const;    const CertManager&   get_certManager() const;              Digest&        use_digest();    BulkCipher&    use_cipher();    DiffieHellman& use_dh();    RandomPool&    use_random();    CertManager&   use_certManager();    void SetDH(DiffieHellman*);    void SetDH(const DH_Parms&);    void setDigest(Digest*);    void setCipher(BulkCipher*);    bool DhSet();private:    Crypto(const Crypto&);              // hide copy    Crypto& operator=(const Crypto&);   // and assign};// holds all handshake and verify hashesclass sslHashes {    MD5       md5HandShake_;          // md5 handshake hash    SHA       shaHandShake_;          // sha handshake hash    Finished  verify_;                // peer's verify hash    Hashes    certVerify_;            // peer's cert verify hashpublic:    sslHashes() {}    const MD5&      get_MD5()        const;    const SHA&      get_SHA()        const;    const Finished& get_verify()     const;    const Hashes&   get_certVerify() const;    MD5&      use_MD5();    SHA&      use_SHA();    Finished& use_verify();    Hashes&   use_certVerify();private:    sslHashes(const sslHashes&);             // hide copy    sslHashes& operator=(const sslHashes&); // and assign};// holds input and output buffersclass Buffers {    typedef mySTL::list<input_buffer*>  inputList;    typedef mySTL::list<output_buffer*> outputList;    inputList  dataList_;                // list of users app data / handshake    outputList handShakeList_;           // buffered handshake msgspublic:    Buffers() {}    ~Buffers();    const inputList&  getData()      const;    const outputList& getHandShake() const;    inputList&  useData();    outputList& useHandShake();private:    Buffers(const Buffers&);             // hide copy    Buffers& operator=(const Buffers&); // and assign   };// wraps security parametersclass Security {    Connection    conn_;                          // connection information    Parameters    parms_;                         // may be pending    SSL_SESSION   resumeSession_;                 // if resuming    SSL_CTX*      ctx_;                           // context used to init    bool          resuming_;                      // trying to resumepublic:    Security(ProtocolVersion, RandomPool&, ConnectionEnd, const Ciphers&,             SSL_CTX*);    const SSL_CTX*     GetContext()     const;    const Connection&  get_connection() const;    const Parameters&  get_parms()      const;    const SSL_SESSION& get_resume()     const;          bool         get_resuming()   const;    Connection&  use_connection();    Parameters&  use_parms();    SSL_SESSION& use_resume();    void set_resuming(bool b);private:    Security(const Security&);              // hide copy    Security& operator=(const Security&);   // and assign};// THE SSL typeclass SSL {    Crypto              crypto_;                // agreed crypto agents    Security            secure_;                // Connection and Session parms    States              states_;                // Record and HandShake states    sslHashes           hashes_;                // handshake, finished hashes    Socket              socket_;                // socket wrapper    Buffers             buffers_;               // buffered handshakes and data    Log                 log_;                   // loggerpublic:    SSL(SSL_CTX* ctx);    // gets and uses    const Crypto&     getCrypto()   const;    const Security&   getSecurity() const;    const States&     getStates()   const;    const sslHashes&  getHashes()   const;    const sslFactory& getFactory()  const;    const Socket&     getSocket()   const;          YasslError  GetError()    const;    Crypto&    useCrypto();    Security&  useSecurity();    States&    useStates();    sslHashes& useHashes();    Socket&    useSocket();    Log&       useLog();    // sets    void set_pending(Cipher suite);    void set_random(const opaque*, ConnectionEnd);    void set_sessionID(const opaque*);    void set_session(SSL_SESSION*);    void set_preMaster(const opaque*, uint);    void set_masterSecret(const opaque*);    void SetError(YasslError);    // helpers    bool isTLS() const;    void order_error();    void makeMasterSecret();    void makeTLSMasterSecret();    void addData(input_buffer* data);    void fillData(Data&);    void addBuffer(output_buffer* b);    void flushBuffer();    void verifyState(const RecordLayerHeader&);    void verifyState(const HandShakeHeader&);    void verifyState(ClientState);    void verifyState(ServerState);    void verfiyHandShakeComplete();    void matchSuite(const opaque*, uint length);    void deriveKeys();    void deriveTLSKeys();    void Send(const byte*, uint);    uint bufferedData();    uint get_SEQIncrement(bool);    const  byte*  get_macSecret(bool);private:    void storeKeys(const opaque*);    void setKeys();    void verifyClientState(HandShakeType);    void verifyServerState(HandShakeType);    SSL(const SSL&);                    // hide copy    const SSL& operator=(const SSL&);   // and assign};// conversion functionsvoid c32to24(uint32, uint24&);void c24to32(const uint24, uint32&);uint32 c24to32(const uint24);void ato16(const opaque*, uint16&);void ato24(const opaque*, uint24&);void c16toa(uint16, opaque*);void c24toa(const uint24, opaque*);void c32toa(uint32 u32, opaque*);} // naemspace#endif // yaSSL_INT_HPP

⌨️ 快捷键说明

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