#include <cert_validate_message.h>

Inheritance diagram for Ssl::CertValidationMsg:
Collaboration diagram for Ssl::CertValidationMsg:

Classes

class  CertItem
 

Public Types

enum  ParseResult {
  OK,
  INCOMPLETE,
  ERROR
}
 Parse result codes. More...
 
enum  MessageKind {
  REPLY,
  REQUEST
}
 
typedef std::map< std::string,
std::string > 
BodyParams
 

Public Member Functions

 CertValidationMsg (MessageKind kind)
 
void composeRequest (CertValidationRequest const &vcert)
 
bool parseResponse (CertValidationResponse &resp, std::string &error)
 Parse a response message and fill the resp object with parsed informations. More...
 
X509 * getCertByName (std::vector< CertItem > const &, std::string const &name)
 Search a CertItems list for the certificate with ID "name". More...
 
ParseResult parse (const char *buffer, size_t len)
 
std::string const & getBody () const
 Current body. If parsing is not finished the method returns incompleted body. More...
 
std::string const & getCode () const
 Current response/request code. If parsing is not finished the method may return incompleted code. More...
 
void setBody (std::string const &aBody)
 Set new body to encode. More...
 
void setCode (std::string const &aCode)
 Set new request/reply code to compose. More...
 
std::string compose () const
 
void clear ()
 Reset the class. More...
 
void parseBody (BodyParams &map, std::string &other_part) const
 
void composeBody (BodyParams const &map, std::string const &other_part)
 
bool parseRequest (Ssl::CertificateProperties &, std::string &error)
 orchestrates entire request parsing More...
 
void composeRequest (Ssl::CertificateProperties const &)
 

Static Public Attributes

static const std::string code_cert_validate
 String code for "cert_validate" messages. More...
 
static const std::string param_domain
 Parameter name for passing intended domain name. More...
 
static const std::string param_cert
 Parameter name for passing SSL certificates. More...
 
static const std::string param_error_name
 Parameter name for passing the major SSL error. More...
 
static const std::string param_error_reason
 Parameter name for passing the error reason. More...
 
static const std::string param_error_cert
 Parameter name for passing the error cert ID. More...
 
static const std::string param_error_depth
 Parameter name for passing the error depth. More...
 
static const std::string param_proto_version
 Parameter name for SSL version. More...
 
static const std::string param_cipher
 Parameter name for SSL cipher. More...
 
static const std::string code_new_certificate
 String code for "new_certificate" messages. More...
 
static const std::string param_host
 Parameter name for passing hostname. More...
 
static const std::string param_SetValidAfter
 Parameter name for passing SetValidAfter cert adaptation variable. More...
 
static const std::string param_SetValidBefore
 Parameter name for passing SetValidBefore cert adaptation variable. More...
 
static const std::string param_SetCommonName
 Parameter name for passing SetCommonName cert adaptation variable. More...
 
static const std::string param_Sign
 Parameter name for passing signing algorithm. More...
 
static const std::string param_SignHash
 The signing hash to use. More...
 

Protected Types

enum  ParseState {
  BEFORE_CODE,
  CODE,
  BEFORE_LENGTH,
  LENGTH,
  BEFORE_BODY,
  BODY,
  END
}
 

Protected Attributes

size_t body_size
 The body size if exist or 0. More...
 
ParseState state
 Parsing state. More...
 
std::string body
 Current body. More...
 
std::string code
 Current response/request code. More...
 
std::string current_block
 Current block buffer. More...
 

Detailed Description

This class is responsible for composing or parsing messages destined to or comming from a cert validator helper. The messages format is: response/request-code SP body-length SP [key=value ...]

Definition at line 77 of file cert_validate_message.h.

Member Typedef Documentation

typedef std::map<std::string, std::string> Ssl::CrtdMessage::BodyParams
inherited

Definition at line 27 of file crtd_message.h.

Member Enumeration Documentation

Enumerator
REPLY 
REQUEST 

Definition at line 34 of file crtd_message.h.

Enumerator
OK 
INCOMPLETE 
ERROR 

Definition at line 29 of file crtd_message.h.

enum Ssl::CrtdMessage::ParseState
protectedinherited
Enumerator
BEFORE_CODE 
CODE 
BEFORE_LENGTH 
LENGTH 
BEFORE_BODY 
BODY 
END 

Definition at line 90 of file crtd_message.h.

Constructor & Destructor Documentation

Ssl::CertValidationMsg::CertValidationMsg ( MessageKind  kind)
inline

Definition at line 96 of file cert_validate_message.h.

Member Function Documentation

void Ssl::CrtdMessage::clear ( )
inherited

Definition at line 134 of file crtd_message.cc.

References code.

std::string Ssl::CrtdMessage::compose ( ) const
inherited

Compose current (request) code and body to string.

Definition at line 126 of file crtd_message.cc.

References code.

Referenced by ConnStateData::getSslContextStart(), processNewRequest(), Ssl::Helper::sslSubmit(), and Ssl::CertValidationHelper::sslSubmit().

void Ssl::CrtdMessage::composeBody ( CrtdMessage::BodyParams const &  map,
std::string const &  other_part 
)
inherited

Compose parameters given by map with their values and the other part given by other_part to body data. The constructed body will have the form:

   param1=value1
   param2=value2
   The other multistring part of body.  

Definition at line 166 of file crtd_message.cc.

References i.

void Ssl::CertValidationMsg::composeRequest ( CertValidationRequest const &  vcert)
std::string const & Ssl::CrtdMessage::getBody ( ) const
inherited
X509 * Ssl::CertValidationMsg::getCertByName ( std::vector< CertItem > const &  certs,
std::string const &  name 
)

Definition at line 190 of file cert_validate_message.cc.

References NULL.

std::string const & Ssl::CrtdMessage::getCode ( ) const
inherited

Definition at line 120 of file crtd_message.cc.

References code.

Referenced by main().

Ssl::CrtdMessage::ParseResult Ssl::CrtdMessage::parse ( const char *  buffer,
size_t  len 
)
inherited

Parse buffer of length len

Return values
OKif parsing completes
INCOMPLETEif more data required
ERRORif there is an error.

Definition at line 21 of file crtd_message.cc.

References code, Comm::OK, xisalnum, xisalpha, xisdigit, and xisspace.

Referenced by main(), ConnStateData::sslCrtdHandleReply(), and sslCrtvdHandleReplyWrapper().

void Ssl::CrtdMessage::parseBody ( CrtdMessage::BodyParams map,
std::string &  other_part 
) const
inherited

Parse body data which has the form:

   param1=value1
   param2=value2
   The other multistring part of body.  

The parameters of the body stored to map and the remaining part to other_part

Definition at line 143 of file crtd_message.cc.

References NULL.

void Ssl::CrtdMessage::setBody ( std::string const &  aBody)
inherited

Definition at line 122 of file crtd_message.cc.

Referenced by processNewRequest().

void Ssl::CrtdMessage::setCode ( std::string const &  aCode)
inherited

Member Data Documentation

std::string Ssl::CrtdMessage::body
protectedinherited

Definition at line 101 of file crtd_message.h.

Referenced by composeRequest().

size_t Ssl::CrtdMessage::body_size
protectedinherited

Definition at line 99 of file crtd_message.h.

std::string Ssl::CrtdMessage::code
protectedinherited

Definition at line 102 of file crtd_message.h.

const std::string Ssl::CertValidationMsg::code_cert_validate
static

Definition at line 109 of file cert_validate_message.h.

Referenced by Ssl::CertValidationHelper::sslSubmit().

const std::string Ssl::CrtdMessage::code_new_certificate
staticinherited

Definition at line 76 of file crtd_message.h.

Referenced by ConnStateData::getSslContextStart(), main(), and usage().

std::string Ssl::CrtdMessage::current_block
protectedinherited

Definition at line 103 of file crtd_message.h.

const std::string Ssl::CertValidationMsg::param_cert
static

Definition at line 113 of file cert_validate_message.h.

Referenced by composeRequest().

const std::string Ssl::CertValidationMsg::param_cipher
static

Definition at line 125 of file cert_validate_message.h.

Referenced by composeRequest().

const std::string Ssl::CertValidationMsg::param_domain
static

Definition at line 111 of file cert_validate_message.h.

const std::string Ssl::CertValidationMsg::param_error_cert
static

Definition at line 119 of file cert_validate_message.h.

Referenced by composeRequest().

const std::string Ssl::CertValidationMsg::param_error_depth
static

Definition at line 121 of file cert_validate_message.h.

const std::string Ssl::CertValidationMsg::param_error_name
static

Definition at line 115 of file cert_validate_message.h.

Referenced by composeRequest().

const std::string Ssl::CertValidationMsg::param_error_reason
static

Definition at line 117 of file cert_validate_message.h.

const std::string Ssl::CrtdMessage::param_host
staticinherited
const std::string Ssl::CertValidationMsg::param_proto_version
static

Definition at line 123 of file cert_validate_message.h.

Referenced by composeRequest().

const std::string Ssl::CrtdMessage::param_SetCommonName
staticinherited
const std::string Ssl::CrtdMessage::param_SetValidAfter
staticinherited
const std::string Ssl::CrtdMessage::param_SetValidBefore
staticinherited
const std::string Ssl::CrtdMessage::param_Sign
staticinherited
const std::string Ssl::CrtdMessage::param_SignHash
staticinherited
ParseState Ssl::CrtdMessage::state
protectedinherited

Definition at line 100 of file crtd_message.h.


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

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors