OpenDDS  Snapshot(2023/04/28-20:55)
Public Member Functions | List of all members
OpenDDS::Security::UtilityImpl Class Reference

#include <UtilityImpl.h>

Inheritance diagram for OpenDDS::Security::UtilityImpl:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::Security::UtilityImpl:
Collaboration graph
[legend]

Public Member Functions

virtual ~UtilityImpl ()
 
virtual void generate_random_bytes (void *ptr, size_t size)
 
virtual void hmac (void *out, void const *in, size_t size, const std::string &password) const
 
- Public Member Functions inherited from OpenDDS::Security::Utility
virtual ~Utility ()
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Additional Inherited Members

- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 

Detailed Description

Definition at line 23 of file UtilityImpl.h.

Constructor & Destructor Documentation

◆ ~UtilityImpl()

OpenDDS::Security::UtilityImpl::~UtilityImpl ( )
virtual

Definition at line 12 of file UtilityImpl.cpp.

12 {}

Member Function Documentation

◆ generate_random_bytes()

void OpenDDS::Security::UtilityImpl::generate_random_bytes ( void *  ptr,
size_t  size 
)
virtual

Implements OpenDDS::Security::Utility.

Definition at line 14 of file UtilityImpl.cpp.

References ACE_ERROR, ACE_TEXT(), and LM_ERROR.

15 {
16  int rc = RAND_bytes(static_cast<unsigned char*>(ptr),
17  static_cast<int>(size));
18 
19  if (rc != 1) {
20  unsigned long err = ERR_get_error();
21  char msg[256] = { 0 };
22  ERR_error_string_n(err, msg, sizeof(msg));
23  ACE_ERROR((LM_ERROR,
24  ACE_TEXT("(%P|%t) UtilityImpl::generate_random_bytes: ERROR '%C' returned by RAND_bytes(...)\n"),
25  msg));
26  }
27 }
#define ACE_ERROR(X)
ACE_TEXT("TCP_Factory")

◆ hmac()

void OpenDDS::Security::UtilityImpl::hmac ( void *  out,
void const *  in,
size_t  size,
const std::string &  password 
) const
virtual

Implements OpenDDS::Security::Utility.

Definition at line 29 of file UtilityImpl.cpp.

References memcpy(), and OPENDDS_END_VERSIONED_NAMESPACE_DECL.

30 {
31  unsigned char* digest = HMAC(EVP_sha1(), password.c_str(),
32  static_cast<int>(password.size()),
33  static_cast<const unsigned char*>(in),
34  static_cast<int>(size), NULL, NULL);
35  memcpy(out, digest, 20);
36 }
void * memcpy(void *t, const void *s, size_t len)

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