Botan  1.11.15
Public Member Functions
Botan::PK_Key_Agreement Class Reference

#include <pubkey.h>

List of all members.

Public Member Functions

SymmetricKey derive_key (size_t key_len, const byte in[], size_t in_len, const byte params[], size_t params_len) const
SymmetricKey derive_key (size_t key_len, const std::vector< byte > &in, const byte params[], size_t params_len) const
SymmetricKey derive_key (size_t key_len, const byte in[], size_t in_len, const std::string &params="") const
SymmetricKey derive_key (size_t key_len, const std::vector< byte > &in, const std::string &params="") const
 PK_Key_Agreement (const Private_Key &key, const std::string &kdf)

Detailed Description

Key used for key agreement

Definition at line 313 of file pubkey.h.


Constructor & Destructor Documentation

Botan::PK_Key_Agreement::PK_Key_Agreement ( const Private_Key key,
const std::string &  kdf 
)

Construct a PK Key Agreement.

Parameters:
keythe key to use
kdfname of the KDF to use (or 'Raw' for no KDF)

Definition at line 327 of file pubkey.cpp.

References Botan::Public_Key::algo_name(), and Botan::get_kdf().

   {
   m_op.reset(get_pk_op<PK_Ops::Key_Agreement>(key, kdf_name));

   if(!m_op)
      throw Lookup_Error("Key agreement with " + key.algo_name() + " not supported");

   m_kdf.reset(get_kdf(kdf_name));
   }

Member Function Documentation

SymmetricKey Botan::PK_Key_Agreement::derive_key ( size_t  key_len,
const byte  in[],
size_t  in_len,
const byte  params[],
size_t  params_len 
) const

Definition at line 338 of file pubkey.cpp.

Referenced by botan_pk_op_key_agreement(), and Botan::TLS::Client_Key_Exchange::Client_Key_Exchange().

   {
   secure_vector<byte> z = m_op->agree(in, in_len);

   if(!m_kdf)
      return z;

   return m_kdf->derive_key(key_len, z, params, params_len);
   }
SymmetricKey Botan::PK_Key_Agreement::derive_key ( size_t  key_len,
const std::vector< byte > &  in,
const byte  params[],
size_t  params_len 
) const [inline]

Definition at line 339 of file pubkey.h.

         {
         return derive_key(key_len, &in[0], in.size(),
                           params, params_len);
         }
SymmetricKey Botan::PK_Key_Agreement::derive_key ( size_t  key_len,
const byte  in[],
size_t  in_len,
const std::string &  params = "" 
) const [inline]

Definition at line 355 of file pubkey.h.

         {
         return derive_key(key_len, in, in_len,
                           reinterpret_cast<const byte*>(params.data()),
                           params.length());
         }
SymmetricKey Botan::PK_Key_Agreement::derive_key ( size_t  key_len,
const std::vector< byte > &  in,
const std::string &  params = "" 
) const [inline]

Definition at line 370 of file pubkey.h.

         {
         return derive_key(key_len, &in[0], in.size(),
                           reinterpret_cast<const byte*>(params.data()),
                           params.length());
         }

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