libcryptosec
|
#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 () |
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.
SymmetricCipher::SymmetricCipher | ( | ) |
Construtor padrão.
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.
key | a chave simétrica a ser usada na operação. |
operation | a operação a ser executada. |
SymmetricCipherException | caso ocorra algum erro na criação do cifrador. |
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.
key | a chave simétrica a ser usada na operação. |
mode | o modo de operação do algoritmo. |
operation | a operação a ser executada. |
SymmetricCipherException | caso ocorra algum erro na criação do cifrador. |
|
virtual |
Destrutor padrão.
ByteArray SymmetricCipher::doFinal | ( | ) | ||
throw | ( | InvalidStateException, | ||
SymmetricCipherException | ||||
) |
Finaliza a operação e retorna o resultado da mesma.
InvalidStateException | não esteja no esteja no estado apropriado (State::UPDATE). |
SymmetricCipherException | caso ocorra algum erro na finalização do procedimento. |
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.
os | dados a serem concatenados no formato de texto. |
InvalidStateException | não esteja no esteja no estado apropriado (State::UPDATE). |
SymmetricCipherException | caso ocorra algum erro na finalização do procedimento. |
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.
os | dados a serem concatenados no formato binário. |
InvalidStateException | não esteja no esteja no estado apropriado (State::UPDATE). |
SymmetricCipherException | caso ocorra algum erro na finalização do procedimento. |
|
static |
Retorna a estrutura OpenSSL que representa um cifrador.
algorithm | o algoritmo que o cifrador deverá utilizar. |
mode | o modo de operação do algoritmo. |
SymmetricCipherException | caso ocorra algum erro na criação da estrutura. |
SymmetricCipher::Operation SymmetricCipher::getOperation | ( | ) | ||
throw | ( | InvalidStateException | ||
) |
Retorna o tipo de operação do cifrador.
InvalidStateException | não esteja no esteja no estado apropriado (State::INIT). |
SymmetricCipher::OperationMode SymmetricCipher::getOperationMode | ( | ) | ||
throw | ( | InvalidStateException | ||
) |
Retorna o modo de operação do cifrador.
InvalidStateException | não esteja no esteja no estado apropriado (State::INIT). |
|
static |
Retorna o nome do modo de operação passado como parâmetro.
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.
key | a chave simétrica a ser usada na operação. |
operation | a operação a ser executada. |
SymmetricCipherException | caso ocorra algum erro na criação do cifrador. |
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.
key | a chave simétrica a ser usada na operação. |
mode | o modo de operação do algoritmo. |
operation | a operação a ser executada. |
SymmetricCipherException | caso ocorra algum erro na criação do cifrador. |
|
static |
Método utilizado para carregar os algoritmos disponíveis na biblioteca OpenSSL.
void SymmetricCipher::update | ( | std::string & | data | ) | |
throw | ( | InvalidStateException, | |||
SymmetricCipherException | |||||
) |
Concatena dados aos previamente adicionados para serem cifrados/decifrados.
data | referência para os dados no formato de texto. |
InvalidStateException | caso o builder não tenha sido inicializado. |
SymmetricCipherException | caso tenha ocorrido algum erro ao atualizar os dados. |
void SymmetricCipher::update | ( | ByteArray & | data | ) | |
throw | ( | InvalidStateException, | |||
SymmetricCipherException | |||||
) |
Concatena dados aos previamente adicionados para serem cifrados/decifrados.
data | referência para os dados no formato binário. |
InvalidStateException | caso o builder não tenha sido inicializado. |
SymmetricCipherException | caso tenha ocorrido algum erro ao atualizar os dados. |