#include <crtd_message.h>

Inheritance diagram for Ssl::CrtdMessage:
Collaboration diagram for Ssl::CrtdMessage:

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

 CrtdMessage (MessageKind kind)
 
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_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 and parsing messages destined to, or comming from an ssl_crtd server. Format of these mesages is: response/request-code SP body length SP body

Definition at line 24 of file crtd_message.h.

Member Typedef Documentation

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

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.

Enumerator
BEFORE_CODE 
CODE 
BEFORE_LENGTH 
LENGTH 
BEFORE_BODY 
BODY 
END 

Definition at line 90 of file crtd_message.h.

Constructor & Destructor Documentation

Ssl::CrtdMessage::CrtdMessage ( MessageKind  kind)

Definition at line 17 of file crtd_message.cc.

Member Function Documentation

void Ssl::CrtdMessage::clear ( )

Definition at line 134 of file crtd_message.cc.

References code.

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

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 
)

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.

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

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 
)

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

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)

Definition at line 122 of file crtd_message.cc.

Referenced by processNewRequest().

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

Member Data Documentation

std::string Ssl::CrtdMessage::body
protected

Definition at line 101 of file crtd_message.h.

Referenced by Ssl::CertValidationMsg::composeRequest().

size_t Ssl::CrtdMessage::body_size
protected

Definition at line 99 of file crtd_message.h.

std::string Ssl::CrtdMessage::code
protected

Definition at line 102 of file crtd_message.h.

const std::string Ssl::CrtdMessage::code_new_certificate
static

Definition at line 76 of file crtd_message.h.

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

std::string Ssl::CrtdMessage::current_block
protected

Definition at line 103 of file crtd_message.h.

const std::string Ssl::CrtdMessage::param_host
static
const std::string Ssl::CrtdMessage::param_SetCommonName
static

Definition at line 84 of file crtd_message.h.

Referenced by composeRequest(), and parseRequest().

const std::string Ssl::CrtdMessage::param_SetValidAfter
static

Definition at line 80 of file crtd_message.h.

Referenced by composeRequest(), and parseRequest().

const std::string Ssl::CrtdMessage::param_SetValidBefore
static

Definition at line 82 of file crtd_message.h.

Referenced by composeRequest(), and parseRequest().

const std::string Ssl::CrtdMessage::param_Sign
static

Definition at line 86 of file crtd_message.h.

Referenced by composeRequest(), and parseRequest().

const std::string Ssl::CrtdMessage::param_SignHash
static

Definition at line 88 of file crtd_message.h.

Referenced by composeRequest(), and parseRequest().

ParseState Ssl::CrtdMessage::state
protected

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