OpenDDS::Security::CredentialHash Class Reference

#include <LocalCredentialData.h>

Collaboration diagram for OpenDDS::Security::CredentialHash:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 CredentialHash (const SSL::Certificate &cid, const SSL::DiffieHellman &dh, const DDS::OctetSeq &cpdata, const DDS::OctetSeq &cperm)
int operator() (DDS::OctetSeq &dst) const

Private Attributes

const SSL::Certificatepubcert_
const SSL::DiffieHellmandh_
const DDS::OctetSeqparticipant_topic_data_
const DDS::OctetSeqpermissions_data_

Detailed Description

Definition at line 23 of file Authentication/LocalCredentialData.h.


Constructor & Destructor Documentation

OpenDDS::Security::CredentialHash::CredentialHash ( const SSL::Certificate cid,
const SSL::DiffieHellman dh,
const DDS::OctetSeq cpdata,
const DDS::OctetSeq cperm 
) [inline]

Definition at line 26 of file Authentication/LocalCredentialData.h.

00026                                                                                                                              :
00027     pubcert_(cid), dh_(dh), participant_topic_data_(cpdata), permissions_data_(cperm)
00028   {
00029 
00030   }


Member Function Documentation

int OpenDDS::Security::CredentialHash::operator() ( DDS::OctetSeq dst  )  const

Definition at line 20 of file Authentication/LocalCredentialData.cpp.

References dh_, OpenDDS::Security::SSL::Certificate::dsign_algo(), OpenDDS::Security::SSL::hash_serialized(), OpenDDS::Security::SSL::DiffieHellman::kagree_algo(), DDS::BinaryProperty_t::name, OpenDDS::Security::SSL::Certificate::original_bytes(), participant_topic_data_, permissions_data_, DDS::BinaryProperty_t::propagate, pubcert_, and DDS::BinaryProperty_t::value.

00021 {
00022   const DDS::OctetSeq& perm_data = permissions_data_;
00023   const DDS::OctetSeq& topic_data = participant_topic_data_;
00024 
00025   DDS::BinaryPropertySeq hash_data;
00026   DCPS::SequenceBackInsertIterator<DDS::BinaryPropertySeq> inserter(hash_data);
00027 
00028   DDS::BinaryProperty_t cid, cperm, cpdata, cdsign_algo, ckagree_algo;
00029 
00030   cid.name = "c.id";
00031   cid.value = pubcert_.original_bytes();
00032   cid.propagate = true;
00033 
00034   cperm.name = "c.perm";
00035   cperm.value = perm_data;
00036   cperm.propagate = true;
00037 
00038   cpdata.name = "c.pdata";
00039   cpdata.value = topic_data;
00040   cpdata.propagate = true;
00041 
00042   cdsign_algo.name = "c.dsign_algo";
00043   const char* cdsign_algo_str = pubcert_.dsign_algo();
00044   cdsign_algo.value.length(std::strlen(cdsign_algo_str) + 1);
00045   std::memcpy(cdsign_algo.value.get_buffer(), cdsign_algo_str, cdsign_algo.value.length());
00046   cdsign_algo.propagate = true;
00047 
00048   ckagree_algo.name = "c.kagree_algo";
00049   const char* ckagree_algo_str = dh_.kagree_algo();
00050   ckagree_algo.value.length(std::strlen(ckagree_algo_str) + 1);
00051   std::memcpy(ckagree_algo.value.get_buffer(), ckagree_algo_str, ckagree_algo.value.length());
00052   ckagree_algo.propagate = true;
00053 
00054   *inserter = cid;
00055   *inserter = cperm;
00056   *inserter = cpdata;
00057   *inserter = cdsign_algo;
00058   *inserter = ckagree_algo;
00059 
00060   return SSL::hash_serialized(hash_data, dst);
00061 }

Here is the call graph for this function:


Member Data Documentation

Definition at line 36 of file Authentication/LocalCredentialData.h.

Referenced by operator()().

Definition at line 37 of file Authentication/LocalCredentialData.h.

Referenced by operator()().

Definition at line 38 of file Authentication/LocalCredentialData.h.

Referenced by operator()().

Definition at line 35 of file Authentication/LocalCredentialData.h.

Referenced by operator()().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1