\hypertarget{class_qore_1_1_s_s_l_certificate}{}\section{Qore\+:\+:S\+S\+L\+Certificate Class Reference}
\label{class_qore_1_1_s_s_l_certificate}\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}


\mbox{\hyperlink{class_qore_1_1_s_s_l_certificate}{S\+S\+L\+Certificate}} objects allow Qore code to work with X.\+509 certificate data.  




Inheritance diagram for Qore\+:\+:S\+S\+L\+Certificate\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=188pt]{class_qore_1_1_s_s_l_certificate__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_ad0971140da3d09eff6509309367e44b3}{constructor}} (\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} pem)
\begin{DoxyCompactList}\small\item\em Creates the \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate}{S\+S\+L\+Certificate}} object from the P\+E\+M-\/encoded version of the X.\+509 certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a6c23688064313053f0d97d721f1199fb}{constructor}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} der)
\begin{DoxyCompactList}\small\item\em Creates the \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate}{S\+S\+L\+Certificate}} object from the D\+E\+R-\/encoded version of the X.\+509 certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_aba1f8b7876a1c6630f8c474a713daa2e}{copy}} ()
\begin{DoxyCompactList}\small\item\em Returns a copy of the certificate object. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_adc018f372e971b43a44d678b96c222ca}{get\+D\+ER}} ()
\begin{DoxyCompactList}\small\item\em Returns a binary object in D\+ER format representing the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga5182bb860e3837e1eb337e85a9b3ebd6}{hash}}$<$ auto $>$ \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_ad1aa6d6d382cbdb5e60b60161157ec1c}{get\+Info}} ()
\begin{DoxyCompactList}\small\item\em Returns a hash of all information for the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga5182bb860e3837e1eb337e85a9b3ebd6}{hash}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_ab7f8aa2ed6be9a59993a008776851222}{get\+Issuer\+Hash}} ()
\begin{DoxyCompactList}\small\item\em Returns a hash of strings representing the issuer information of the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__date__and__time__functions_gaa80ee453b6a5653ac685d7e290c74e3f}{date}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_aa032ba7fce14b9fd6ac0181e2a5a2538}{get\+Not\+After\+Date}} ()
\begin{DoxyCompactList}\small\item\em Returns a date/time value representing the end date of the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__date__and__time__functions_gaa80ee453b6a5653ac685d7e290c74e3f}{date}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_ada4fcaa035665d0ce962bf0292533a31}{get\+Not\+Before\+Date}} ()
\begin{DoxyCompactList}\small\item\em Returns a date/time value representing the start date of the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_ad89366c7f97b5307e3360e57dd006add}{get\+P\+EM}} ()
\begin{DoxyCompactList}\small\item\em Returns a string in P\+EM format representing the certificate. \end{DoxyCompactList}\item 
\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a259fc90259854970a59c0a14ba7ed36f}{get\+Public\+Key}} ()
\begin{DoxyCompactList}\small\item\em Returns a binary object representing the public key of the certificate in D\+ER (Distinguished Encoding Rules) format or \mbox{\hyperlink{basic_data_types_nothing}{N\+O\+T\+H\+I\+NG}} if no public key is present in the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a7ed8f779b639b5ca332004e05a3a25ac}{get\+Public\+Key\+Algorithm}} ()
\begin{DoxyCompactList}\small\item\em Returns the name of the public key algorithm of the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga5182bb860e3837e1eb337e85a9b3ebd6}{hash}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a266831e3704b1d3911ca25c2d32c8cab}{get\+Purpose\+Hash}} ()
\begin{DoxyCompactList}\small\item\em Returns a hash of booleans representing the allowed purposes of the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_afb37f78ccfbc743f93ac957c6ba7f7bf}{get\+Serial\+Number}} ()
\begin{DoxyCompactList}\small\item\em Returns the integer serial number of the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a5931188f312c2be2d96bcba5d1dd79f5}{get\+Signature}} ()
\begin{DoxyCompactList}\small\item\em Returns a binary object representing the signature of the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a662cf1040b9f99900c2888023b7b6cb9}{get\+Signature\+Type}} ()
\begin{DoxyCompactList}\small\item\em Returns the signature type of the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga5182bb860e3837e1eb337e85a9b3ebd6}{hash}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_aaea5f64f64bc63351c4d7010147fc1c1}{get\+Subject\+Hash}} ()
\begin{DoxyCompactList}\small\item\em Returns a hash of strings representing the subject information of the certificate. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_acc049d3abd7ad86ba47bcf927839804d}{get\+Version}} ()
\begin{DoxyCompactList}\small\item\em Returns the version of the certificate as an integer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\mbox{\hyperlink{class_qore_1_1_s_s_l_certificate}{S\+S\+L\+Certificate}} objects allow Qore code to work with X.\+509 certificate data. 

The \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate}{S\+S\+L\+Certificate}} class supports \mbox{\hyperlink{class_qore_1_1_serializable}{data serialization}}; note that the serialized data is a representation of the data that does not require a password, so for source data that requires a password to use, the serialized representation of the private key should be protected carefully (transmitted only in an encrypted stream) 

\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_ad0971140da3d09eff6509309367e44b3}\label{class_qore_1_1_s_s_l_certificate_ad0971140da3d09eff6509309367e44b3}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!constructor@{constructor}}
\index{constructor@{constructor}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{constructor()}{constructor()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Qore\+::\+S\+S\+L\+Certificate\+::constructor (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{pem }\end{DoxyParamCaption})}



Creates the \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate}{S\+S\+L\+Certificate}} object from the P\+E\+M-\/encoded version of the X.\+509 certificate. 


\begin{DoxyParams}{Parameters}
{\em pem} & the P\+EM representation of the X.\+509 certificate\\
\hline
\end{DoxyParams}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
SSLCertificate cert(pem\_cert\_string);
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em S\+S\+L\+C\+E\+R\+T\+I\+F\+I\+C\+A\+T\+E-\/\+C\+O\+N\+S\+T\+R\+U\+C\+T\+O\+R-\/\+E\+R\+R\+OR} & invalid X.\+509 certificate data\\
\hline
\end{DoxyExceptions}
\begin{DoxySince}{Since}
0.\+8.\+4\+: the deprecated functionality where the if the string passed was less than 200 bytes long, it was assumed to be a file name has been removed; the string is assumed to be the P\+E\+M-\/encoded X.\+509 Certificate itself 
\end{DoxySince}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_a6c23688064313053f0d97d721f1199fb}\label{class_qore_1_1_s_s_l_certificate_a6c23688064313053f0d97d721f1199fb}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!constructor@{constructor}}
\index{constructor@{constructor}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{constructor()}{constructor()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Qore\+::\+S\+S\+L\+Certificate\+::constructor (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{der }\end{DoxyParamCaption})}



Creates the \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate}{S\+S\+L\+Certificate}} object from the D\+E\+R-\/encoded version of the X.\+509 certificate. 


\begin{DoxyParams}{Parameters}
{\em der} & the D\+E\+R-\/encoded representation of the X.\+509 certificate\\
\hline
\end{DoxyParams}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
SSLCertificate cert(der\_cert);
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em S\+S\+L\+C\+E\+R\+T\+I\+F\+I\+C\+A\+T\+E-\/\+C\+O\+N\+S\+T\+R\+U\+C\+T\+O\+R-\/\+E\+R\+R\+OR} & invalid X.\+509 certificate data \\
\hline
\end{DoxyExceptions}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_aba1f8b7876a1c6630f8c474a713daa2e}\label{class_qore_1_1_s_s_l_certificate_aba1f8b7876a1c6630f8c474a713daa2e}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!copy@{copy}}
\index{copy@{copy}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{copy()}{copy()}}
{\footnotesize\ttfamily Qore\+::\+S\+S\+L\+Certificate\+::copy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a copy of the certificate object. 

\begin{DoxySince}{Since}
Qore 0.\+9 
\end{DoxySince}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_adc018f372e971b43a44d678b96c222ca}\label{class_qore_1_1_s_s_l_certificate_adc018f372e971b43a44d678b96c222ca}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+D\+ER@{get\+D\+ER}}
\index{get\+D\+ER@{get\+D\+ER}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+D\+E\+R()}{getDER()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::\+S\+S\+L\+Certificate\+::get\+D\+ER (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a binary object in D\+ER format representing the certificate. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{R\+E\+T\+\_\+\+V\+A\+L\+U\+E\+\_\+\+O\+N\+LY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
binary der = cert.getDER();
\end{DoxyCode}

\end{DoxyParagraph}
\begin{DoxyReturn}{Returns}
a binary object in D\+ER format representing the certificate
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em S\+S\+L\+P\+R\+I\+V\+A\+T\+E\+K\+E\+Y-\/\+E\+R\+R\+OR} & could not create D\+ER data from certificate data\\
\hline
\end{DoxyExceptions}
\begin{DoxySince}{Since}
Qore 0.\+9 
\end{DoxySince}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_ad1aa6d6d382cbdb5e60b60161157ec1c}\label{class_qore_1_1_s_s_l_certificate_ad1aa6d6d382cbdb5e60b60161157ec1c}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Info@{get\+Info}}
\index{get\+Info@{get\+Info}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Info()}{getInfo()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga5182bb860e3837e1eb337e85a9b3ebd6}{hash}}$<$auto$>$ Qore\+::\+S\+S\+L\+Certificate\+::get\+Info (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a hash of all information for the certificate. 

\begin{DoxyReturn}{Returns}
a hash of all information for the certificate with the following keys\+:
\begin{DoxyItemize}
\item {\ttfamily \char`\"{}version\char`\"{}}\+: The version of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_acc049d3abd7ad86ba47bcf927839804d}{S\+S\+L\+Certificate\+::get\+Version()}})
\item {\ttfamily \char`\"{}serial\+Number\char`\"{}}\+: The serial number of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_afb37f78ccfbc743f93ac957c6ba7f7bf}{S\+S\+L\+Certificate\+::get\+Serial\+Number()}})
\item {\ttfamily \char`\"{}subject\char`\"{}}\+: The subject hash of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_aaea5f64f64bc63351c4d7010147fc1c1}{S\+S\+L\+Certificate\+::get\+Subject\+Hash()}})
\item {\ttfamily \char`\"{}issuer\char`\"{}}\+: The issuer hash of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_ab7f8aa2ed6be9a59993a008776851222}{S\+S\+L\+Certificate\+::get\+Issuer\+Hash()}})
\item {\ttfamily \char`\"{}purposes\char`\"{}}\+: The purpose hash of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a266831e3704b1d3911ca25c2d32c8cab}{S\+S\+L\+Certificate\+::get\+Purpose\+Hash()}})
\item {\ttfamily \char`\"{}not\+Before\char`\"{}}\+: The \char`\"{}not before date\char`\"{} of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_ada4fcaa035665d0ce962bf0292533a31}{S\+S\+L\+Certificate\+::get\+Not\+Before\+Date()}})
\item {\ttfamily \char`\"{}not\+After\char`\"{}}\+: The \char`\"{}not after date\char`\"{} of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_aa032ba7fce14b9fd6ac0181e2a5a2538}{S\+S\+L\+Certificate\+::get\+Not\+After\+Date()}})
\item {\ttfamily \char`\"{}signature\+Type\char`\"{}}\+: The signature type string of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a662cf1040b9f99900c2888023b7b6cb9}{S\+S\+L\+Certificate\+::get\+Signature\+Type()}})
\item {\ttfamily \char`\"{}signature\char`\"{}}\+: The binary signature of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a5931188f312c2be2d96bcba5d1dd79f5}{S\+S\+L\+Certificate\+::get\+Signature()}})
\item {\ttfamily \char`\"{}public\+Key\char`\"{}}\+: The binary public key of the X.\+509 certificate (see \mbox{\hyperlink{class_qore_1_1_s_s_l_certificate_a259fc90259854970a59c0a14ba7ed36f}{S\+S\+L\+Certificate\+::get\+Public\+Key()}})
\end{DoxyItemize}
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
hash<auto> h = cert.getInfo();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_ab7f8aa2ed6be9a59993a008776851222}\label{class_qore_1_1_s_s_l_certificate_ab7f8aa2ed6be9a59993a008776851222}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Issuer\+Hash@{get\+Issuer\+Hash}}
\index{get\+Issuer\+Hash@{get\+Issuer\+Hash}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Issuer\+Hash()}{getIssuerHash()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga5182bb860e3837e1eb337e85a9b3ebd6}{hash}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Issuer\+Hash (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a hash of strings representing the issuer information of the certificate. 

\begin{DoxyReturn}{Returns}
a hash of key-\/value pairs representing the issuer information of the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
hash h = cert.getIssuerHash();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_aa032ba7fce14b9fd6ac0181e2a5a2538}\label{class_qore_1_1_s_s_l_certificate_aa032ba7fce14b9fd6ac0181e2a5a2538}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Not\+After\+Date@{get\+Not\+After\+Date}}
\index{get\+Not\+After\+Date@{get\+Not\+After\+Date}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Not\+After\+Date()}{getNotAfterDate()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__date__and__time__functions_gaa80ee453b6a5653ac685d7e290c74e3f}{date}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Not\+After\+Date (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a date/time value representing the end date of the certificate. 

\begin{DoxyReturn}{Returns}
a date/time value representing the end date of the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
date end = cert.getNotAfterDate();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_ada4fcaa035665d0ce962bf0292533a31}\label{class_qore_1_1_s_s_l_certificate_ada4fcaa035665d0ce962bf0292533a31}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Not\+Before\+Date@{get\+Not\+Before\+Date}}
\index{get\+Not\+Before\+Date@{get\+Not\+Before\+Date}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Not\+Before\+Date()}{getNotBeforeDate()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__date__and__time__functions_gaa80ee453b6a5653ac685d7e290c74e3f}{date}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Not\+Before\+Date (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a date/time value representing the start date of the certificate. 

\begin{DoxyReturn}{Returns}
a date/time value representing the start date of the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
date start = cert.getNotBeforeDate();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_ad89366c7f97b5307e3360e57dd006add}\label{class_qore_1_1_s_s_l_certificate_ad89366c7f97b5307e3360e57dd006add}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+P\+EM@{get\+P\+EM}}
\index{get\+P\+EM@{get\+P\+EM}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+P\+E\+M()}{getPEM()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::\+S\+S\+L\+Certificate\+::get\+P\+EM (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a string in P\+EM format representing the certificate. 

\begin{DoxyReturn}{Returns}
a string in P\+EM format representing the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
string pem\_str = cert.getPEM();
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em X509-\/\+E\+R\+R\+OR} & could not create P\+EM string from X509 certificate data \\
\hline
\end{DoxyExceptions}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_a259fc90259854970a59c0a14ba7ed36f}\label{class_qore_1_1_s_s_l_certificate_a259fc90259854970a59c0a14ba7ed36f}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Public\+Key@{get\+Public\+Key}}
\index{get\+Public\+Key@{get\+Public\+Key}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Public\+Key()}{getPublicKey()}}
{\footnotesize\ttfamily \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Public\+Key (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a binary object representing the public key of the certificate in D\+ER (Distinguished Encoding Rules) format or \mbox{\hyperlink{basic_data_types_nothing}{N\+O\+T\+H\+I\+NG}} if no public key is present in the certificate. 

\begin{DoxyReturn}{Returns}
a binary object representing the public key of the certificate in D\+ER (Distinguished Encoding Rules) format or \mbox{\hyperlink{basic_data_types_nothing}{N\+O\+T\+H\+I\+NG}} if no public key is present in the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
*binary bin = cert.getPublicKey();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_a7ed8f779b639b5ca332004e05a3a25ac}\label{class_qore_1_1_s_s_l_certificate_a7ed8f779b639b5ca332004e05a3a25ac}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Public\+Key\+Algorithm@{get\+Public\+Key\+Algorithm}}
\index{get\+Public\+Key\+Algorithm@{get\+Public\+Key\+Algorithm}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Public\+Key\+Algorithm()}{getPublicKeyAlgorithm()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Public\+Key\+Algorithm (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns the name of the public key algorithm of the certificate. 

\begin{DoxyReturn}{Returns}
the name of the public key algorithm of the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
string str = cert.getPublicKeyAlgorithm();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_a266831e3704b1d3911ca25c2d32c8cab}\label{class_qore_1_1_s_s_l_certificate_a266831e3704b1d3911ca25c2d32c8cab}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Purpose\+Hash@{get\+Purpose\+Hash}}
\index{get\+Purpose\+Hash@{get\+Purpose\+Hash}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Purpose\+Hash()}{getPurposeHash()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga5182bb860e3837e1eb337e85a9b3ebd6}{hash}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Purpose\+Hash (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a hash of booleans representing the allowed purposes of the certificate. 

\begin{DoxyReturn}{Returns}
a hash of booleans representing the allowed purposes of the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
hash h = cert.getPurposeHash();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_afb37f78ccfbc743f93ac957c6ba7f7bf}\label{class_qore_1_1_s_s_l_certificate_afb37f78ccfbc743f93ac957c6ba7f7bf}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Serial\+Number@{get\+Serial\+Number}}
\index{get\+Serial\+Number@{get\+Serial\+Number}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Serial\+Number()}{getSerialNumber()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Serial\+Number (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns the integer serial number of the certificate. 

\begin{DoxyReturn}{Returns}
the integer serial number of the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
int sn = cert.getSerialNumber();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_a5931188f312c2be2d96bcba5d1dd79f5}\label{class_qore_1_1_s_s_l_certificate_a5931188f312c2be2d96bcba5d1dd79f5}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Signature@{get\+Signature}}
\index{get\+Signature@{get\+Signature}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Signature()}{getSignature()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Signature (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a binary object representing the signature of the certificate. 

\begin{DoxyReturn}{Returns}
a binary object representing the signature of the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
binary bin = cert.getSignature();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_a662cf1040b9f99900c2888023b7b6cb9}\label{class_qore_1_1_s_s_l_certificate_a662cf1040b9f99900c2888023b7b6cb9}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Signature\+Type@{get\+Signature\+Type}}
\index{get\+Signature\+Type@{get\+Signature\+Type}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Signature\+Type()}{getSignatureType()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Signature\+Type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns the signature type of the certificate. 

\begin{DoxyReturn}{Returns}
the signature type of the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
string str = cert.getSignatureType();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_aaea5f64f64bc63351c4d7010147fc1c1}\label{class_qore_1_1_s_s_l_certificate_aaea5f64f64bc63351c4d7010147fc1c1}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Subject\+Hash@{get\+Subject\+Hash}}
\index{get\+Subject\+Hash@{get\+Subject\+Hash}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Subject\+Hash()}{getSubjectHash()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga5182bb860e3837e1eb337e85a9b3ebd6}{hash}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Subject\+Hash (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a hash of strings representing the subject information of the certificate. 

\begin{DoxyReturn}{Returns}
a hash of key-\/value pairs representing the subject information of the certificate
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
hash h = cert.getSubjectHash();
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_qore_1_1_s_s_l_certificate_acc049d3abd7ad86ba47bcf927839804d}\label{class_qore_1_1_s_s_l_certificate_acc049d3abd7ad86ba47bcf927839804d}} 
\index{Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}!get\+Version@{get\+Version}}
\index{get\+Version@{get\+Version}!Qore\+::\+S\+S\+L\+Certificate@{Qore\+::\+S\+S\+L\+Certificate}}
\subsubsection{\texorpdfstring{get\+Version()}{getVersion()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} Qore\+::\+S\+S\+L\+Certificate\+::get\+Version (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns the version of the certificate as an integer. 

\begin{DoxyReturn}{Returns}
the version of the certificate as an integer
\end{DoxyReturn}
\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{C\+O\+N\+S\+T\+A\+NT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}
int ver = cert.getVersion();
\end{DoxyCode}
 
\end{DoxyParagraph}
