libdigidocpp
digidoc::SignatureTM Class Reference

#include <SignatureTM.h>

Inheritance diagram for digidoc::SignatureTM:
Inheritance graph
Collaboration diagram for digidoc::SignatureTM:
Collaboration graph

Public Member Functions

 SignatureTM (unsigned int id, const BDoc &_bdoc)
 SignatureTM (const std::string &path, const BDoc &_bdoc) throw (SignatureException)
virtual ~SignatureTM ()
virtual std::string getMediaType () const
std::vector< unsigned char > getNonce () const
X509Cert getOCSPCertificate () const
std::string getProducedAt () const
std::string getResponderID () const
void getRevocationOCSPRef (std::vector< unsigned char > &data, std::string &digestMethodUri) const throw (SignatureException)
virtual void validateOffline () const throw (SignatureException)
- Public Member Functions inherited from digidoc::SignatureBES
 SignatureBES (unsigned int id, const BDoc &bdoc)
 SignatureBES (const std::string &path, const BDoc &bdoc) throw (SignatureException)
virtual ~SignatureBES ()
std::vector< std::string > referenceDigestMethods () const
virtual CertStatus validateOnline () const throw (SignatureException)
- Public Member Functions inherited from digidoc::Signature
virtual ~Signature ()
std::string saveToXml () throw (IOException)
std::string getId () const
SignatureProductionPlace getProductionPlace () const
SignerRole getSignerRole () const
std::string getSigningTime () const
X509Cert getSigningCertificate () const throw (SignatureException)
std::string getSignatureMethod () const

Static Public Attributes

static const std::string MEDIA_TYPE = "signature/bdoc-1.0/TM"
- Static Public Attributes inherited from digidoc::SignatureBES
static const std::string MEDIA_TYPE = "signature/bdoc-1.0/BES"

Protected Member Functions

virtual void sign (Signer *signer) throw (SignatureException, SignException)
void notarize () throw (SignatureException, SignException)
void addCertificateValue (const std::string &certId, const X509Cert &x509)
- Protected Member Functions inherited from digidoc::SignatureBES
std::vector< unsigned char > prepareSignedInfo (Signer *singer) throw (SignatureException, SignException)
- Protected Member Functions inherited from digidoc::Signature
 Signature (unsigned int id)
 Signature (const std::string &path) throw (SignatureException)
void addReference (const std::string &uri, const std::string &digestUri, const std::vector< unsigned char > &digestValue, const std::string &type="") throw (SignatureException)
void setSigningCertificate (const X509Cert &cert)
void setSignatureProductionPlace (const SignatureProductionPlace &signatureProductionPlace)
void setSignerRole (const SignerRole &signerRole)
void setSigningTime (const xml_schema::DateTime &signingTime)
std::vector< unsigned char > getSignatureValue () const
void setSignatureValue (Signer::Signature signatureValue)
xades::SignedSignaturePropertiesType & getSignedSignatureProperties () const throw (SignatureException)
dsig::X509DataType::X509CertificateType & getSigningX509CertificateType () const throw (SignatureException)
std::vector< unsigned char > calcDigestOnNode (Digest *calc, const std::string &ns, const std::string &tagName) const throw (SignatureException)

Private Member Functions

void createTMProperties ()
void setOCSPCertificate (const X509Cert &x509)
void setCACertificate (const X509Cert &x509)
void setOCSPResponseValue (const std::vector< unsigned char > &data)
void setCompleteRevocationRefs (const std::string &responderName, const std::string &digestMethodUri, const std::vector< unsigned char > &ocspResponseHash, const struct tm &producedAt)
std::vector< unsigned char > getOCSPResponseValue () const
xades::UnsignedPropertiesType::UnsignedSignaturePropertiesOptional & unsignedSignatureProperties () const throw (SignatureException)

Additional Inherited Members

- Public Types inherited from digidoc::Signature
enum  CertStatus { GOOD, REVOKED, UNKNOWN }
- Protected Attributes inherited from digidoc::SignatureBES
const BDocbdoc
- Static Protected Attributes inherited from digidoc::Signature
static const std::string XADES_NAMESPACE = "http://uri.etsi.org/01903/v1.3.2#"

Detailed Description

Definition at line 28 of file SignatureTM.h.

Constructor & Destructor Documentation

digidoc::SignatureTM::SignatureTM ( unsigned int  id,
const BDoc _bdoc 
)

Definition at line 34 of file SignatureTM.cpp.

digidoc::SignatureTM::SignatureTM ( const std::string &  path,
const BDoc _bdoc 
) throw (SignatureException)

Definition at line 39 of file SignatureTM.cpp.

digidoc::SignatureTM::~SignatureTM ( )
virtual

Definition at line 44 of file SignatureTM.cpp.

Member Function Documentation

void digidoc::SignatureTM::addCertificateValue ( const std::string &  certId,
const X509Cert x509 
)
protected

Add certificate under CertificateValues element

Parameters
certIdid attribute of EncapsulatedX509Certificate
x509value of EncapsulatedX509Certificate

Definition at line 448 of file SignatureTM.cpp.

References DEBUG, digidoc::X509Cert::encodeDER(), digidoc::X509Cert::getSerial(), and digidoc::X509Cert::getSubjectName().

Here is the call graph for this function:

void digidoc::SignatureTM::createTMProperties ( )
private

Add elements required by TM profile

Definition at line 351 of file SignatureTM.cpp.

std::string digidoc::SignatureTM::getMediaType ( ) const
virtual
Returns
returns signature mimetype.

Reimplemented from digidoc::SignatureBES.

Definition at line 51 of file SignatureTM.cpp.

std::vector< unsigned char > digidoc::SignatureTM::getNonce ( ) const
Returns
nonce value

Definition at line 59 of file SignatureTM.cpp.

References digidoc::OCSP::getNonce().

Here is the call graph for this function:

digidoc::X509Cert digidoc::SignatureTM::getOCSPCertificate ( ) const
Returns
returns OCSP certificate

Definition at line 67 of file SignatureTM.cpp.

References certs, and i.

std::vector< unsigned char > digidoc::SignatureTM::getOCSPResponseValue ( ) const
private

Get value of UnsignedProperties which contains whole OCSP response

Parameters
datawill contain DER encoded OCSP response bytes

Definition at line 485 of file SignatureTM.cpp.

std::string digidoc::SignatureTM::getProducedAt ( ) const
Returns
returns OCSP timestamp

Definition at line 91 of file SignatureTM.cpp.

References digidoc::OCSP::getProducedAt(), digidoc::util::date::makeDateTime(), and digidoc::util::date::xsd2string().

Here is the call graph for this function:

std::string digidoc::SignatureTM::getResponderID ( ) const
Returns
returns OCSP responder ID

Definition at line 104 of file SignatureTM.cpp.

void digidoc::SignatureTM::getRevocationOCSPRef ( std::vector< unsigned char > &  data,
std::string &  digestMethodUri 
) const throw (SignatureException)

Get value of UnsignedProperties which contains hash of OCSP server response.

Parameters
dataBinary value of UnsignedProperties. Hash of DER encoded OCSP response
digestMethodUriDigest method used for calculating hash of OCSP response
Exceptions
SignatureExceptionon error in references

Definition at line 507 of file SignatureTM.cpp.

References THROW_SIGNATUREEXCEPTION.

void digidoc::SignatureTM::setCACertificate ( const X509Cert x509)
private

Definition at line 438 of file SignatureTM.cpp.

void digidoc::SignatureTM::setCompleteRevocationRefs ( const std::string &  responderName,
const std::string &  digestMethodUri,
const std::vector< unsigned char > &  ocspResponseHash,
const struct tm &  producedAt 
)
private

Create CompleteRevocationRefs element that describes communication with OSCP responder.

Parameters
responderNameOCSP responder name as represented in responder public certification. Format as RFC2253
digestMethodUridigest method URI that was used for calculating ocspResponseHash
ocspResponseHashDigest of DER encode OCSP response
producedAtProduceAt field of OCSP response

Definition at line 372 of file SignatureTM.cpp.

References digidoc::util::date::makeDateTime(), and value.

Here is the call graph for this function:

void digidoc::SignatureTM::setOCSPCertificate ( const X509Cert x509)
private

Set OCSP responder cert.

Parameters
x509certificate that was used identify OCSP responder

Definition at line 406 of file SignatureTM.cpp.

References DEBUG, digidoc::X509Cert::encodeDER(), digidoc::Digest::getDigest(), digidoc::X509Cert::getIssuerName(), digidoc::X509Cert::getSerial(), digidoc::Digest::getSize(), digidoc::Digest::getUri(), and digidoc::Digest::update().

Here is the call graph for this function:

void digidoc::SignatureTM::setOCSPResponseValue ( const std::vector< unsigned char > &  data)
private

Fill RevocationValues element

Parameters
dataOCSP response in DER encoding

Definition at line 464 of file SignatureTM.cpp.

void digidoc::SignatureTM::sign ( Signer signer) throw (SignatureException, SignException)
protectedvirtual
Parameters
signer
Exceptions
SignatureException

Reimplemented from digidoc::SignatureBES.

Definition at line 224 of file SignatureTM.cpp.

References DEBUG, and digidoc::SignatureBES::sign().

Here is the call graph for this function:

digidoc::xades::UnsignedPropertiesType::UnsignedSignaturePropertiesOptional & digidoc::SignatureTM::unsignedSignatureProperties ( ) const throw (SignatureException)
private

Definition at line 543 of file SignatureTM.cpp.

References THROW_SIGNATUREEXCEPTION.

void digidoc::SignatureTM::validateOffline ( ) const throw (SignatureException)
virtual

Member Data Documentation

const std::string digidoc::SignatureTM::MEDIA_TYPE = "signature/bdoc-1.0/TM"
static

TM profile signature media type.

Definition at line 42 of file SignatureTM.h.

Referenced by digidoc::BDoc::parseManifestAndLoadFiles().


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