diff options
Diffstat (limited to 'src/components/security_manager/include')
-rw-r--r-- | src/components/security_manager/include/security_manager/crypto_manager_impl.h | 30 | ||||
-rw-r--r-- | src/components/security_manager/include/security_manager/security_manager_impl.h | 2 |
2 files changed, 20 insertions, 12 deletions
diff --git a/src/components/security_manager/include/security_manager/crypto_manager_impl.h b/src/components/security_manager/include/security_manager/crypto_manager_impl.h index 6641050d40..881aefbe81 100644 --- a/src/components/security_manager/include/security_manager/crypto_manager_impl.h +++ b/src/components/security_manager/include/security_manager/crypto_manager_impl.h @@ -56,20 +56,26 @@ class CryptoManagerImpl : public CryptoManager { virtual HandshakeResult DoHandshakeStep(const uint8_t *const in_data, size_t in_data_size, const uint8_t** const out_data, - size_t *out_data_size); - virtual bool Encrypt(const uint8_t *const in_data, size_t in_data_size, - const uint8_t ** const out_data, size_t *out_data_size); - virtual bool Decrypt(const uint8_t *const in_data, size_t in_data_size, - const uint8_t ** const out_data, size_t *out_data_size); - virtual bool IsInitCompleted() const; - virtual bool IsHandshakePending() const; - virtual size_t get_max_block_size(size_t mtu) const; - virtual std::string LastError() const; - virtual ~SSLContextImpl(); - + size_t *out_data_size) OVERRIDE; + bool Encrypt(const uint8_t *const in_data, size_t in_data_size, + const uint8_t ** const out_data, size_t *out_data_size) OVERRIDE; + bool Decrypt(const uint8_t *const in_data, size_t in_data_size, + const uint8_t ** const out_data, size_t *out_data_size) OVERRIDE; + bool IsInitCompleted() const OVERRIDE; + bool IsHandshakePending() const OVERRIDE; + size_t get_max_block_size(size_t mtu) const OVERRIDE; + std::string LastError() const OVERRIDE; + void ResetConnection() OVERRIDE; + void SetHandshakeContext(const HandshakeContext& hsh_ctx) OVERRIDE; + ~SSLContextImpl(); private: typedef size_t(*BlockSizeGetter)(size_t); void EnsureBufferSizeEnough(size_t size); + void SetHandshakeError(const int error); + HandshakeResult openssl_error_convert_to_internal(const long error); + + std::string GetTextBy(X509_NAME* name, int object) const; + SSL *connection_; BIO *bioIn_; BIO *bioOut_; @@ -79,9 +85,11 @@ class CryptoManagerImpl : public CryptoManager { uint8_t *buffer_; bool is_handshake_pending_; Mode mode_; + mutable std::string last_error_; BlockSizeGetter max_block_size_; static std::map<std::string, BlockSizeGetter> max_block_sizes; static std::map<std::string, BlockSizeGetter> create_max_block_sizes(); + HandshakeContext hsh_context_; DISALLOW_COPY_AND_ASSIGN(SSLContextImpl); }; diff --git a/src/components/security_manager/include/security_manager/security_manager_impl.h b/src/components/security_manager/include/security_manager/security_manager_impl.h index 2aa03087eb..37efcf5a5f 100644 --- a/src/components/security_manager/include/security_manager/security_manager_impl.h +++ b/src/components/security_manager/include/security_manager/security_manager_impl.h @@ -148,7 +148,7 @@ class SecurityManagerImpl * \param success result of connection protection */ void NotifyListenersOnHandshakeDone(const uint32_t &connection_key, - const bool success); + SSLContext::HandshakeResult error); /** * @brief SecurityConfigSection * @return Session name in config file |