8 #include "Arp/System/Core/AppDomainSingleton.hxx" 9 #include "Arp/System/Commons/Logging.h" 10 #include "Arp/System/Commons/Security/Asn1Time.hpp" 11 #include "Arp/System/Commons/Security/ItemInfo.hpp" 12 #include "Arp/System/Commons/Security/Internal/OpenSslBio.hpp" 16 #include <openssl/x509.h> 17 #include <openssl/x509v3.h> 21 namespace Arp {
namespace System {
namespace Commons {
namespace Security
35 Certificate(
const std::vector<byte>& pemOrDerEncoding);
45 operator X509*()
const;
49 static String Rfc2253Format(X509_NAME* name);
61 static String GetAttributeValueByNid(X509_NAME *name,
int nid);
70 static String HexString(ASN1_INTEGER* integer);
77 const String& GetFilename(
void)
const;
80 String GetSerialNumberHex(
void)
const;
83 String GetSubject(
void)
const;
86 String GetSubjectCommonName(
void)
const;
89 String GetSubjectSerialNumber(
void)
const;
92 String GetIssuer(
void)
const;
95 String GetIssuerCommonName(
void)
const;
98 const String& GetIdentifier(
void)
const;
101 DateTime GetValidityNotBefore(
void)
const;
104 Asn1Time GetValidityNotBeforeAsn1(
void)
const;
107 DateTime GetValidityNotAfter(
void)
const;
110 Asn1Time GetValidityNotAfterAsn1(
void)
const;
113 std::vector<byte> GetPemData(
void)
const;
116 std::vector<byte> GetDerData(
void)
const;
123 void LoadFromFile(
const String& filename);
126 int LoadFromMemory(
const std::vector<byte>& data,
int offset = 0);
133 bool TryLoadFromMemory(
const std::vector<byte>& data,
int& offset);
140 bool TryLoadFromBio(
OpenSslBio& bio,
int& offset);
143 void SaveToFilePem(
const String& filename)
const;
146 void AppendToFilePem(
const String& filename)
const;
149 void SaveToFileDer(
const String& filename)
const;
156 void generateIdentifier(
void);
160 X509* internalCertificate;
171 inline Certificate::operator X509*()
const 173 return this->internalCertificate;
178 return this->filename;
Definition: OpenSslBio.hpp:10
Class to handle x.509 certificates
Definition: Certificate.hpp:25
The class contains date and time informations.
Definition: DateTime.hpp:44
Definition: Loggable.hxx:18
Root namespace for the PLCnext API
Definition: ItemInfo.hpp:11
Definition: OpenSslBio.hpp:13
System components used by the System, Device, Plc or Io domains.
const String & GetFilename(void) const
returns the filename were this x.509 certificate was loaded from
Definition: Certificate.hpp:176
Helper class to handle ASN1Time objects in x.509 Certificates
Definition: Asn1Time.hpp:22