libcryptosec
Public Types | Public Member Functions | Static Public Member Functions | List of all members

#include <SymmetricCipher.h>

Public Types

enum  OperationMode {
  NO_MODE, CBC, ECB, CFB,
  OFB
}
 
enum  Operation { ENCRYPT, DECRYPT }
 

Public Member Functions

 SymmetricCipher ()
 
 SymmetricCipher (SymmetricKey &key, SymmetricCipher::Operation operation) throw (SymmetricCipherException)
 
 SymmetricCipher (SymmetricKey &key, SymmetricCipher::OperationMode mode, SymmetricCipher::Operation operation) throw (SymmetricCipherException)
 
virtual ~SymmetricCipher ()
 
void init (SymmetricKey &key, SymmetricCipher::Operation operation) throw (SymmetricCipherException)
 
void init (SymmetricKey &key, SymmetricCipher::OperationMode mode, SymmetricCipher::Operation operation) throw (SymmetricCipherException)
 
void update (std::string &data) throw (InvalidStateException, SymmetricCipherException)
 
void update (ByteArray &data) throw (InvalidStateException, SymmetricCipherException)
 
ByteArray doFinal () throw (InvalidStateException, SymmetricCipherException)
 
ByteArray doFinal (std::string &data) throw (InvalidStateException, SymmetricCipherException)
 
ByteArray doFinal (ByteArray &data) throw (InvalidStateException, SymmetricCipherException)
 
SymmetricCipher::OperationMode getOperationMode () throw (InvalidStateException)
 
SymmetricCipher::Operation getOperation () throw (InvalidStateException)
 

Static Public Member Functions

static std::string getOperationModeName (SymmetricCipher::OperationMode mode)
 
static const EVP_CIPHER * getCipher (SymmetricKey::Algorithm algorithm, SymmetricCipher::OperationMode mode) throw (SymmetricCipherException)
 
static void loadSymmetricCiphersAlgorithms ()
 

Detailed Description

Implementa as funcionalidades de um cifrador de bloco simétrico. Essa classe implementa o padrão de projetos Builder e implementa as operações de um cifrador simétrico como cifragem e decifragem de dados.

Member Enumeration Documentation

◆ Operation

Tipos de operações possíveis no cifrador.

Enumerator
ENCRYPT 

na cifragem de dados

DECRYPT 

na decifragem de dados

◆ OperationMode

Modos de operação suportados pelo cifrador.

Enumerator
NO_MODE 

quando o cifrador possuir um único modo de operação

CBC 

para usar o modo cipher block chaining

ECB 

para usar o modo eletronic code book

CFB 

para usar o modo cipher feedback mode

OFB 

para usar o modo output feedback mode

Constructor & Destructor Documentation

◆ SymmetricCipher() [1/3]

SymmetricCipher::SymmetricCipher ( )

Construtor padrão.

◆ SymmetricCipher() [2/3]

SymmetricCipher::SymmetricCipher ( SymmetricKey key,
SymmetricCipher::Operation  operation 
)
throw (SymmetricCipherException
)

Construtor de cópia recebendo uma chave simétrica e o tipo de operação requerida. Esse construtor invoca a versão do método SymmetricCipher::init() de mesmos parâmetros.

Parameters
keya chave simétrica a ser usada na operação.
operationa operação a ser executada.
Exceptions
SymmetricCipherExceptioncaso ocorra algum erro na criação do cifrador.

◆ SymmetricCipher() [3/3]

SymmetricCipher::SymmetricCipher ( SymmetricKey key,
SymmetricCipher::OperationMode  mode,
SymmetricCipher::Operation  operation 
)
throw (SymmetricCipherException
)

Construtor de cópia recebendo uma chave simétrica, o modo de operação e o tipo de operação requerida. Esse construtor invoca a versão do método SymmetricCipher::init() de mesmos parâmetros.

Parameters
keya chave simétrica a ser usada na operação.
modeo modo de operação do algoritmo.
operationa operação a ser executada.
Exceptions
SymmetricCipherExceptioncaso ocorra algum erro na criação do cifrador.

◆ ~SymmetricCipher()

SymmetricCipher::~SymmetricCipher ( )
virtual

Destrutor padrão.

Member Function Documentation

◆ doFinal() [1/3]

ByteArray SymmetricCipher::doFinal ( )
throw (InvalidStateException,
SymmetricCipherException
)

Finaliza a operação e retorna o resultado da mesma.

Returns
o resultado da operação aplicada aos dados submetidos ao cifrador.
Exceptions
InvalidStateExceptionnão esteja no esteja no estado apropriado (State::UPDATE).
SymmetricCipherExceptioncaso ocorra algum erro na finalização do procedimento.

◆ doFinal() [2/3]

ByteArray SymmetricCipher::doFinal ( std::string &  data)
throw (InvalidStateException,
SymmetricCipherException
)

Concatena os dados passados como parâmetro, finaliza a operação e retorna o resultado da mesma.

Parameters
osdados a serem concatenados no formato de texto.
Returns
o resultado da operação aplicada aos dados submetidos ao cifrador.
Exceptions
InvalidStateExceptionnão esteja no esteja no estado apropriado (State::UPDATE).
SymmetricCipherExceptioncaso ocorra algum erro na finalização do procedimento.

◆ doFinal() [3/3]

ByteArray SymmetricCipher::doFinal ( ByteArray data)
throw (InvalidStateException,
SymmetricCipherException
)

Concatena os dados passados como parâmetro, finaliza a operação e retorna o resultado da mesma.

Parameters
osdados a serem concatenados no formato binário.
Returns
o resultado da operação aplicada aos dados submetidos ao cifrador.
Exceptions
InvalidStateExceptionnão esteja no esteja no estado apropriado (State::UPDATE).
SymmetricCipherExceptioncaso ocorra algum erro na finalização do procedimento.

◆ getCipher()

const EVP_CIPHER * SymmetricCipher::getCipher ( SymmetricKey::Algorithm  algorithm,
SymmetricCipher::OperationMode  mode 
)
throw (SymmetricCipherException
)
static

Retorna a estrutura OpenSSL que representa um cifrador.

Parameters
algorithmo algoritmo que o cifrador deverá utilizar.
modeo modo de operação do algoritmo.
Exceptions
SymmetricCipherExceptioncaso ocorra algum erro na criação da estrutura.

◆ getOperation()

SymmetricCipher::Operation SymmetricCipher::getOperation ( )
throw (InvalidStateException
)

Retorna o tipo de operação do cifrador.

Returns
o tipo de operação para que o cifrador foi inicializado.
Exceptions
InvalidStateExceptionnão esteja no esteja no estado apropriado (State::INIT).

◆ getOperationMode()

SymmetricCipher::OperationMode SymmetricCipher::getOperationMode ( )
throw (InvalidStateException
)

Retorna o modo de operação do cifrador.

Returns
o modo de operação do cifrador.
Exceptions
InvalidStateExceptionnão esteja no esteja no estado apropriado (State::INIT).

◆ getOperationModeName()

std::string SymmetricCipher::getOperationModeName ( SymmetricCipher::OperationMode  mode)
static

Retorna o nome do modo de operação passado como parâmetro.

Returns
o nome do modo de operação passado como parâmetro.

◆ init() [1/2]

void SymmetricCipher::init ( SymmetricKey key,
SymmetricCipher::Operation  operation 
)
throw (SymmetricCipherException
)

Inicializa o cifrador para uso. Necessário caso o builder tenha sido instanciado a partir de seu contrutor sem parâmetros.

Parameters
keya chave simétrica a ser usada na operação.
operationa operação a ser executada.
Exceptions
SymmetricCipherExceptioncaso ocorra algum erro na criação do cifrador.

◆ init() [2/2]

void SymmetricCipher::init ( SymmetricKey key,
SymmetricCipher::OperationMode  mode,
SymmetricCipher::Operation  operation 
)
throw (SymmetricCipherException
)

Inicializa o cifrador para uso. Necessário caso o builder tenha sido instanciado a partir de seu contrutor sem parâmetros.

Parameters
keya chave simétrica a ser usada na operação.
modeo modo de operação do algoritmo.
operationa operação a ser executada.
Exceptions
SymmetricCipherExceptioncaso ocorra algum erro na criação do cifrador.

◆ loadSymmetricCiphersAlgorithms()

void SymmetricCipher::loadSymmetricCiphersAlgorithms ( )
static

Método utilizado para carregar os algoritmos disponíveis na biblioteca OpenSSL.

◆ update() [1/2]

void SymmetricCipher::update ( std::string &  data)
throw (InvalidStateException,
SymmetricCipherException
)

Concatena dados aos previamente adicionados para serem cifrados/decifrados.

Parameters
datareferência para os dados no formato de texto.
Exceptions
InvalidStateExceptioncaso o builder não tenha sido inicializado.
SymmetricCipherExceptioncaso tenha ocorrido algum erro ao atualizar os dados.

◆ update() [2/2]

void SymmetricCipher::update ( ByteArray data)
throw (InvalidStateException,
SymmetricCipherException
)

Concatena dados aos previamente adicionados para serem cifrados/decifrados.

Parameters
datareferência para os dados no formato binário.
Exceptions
InvalidStateExceptioncaso o builder não tenha sido inicializado.
SymmetricCipherExceptioncaso tenha ocorrido algum erro ao atualizar os dados.

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