#include <LocalCredentialData.h>
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::Certificate & | pubcert_ |
const SSL::DiffieHellman & | dh_ |
const DDS::OctetSeq & | participant_topic_data_ |
const DDS::OctetSeq & | permissions_data_ |
Definition at line 23 of file Authentication/LocalCredentialData.h.
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 }
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 }
const SSL::DiffieHellman& OpenDDS::Security::CredentialHash::dh_ [private] |
Definition at line 36 of file Authentication/LocalCredentialData.h.
Referenced by operator()().
const DDS::OctetSeq& OpenDDS::Security::CredentialHash::participant_topic_data_ [private] |
Definition at line 37 of file Authentication/LocalCredentialData.h.
Referenced by operator()().
const DDS::OctetSeq& OpenDDS::Security::CredentialHash::permissions_data_ [private] |
Definition at line 38 of file Authentication/LocalCredentialData.h.
Referenced by operator()().
const SSL::Certificate& OpenDDS::Security::CredentialHash::pubcert_ [private] |
Definition at line 35 of file Authentication/LocalCredentialData.h.
Referenced by operator()().