libcryptosec
Public Member Functions | List of all members
Pkcs7EnvelopedDataBuilder Class Reference

#include <Pkcs7EnvelopedDataBuilder.h>

Inheritance diagram for Pkcs7EnvelopedDataBuilder:
Pkcs7Builder

Public Member Functions

 Pkcs7EnvelopedDataBuilder (Certificate &cert, SymmetricKey::Algorithm symAlgorithm, SymmetricCipher::OperationMode symOperationMode) throw (Pkcs7Exception, SymmetricCipherException)
 
virtual ~Pkcs7EnvelopedDataBuilder ()
 
void init (Certificate &cert, SymmetricKey::Algorithm symAlgorithm, SymmetricCipher::OperationMode symOperationMode) throw (Pkcs7Exception, SymmetricCipherException)
 
void addCipher (Certificate &certificate) throw (InvalidStateException, Pkcs7Exception)
 
Pkcs7EnvelopedDatadoFinal () throw (InvalidStateException, Pkcs7Exception)
 
Pkcs7EnvelopedDatadoFinal (std::string &data) throw (InvalidStateException, Pkcs7Exception)
 
Pkcs7EnvelopedDatadoFinal (ByteArray &data) throw (InvalidStateException, Pkcs7Exception)
 
- Public Member Functions inherited from Pkcs7Builder
 Pkcs7Builder ()
 
 ~Pkcs7Builder ()
 
void update (std::string &data) throw (InvalidStateException, Pkcs7Exception)
 
void update (ByteArray &data) throw (InvalidStateException, Pkcs7Exception)
 
void doFinal (std::istream *in, std::ostream *out) throw (InvalidStateException, Pkcs7Exception, EncodeException)
 

Additional Inherited Members

- Protected Types inherited from Pkcs7Builder
enum  State { NO_INIT, INIT, UPDATE }
 
- Protected Attributes inherited from Pkcs7Builder
Pkcs7Builder::State state
 
PKCS7 * pkcs7
 
BIO * p7bio
 

Detailed Description

Implementa o padrão builder para criação de um pacote PKCS7 envelopado com o uso de criptografia.

Constructor & Destructor Documentation

◆ Pkcs7EnvelopedDataBuilder()

Pkcs7EnvelopedDataBuilder::Pkcs7EnvelopedDataBuilder ( Certificate cert,
SymmetricKey::Algorithm  symAlgorithm,
SymmetricCipher::OperationMode  symOperationMode 
)
throw (Pkcs7Exception,
SymmetricCipherException
)

Construtor recebendo os parâmetros necessários à envelopagem dos dados a serem adicionados ao pacote. O método Pkcs7EnvelopedDataBuilder::init() é invocado nesse construtor.

Parameters
certreferência para o certificado que será usado para proteger o conteúdo do PKCS7 e irá compor o pacote.
symAlgorithmo algoritmo simétrico que everá ser usado na envelopagem do pacote.
symOperationModeo modo de operação necessário para alguns cifradores, deve ser SymmetricCipher::NO_MODE para algoritmos que não precisem desse parâmetro.
Exceptions
Pkcs7Exceptioncaso ocorra algum problema na criação do pacote PKCS7.
SymmetricCipherExceptioncaso ocorra algum problema na envelopagem do pacote PKCS7.
See also
Pkcs7EnvelopedDataBuilder::init()

◆ ~Pkcs7EnvelopedDataBuilder()

Pkcs7EnvelopedDataBuilder::~Pkcs7EnvelopedDataBuilder ( )
virtual

Destrutor padrão.

Member Function Documentation

◆ addCipher()

void Pkcs7EnvelopedDataBuilder::addCipher ( Certificate certificate)
throw (InvalidStateException,
Pkcs7Exception
)

Permite a adição de novos certificados cujas chaves privadas correspondentes estarão aptas a abrir o pacote PKCS7.

Parameters
certificatereferência para o novo certificado que estará apto a abrir o pacote.
Exceptions
InvalidStateExceptionno caso do builder não ter sido inicializado ainda.
Pkcs7Exceptioncaso tenha ocorrido um erro ao adicionar o certificado ao pacote PKCS7.

◆ doFinal() [1/3]

Pkcs7EnvelopedData * Pkcs7EnvelopedDataBuilder::doFinal ( )
throw (InvalidStateException,
Pkcs7Exception
)

Implementa uma versão distinta do método Pkcs7Builder::doFinal() para gerar o pacote envelopado.

Returns
Pkcs7EnvelopedData o pacote PKCS7 criado.
Exceptions
InvalidStateExceptioncaso o builder não esteja no estado apropriado no momento da invocação.
Pkcs7Exceptioncaso tenha ocorrido um erro na geração do pacote PKCS7.

◆ doFinal() [2/3]

Pkcs7EnvelopedData * Pkcs7EnvelopedDataBuilder::doFinal ( std::string &  data)
throw (InvalidStateException,
Pkcs7Exception
)

Implementa uma versão distinta do método Pkcs7Builder::doFinal() para gerar o pacote envelopado.

Parameters
datacontendo dados a serem concatenados ao conteudo do pacote antes da sua criação definitiva.
Returns
Pkcs7EnvelopedData o pacote PKCS7 criado.
Exceptions
InvalidStateExceptioncaso o builder não esteja no estado apropriado no momento da invocação.
Pkcs7Exceptioncaso tenha ocorrido um erro ao adicionar o certificado ao pacote PKCS7.

◆ doFinal() [3/3]

Pkcs7EnvelopedData * Pkcs7EnvelopedDataBuilder::doFinal ( ByteArray data)
throw (InvalidStateException,
Pkcs7Exception
)

Implementa uma versão distinta do método Pkcs7Builder::doFinal() para gerar o pacote envelopado.

Parameters
datacontendo dados a serem concatenados ao conteudo do pacote antes da sua criação definitiva.
Returns
Pkcs7EnvelopedData o pacote PKCS7 criado.
Exceptions
InvalidStateExceptioncaso o builder não esteja no estado apropriado no momento da invocação.
Pkcs7Exceptioncaso tenha ocorrido um erro ao adicionar o certificado ao pacote PKCS7.

◆ init()

void Pkcs7EnvelopedDataBuilder::init ( Certificate cert,
SymmetricKey::Algorithm  symAlgorithm,
SymmetricCipher::OperationMode  symOperationMode 
)
throw (Pkcs7Exception,
SymmetricCipherException
)

Método responsável pela inicialização do builder. Após sua invocação, o builder estará pronto para receber os dados a serem empacotados. Pode ser usado também para reinicializar o mesmo com a mudança de um ou mais parâmetros.

Parameters
certreferência para o certificado que será usado para proteger o conteúdo do PKCS7.
symAlgorithmo algoritmo simétrico que everá ser usado na envelopagem do pacote.
symOperationModeo modo de operação necessário para alguns cifradores, deve ser SymmetricCipher::NO_MODE para algoritmos que não precisem desse parâmetro.
Exceptions
Pkcs7Exceptioncaso ocorra algum problema na criação do pacote PKCS7.
SymmetricCipherExceptioncaso ocorra algum problema na envelopagem do pacote PKCS7.
See also
Pkcs7EnvelopedDataBuilder::init()

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