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

#include <Pkcs7SignedDataBuilder.h>

Inheritance diagram for Pkcs7SignedDataBuilder:
Pkcs7Builder

Public Member Functions

 Pkcs7SignedDataBuilder (MessageDigest::Algorithm mesDigAlgorithm, Certificate &cert, PrivateKey &privKey, bool attached) throw (Pkcs7Exception)
 
virtual ~Pkcs7SignedDataBuilder ()
 
void init (MessageDigest::Algorithm mesDigAlgorithm, Certificate &cert, PrivateKey &privKey, bool attached) throw (Pkcs7Exception)
 
void addSigner (MessageDigest::Algorithm mesDigAlgorithm, Certificate &cert, PrivateKey &privKey) throw (Pkcs7Exception, InvalidStateException)
 
void addCertificate (Certificate &cert) throw (Pkcs7Exception, InvalidStateException)
 
void addCrl (CertificateRevocationList &crl) throw (Pkcs7Exception, InvalidStateException)
 
Pkcs7SignedDatadoFinal () throw (InvalidStateException, Pkcs7Exception)
 
Pkcs7SignedDatadoFinal (std::string &data) throw (InvalidStateException, Pkcs7Exception)
 
Pkcs7SignedDatadoFinal (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 assinado digitalmente.

Constructor & Destructor Documentation

◆ Pkcs7SignedDataBuilder()

Pkcs7SignedDataBuilder::Pkcs7SignedDataBuilder ( MessageDigest::Algorithm  mesDigAlgorithm,
Certificate cert,
PrivateKey privKey,
bool  attached 
)
throw (Pkcs7Exception
)

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

Parameters
mesDigAlgorithmo algoritmo de hash que será usado na assinatura do pacote.
certreferência para o certificado que será usado para assinar o conteúdo do PKCS7 e irá compor o pacote.
privKeychave privada que será usada na assinatura do pacote.
attachedse true, o conteúdo do pacote estará contido no mesmo, caso contrário apenas a assinatura do conteúdo estará presente.
Exceptions
Pkcs7Exceptioncaso ocorra algum problema na geração do pacote PKCS7.
See also
Pkcs7SignedDataBuilder::init()

◆ ~Pkcs7SignedDataBuilder()

Pkcs7SignedDataBuilder::~Pkcs7SignedDataBuilder ( )
virtual

Destrutor padrão.

Member Function Documentation

◆ addCertificate()

void Pkcs7SignedDataBuilder::addCertificate ( Certificate cert)
throw (Pkcs7Exception,
InvalidStateException
)

Permite adicionar certificados adicionais

Parameters
certreferência para certificado que será adicionado
Exceptions
InvalidStateExceptionno caso do builder não ter sido inicializado ainda.
Pkcs7Exceptioncaso tenha ocorrido um erro ao adicionar o certificado ao pacote PKCS7.

◆ addCrl()

void Pkcs7SignedDataBuilder::addCrl ( CertificateRevocationList crl)
throw (Pkcs7Exception,
InvalidStateException
)

Permite adicionar lista de certificados revogados

Parameters
crlreferência para a CRL que será adicionada
Exceptions
InvalidStateExceptionno caso do builder não ter sido inicializado ainda.
Pkcs7Exceptioncaso tenha ocorrido um erro ao adicionar o certificado ao pacote PKCS7.

◆ addSigner()

void Pkcs7SignedDataBuilder::addSigner ( MessageDigest::Algorithm  mesDigAlgorithm,
Certificate cert,
PrivateKey privKey 
)
throw (Pkcs7Exception,
InvalidStateException
)

Permite a co-assinatura do pacote por mais de uma chave privada.

Parameters
mesDigAlgorithmo algoritmo de hash que será usado na assinatura do pacote.
certreferência para o novo certificado que será adicionado como assinador do pacote.
privKeychave privada que será usada na co-assinatura do 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]

Pkcs7SignedData * Pkcs7SignedDataBuilder::doFinal ( )
throw (InvalidStateException,
Pkcs7Exception
)

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

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]

Pkcs7SignedData * Pkcs7SignedDataBuilder::doFinal ( std::string &  data)
throw (InvalidStateException,
Pkcs7Exception
)

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

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 na geração do pacote PKCS7.

◆ doFinal() [3/3]

Pkcs7SignedData * Pkcs7SignedDataBuilder::doFinal ( ByteArray data)
throw (InvalidStateException,
Pkcs7Exception
)

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

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 na geração do pacote PKCS7.

◆ init()

void Pkcs7SignedDataBuilder::init ( MessageDigest::Algorithm  mesDigAlgorithm,
Certificate cert,
PrivateKey privKey,
bool  attached 
)
throw (Pkcs7Exception
)

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
mesDigAlgorithmo algoritmo de hash que será usado na assinatura do pacote.
certreferência para o certificado que será usado para assinar o conteúdo do PKCS7 e irá compor o pacote.
privKeychave privada que será usada na assinatura do pacote.
attachedse true, o conteúdo do pacote estará contido no mesmo, caso contrário apenas a assinatura do conteúdo estará presente.
Exceptions
Pkcs7Exceptioncaso ocorra algum problema na criação do pacote PKCS7.

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