summaryrefslogtreecommitdiff
path: root/src/components/security_manager/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/security_manager/include')
-rw-r--r--src/components/security_manager/include/security_manager/crypto_manager_impl.h30
-rw-r--r--src/components/security_manager/include/security_manager/security_manager_impl.h2
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