libcryptosec
Certificate.h
Go to the documentation of this file.
1 #ifndef CERTIFICATE_H_
2 #define CERTIFICATE_H_
3 
4 /* system includes */
5 #include <time.h>
6 #include <vector>
7 #include <string>
8 /* openssl includes */
9 #include <openssl/pem.h>
10 #include <openssl/x509v3.h>
11 #include <openssl/x509.h>
12 /* libcryptosec includes */
13 #include <libcryptosec/Base64.h>
14 #include <libcryptosec/ByteArray.h>
15 #include <libcryptosec/DateTime.h>
18 #include <libcryptosec/PublicKey.h>
20 
21 #include "RDNSequence.h"
22 #include "Extension.h"
23 #include "KeyUsageExtension.h"
34 
37 
39 {
40 public:
41  Certificate(X509 *cert);
42  Certificate(std::string pemEncoded) throw (EncodeException);
43  Certificate(ByteArray &derEncoded) throw (EncodeException);
44  Certificate(const Certificate& cert);
45  virtual ~Certificate();
46  std::string getPemEncoded() const throw (EncodeException);
47  ByteArray getDerEncoded() const throw (EncodeException);
53  std::string getXmlEncoded();
54  std::string getXmlEncoded(std::string tab);
55  virtual std::string toXml(std::string tab = "");
59  throw (MessageDigestException);
62  long getVersion() throw (CertificationException);
67  std::vector<Extension *> getExtension(Extension::Name extensionName);
68  std::vector<Extension *> getExtensions();
69  std::vector<Extension *> getUnknownExtensions();
72  bool verify(PublicKey &publicKey);
73  X509* getX509() const;
81  throw (CertificationException);
82  Certificate& operator =(const Certificate& value);
83  bool operator ==(const Certificate& value);
84  bool operator !=(const Certificate& value);
85 protected:
86  X509 *cert;
87 };
88 
89 #endif /*CERTIFICATE_H_*/
Classe usada para representar números grandes. A limitação do tamanho do número depende da memória di...
Definition: BigInteger.h:23
Definition: MessageDigestException.h:6
Implementa a representação da data. É utilizada em certificados, LCRs. Utiliza o formato epoch (time_...
Definition: DateTime.h:27
Definition: PublicKey.h:19
Definition: RDNSequence.h:17
RDNSequence getIssuer()
Definition: Certificate.cpp:491
CertificateRequest getNewCertificateRequest(PrivateKey &privateKey, MessageDigest::Algorithm algorithm)
Definition: Certificate.cpp:667
virtual std::string toXml(std::string tab="")
Definition: Certificate.cpp:187
std::string getPemEncoded() const
Definition: Certificate.cpp:302
Algorithm
Definition: MessageDigest.h:29
std::vector< Extension * > getUnknownExtensions()
Definition: Certificate.cpp:622
Definition: CertificationException.h:6
PublicKey * getPublicKey()
Definition: Certificate.cpp:419
ByteArray getDerEncoded() const
Definition: Certificate.cpp:334
long getSerialNumber()
Definition: Certificate.cpp:363
Classe usada para transportar dados binários pelo sistema. Pode ser usada para conversão de texto em ...
Definition: ByteArray.h:24
Certificate(X509 *cert)
Definition: Certificate.cpp:3
MessageDigest::Algorithm getMessageDigestAlgorithm()
Definition: Certificate.cpp:411
Definition: AsymmetricKeyException.h:6
DateTime getNotAfter()
Definition: Certificate.cpp:484
bool verify(PublicKey &publicKey)
Definition: Certificate.cpp:655
DateTime getNotBefore()
Definition: Certificate.cpp:477
Definition: PrivateKey.h:21
ByteArray getPublicKeyInfo()
Definition: Certificate.cpp:444
BigInteger getSerialNumberBigInt()
Definition: Certificate.cpp:389
Definition: EncodeException.h:8
long getVersion()
Definition: Certificate.cpp:461
Definition: CertificateRequest.h:29
Name
Definition: Extension.h:17
X509 * getX509() const
Definition: Certificate.cpp:662
std::vector< Extension * > getExtensions()
Definition: Certificate.cpp:568
bool operator==(const Certificate &value)
Definition: Certificate.cpp:689
ByteArray getFingerPrint(MessageDigest::Algorithm algorithm) const
Definition: Certificate.cpp:644
X509 * cert
Definition: Certificate.h:86
bool operator!=(const Certificate &value)
Definition: Certificate.cpp:694
Certificate & operator=(const Certificate &value)
Definition: Certificate.cpp:679
std::string getXmlEncoded()
Definition: Certificate.cpp:65
std::vector< Extension * > getExtension(Extension::Name extensionName)
Definition: Certificate.cpp:511
Definition: Certificate.h:38
RDNSequence getSubject()
Definition: Certificate.cpp:501
virtual ~Certificate()
Definition: Certificate.cpp:59