GSmtp::SaslServerImp Class Reference

A private pimple-pattern implementation class used by GSmtp::SaslServer. More...

List of all members.

Public Member Functions

 SaslServerImp (const SaslServer::Secrets &, bool, bool)
bool init (const std::string &mechanism)
bool validate (const std::string &secret, const std::string &response) const
bool trusted (GNet::Address) const
bool trustedCore (const std::string &, const std::string &) const
std::string mechanisms (const std::string &) const

Static Public Member Functions

static std::string digest (const std::string &secret, const std::string &challenge)
static std::string cramDigest (const std::string &secret, const std::string &challenge)
static std::string clientResponse (const std::string &secret, const std::string &challenge, bool cram, bool &error)

Public Attributes

bool m_first
const SaslServer::Secretsm_secrets
std::string m_mechanisms
std::string m_mechanism
std::string m_challenge
bool m_authenticated
std::string m_id
std::string m_trustee
bool m_advertise_login
bool m_advertise_plain
bool m_advertise_cram_md5
bool m_advertise_force_one


Detailed Description

A private pimple-pattern implementation class used by GSmtp::SaslServer.

Definition at line 44 of file gsasl_native.cpp.


Constructor & Destructor Documentation

GSmtp::SaslServerImp::SaslServerImp ( const SaslServer::Secrets secrets,
bool  ,
bool  force_one 
)


Member Function Documentation

bool GSmtp::SaslServerImp::init ( const std::string &  mechanism  ) 

bool GSmtp::SaslServerImp::validate ( const std::string &  secret,
const std::string &  response 
) const

Definition at line 141 of file gsasl_native.cpp.

References cramDigest(), digest(), G_ASSERT, G_DEBUG, m_challenge, and m_mechanism.

Referenced by GSmtp::SaslServer::apply().

std::string GSmtp::SaslServerImp::digest ( const std::string &  secret,
const std::string &  challenge 
) [static]

Definition at line 181 of file gsasl_native.cpp.

References G::Md5::digest(), and G::Md5::printable().

Referenced by clientResponse(), and validate().

std::string GSmtp::SaslServerImp::cramDigest ( const std::string &  secret,
const std::string &  challenge 
) [static]

Definition at line 176 of file gsasl_native.cpp.

References G::Md5::hmac(), and G::Md5::printable().

Referenced by clientResponse(), and validate().

bool GSmtp::SaslServerImp::trusted ( GNet::Address  address  )  const

bool GSmtp::SaslServerImp::trustedCore ( const std::string &  full,
const std::string &  key 
) const

Definition at line 198 of file gsasl_native.cpp.

References G_DEBUG, G_LOG, m_secrets, m_trustee, GSmtp::SaslServer::Secrets::secret(), and trusted().

Referenced by trusted().

std::string GSmtp::SaslServerImp::clientResponse ( const std::string &  secret,
const std::string &  challenge,
bool  cram,
bool &  error 
) [static]

Definition at line 159 of file gsasl_native.cpp.

References cramDigest(), digest(), and G_DEBUG.

Referenced by GSmtp::SaslClient::response().

std::string GSmtp::SaslServerImp::mechanisms ( const std::string &  sep  )  const


Member Data Documentation

Definition at line 47 of file gsasl_native.cpp.

Referenced by GSmtp::SaslServer::apply(), and init().

Definition at line 49 of file gsasl_native.cpp.

Definition at line 51 of file gsasl_native.cpp.

Referenced by init(), GSmtp::SaslServer::initialChallenge(), and validate().

Definition at line 53 of file gsasl_native.cpp.

Referenced by GSmtp::SaslServer::apply(), GSmtp::SaslServer::id(), and init().

Definition at line 54 of file gsasl_native.cpp.

Referenced by GSmtp::SaslServer::id(), init(), and trustedCore().

Definition at line 55 of file gsasl_native.cpp.

Referenced by mechanisms(), and SaslServerImp().

Definition at line 56 of file gsasl_native.cpp.

Referenced by mechanisms(), and SaslServerImp().

Definition at line 57 of file gsasl_native.cpp.

Referenced by mechanisms(), and SaslServerImp().

Definition at line 58 of file gsasl_native.cpp.


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

Generated on Fri Apr 18 15:56:14 2008 for E-MailRelay by  doxygen 1.5.5