PLCnext API Documentation 25.0.2.69
Asn1Time.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/System/Commons/Security/Internal/OpenSslBio.hpp"
9#include <map>
10#include <vector>
11
12#include <openssl/x509.h>
13
14using namespace Arp::System::Commons::Security::Internal;
15
16namespace Arp { namespace System { namespace Commons { namespace Security
17{
18
21{
22public: // typedefs
23
24public: // construction/destruction
25 Asn1Time(void);
27 Asn1Time(const Asn1Time& arg);
29 Asn1Time(const ASN1_TIME* arg);
30 ~Asn1Time(void);
31
32public: // operators
33 Asn1Time& operator=(const Asn1Time& arg);
34 Asn1Time& operator=(const ASN1_TIME* arg);
35 operator ASN1_TIME*() const;
36 operator DateTime() const;
37
38public: // static operations
39 static DateTime Asn1TimeToDateTime(const ASN1_TIME* pTime);
40 static bool TryAsn1TimeToDateTime(const ASN1_TIME* pTime, DateTime& result);
41 static String Asn1TimeToIso8601String(const ASN1_TIME* pTime);
42
43public: // setter/getter operations
44 String GetTypeAsString(void) const;
45 bool Set(const DateTime& time);
46
47public: // operations
48 DateTime ToDateTime(void) const;
49 String ToString(void) const;
50 String ToIso8601String(void) const;
51
52protected: // operations
53
54private: // static methods
55 static String DateTimeToTrimmedGeneralizedTime(const DateTime time);
56 bool GeneralizedTimeFitsForUtcTime(String timeStr);
57
58private: // methods
59
60protected: // fields
61 ASN1_TIME* internalAsn1Time;
62
63private: // fields
64
65private: // static fields
66
67};
68
69}}}} // end of namespace Arp::System::Commons::Security
This class contains date and time informations.
Definition: DateTime.hpp:27
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Helper class to handle ASN1Time objects in x.509 Certificates
Definition: Asn1Time.hpp:21
DateTime ToDateTime(void) const
Converts this object to DataTime DateTime
Definition: Asn1Time.cpp:103
Asn1Time(void)
Constructs an empty Asn1Time instance.
Definition: Asn1Time.cpp:29
static DateTime Asn1TimeToDateTime(const ASN1_TIME *pTime)
Converst an OpenSSL ASN1_TIME object to DataTime DateTime
Definition: Asn1Time.cpp:278
static bool TryAsn1TimeToDateTime(const ASN1_TIME *pTime, DateTime &result)
Tries to convert an OpenSSL ASN1_TIME object to DataTime DateTime
Definition: Asn1Time.cpp:307
String GetTypeAsString(void) const
Return the type of the Internal ASN1_TIME object as String
Definition: Asn1Time.cpp:149
String ToIso8601String(void) const
Converts this object to an ISO8601 formated String DateTime
Definition: Asn1Time.cpp:138
String ToString(void) const
Converts this object to String DateTime
Definition: Asn1Time.cpp:113
bool Set(const DateTime &time)
Sets this Ans1Time from a DateTime
Definition: Asn1Time.cpp:184
static String Asn1TimeToIso8601String(const ASN1_TIME *pTime)
Converst an OpenSSL ASN1_TIME object to an ISO8601 formated String DateTime
Definition: Asn1Time.cpp:347
~Asn1Time(void)
Destructs this instance and frees all resources.
Definition: Asn1Time.cpp:48
Asn1Time & operator=(const Asn1Time &arg)
Assignment operator.
Definition: Asn1Time.cpp:82
Root namespace for the PLCnext API