OpenDDS  Snapshot(2023/04/07-19:43)
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
OpenDDS::Security::SSL::DHAlgorithm Class Referenceabstract

#include <DiffieHellman.h>

Inheritance diagram for OpenDDS::Security::SSL::DHAlgorithm:
Inheritance graph
[legend]

Public Types

typedef DCPS::unique_ptr< DHAlgorithmunique_ptr
 

Public Member Functions

 DHAlgorithm ()
 
virtual ~DHAlgorithm ()
 
virtual int init ()=0
 
virtual int pub_key (DDS::OctetSeq &dst)=0
 
virtual int gen_shared_secret (const DDS::OctetSeq &pub_key)
 
virtual const DDS::OctetSeqget_shared_secret () const
 
virtual bool cmp_shared_secret (const DHAlgorithm &other) const
 
virtual const char * kagree_algo () const =0
 

Protected Member Functions

virtual int compute_shared_secret (const DDS::OctetSeq &pub_key)=0
 
int hash_shared_secret ()
 

Protected Attributes

EVP_PKEYk_
 
DDS::OctetSeq shared_secret_
 

Detailed Description

Definition at line 25 of file DiffieHellman.h.

Member Typedef Documentation

◆ unique_ptr

Definition at line 27 of file DiffieHellman.h.

Constructor & Destructor Documentation

◆ DHAlgorithm()

OpenDDS::Security::SSL::DHAlgorithm::DHAlgorithm ( )
inline

Definition at line 29 of file DiffieHellman.h.

References init().

◆ ~DHAlgorithm()

OpenDDS::Security::SSL::DHAlgorithm::~DHAlgorithm ( )
virtual

Definition at line 55 of file DiffieHellman.cpp.

55 { EVP_PKEY_free(k_); }

Member Function Documentation

◆ cmp_shared_secret()

bool OpenDDS::Security::SSL::DHAlgorithm::cmp_shared_secret ( const DHAlgorithm other) const
virtual

Definition at line 57 of file DiffieHellman.cpp.

References get_shared_secret().

58 {
59  if (shared_secret_.length() != other.get_shared_secret().length()) {
60  return false;
61  }
62 
63  return (0 == std::memcmp(shared_secret_.get_buffer(),
64  other.get_shared_secret().get_buffer(),
65  shared_secret_.length()));
66 }

◆ compute_shared_secret()

virtual int OpenDDS::Security::SSL::DHAlgorithm::compute_shared_secret ( const DDS::OctetSeq pub_key)
protectedpure virtual

◆ gen_shared_secret()

virtual int OpenDDS::Security::SSL::DHAlgorithm::gen_shared_secret ( const DDS::OctetSeq pub_key)
inlinevirtual

Definition at line 36 of file DiffieHellman.h.

37  {
39  }
virtual int compute_shared_secret(const DDS::OctetSeq &pub_key)=0
virtual int pub_key(DDS::OctetSeq &dst)=0

◆ get_shared_secret()

virtual const DDS::OctetSeq& OpenDDS::Security::SSL::DHAlgorithm::get_shared_secret ( ) const
inlinevirtual

Definition at line 41 of file DiffieHellman.h.

Referenced by cmp_shared_secret().

42  {
43  return shared_secret_;
44  }

◆ hash_shared_secret()

int OpenDDS::Security::SSL::DHAlgorithm::hash_shared_secret ( )
protected

Definition at line 68 of file DiffieHellman.cpp.

References OpenDDS::Security::SSL::hash().

69 {
71  std::vector<const DDS::OctetSeq*> hash_data;
72  hash_data.push_back(&tmp);
73  return SSL::hash(hash_data, shared_secret_);
74 }
sequence< octet > OctetSeq
Definition: DdsDcpsCore.idl:64
int hash(const std::vector< const DDS::OctetSeq *> &src, DDS::OctetSeq &dst)

◆ init()

virtual int OpenDDS::Security::SSL::DHAlgorithm::init ( )
pure virtual

◆ kagree_algo()

virtual const char* OpenDDS::Security::SSL::DHAlgorithm::kagree_algo ( ) const
pure virtual

◆ pub_key()

virtual int OpenDDS::Security::SSL::DHAlgorithm::pub_key ( DDS::OctetSeq dst)
pure virtual

Member Data Documentation

◆ k_

EVP_PKEY* OpenDDS::Security::SSL::DHAlgorithm::k_
protected

Definition at line 53 of file DiffieHellman.h.

◆ shared_secret_

DDS::OctetSeq OpenDDS::Security::SSL::DHAlgorithm::shared_secret_
protected

Definition at line 54 of file DiffieHellman.h.


The documentation for this class was generated from the following files: