\hypertarget{group__digest__algorithms}{}\doxysection{Crytographic Digest Algorithms}
\label{group__digest__algorithms}\index{Crytographic Digest Algorithms@{Crytographic Digest Algorithms}}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__digest__algorithms_ga84e4167bc334d99becf32a4c9297ef8b}\label{group__digest__algorithms_ga84e4167bc334d99becf32a4c9297ef8b}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+DSS} = \char`\"{}dss\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the DSS message digest (based on SHA-\/0 and \href{http://en.wikipedia.org/wiki/Digital_Signature_Algorithm}{\texttt{ DSA}}) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_gad9807282c7a2d251c33ab3fa8e4cbcee}\label{group__digest__algorithms_gad9807282c7a2d251c33ab3fa8e4cbcee}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+DSS1} = \char`\"{}dss1\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the DSS1 message digest (based on \href{http://en.wikipedia.org/wiki/SHA-1}{\texttt{ SHA1}} and \href{http://en.wikipedia.org/wiki/Digital_Signature_Algorithm}{\texttt{ DSA}}) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_ga5ae4457b5e78d3913a5f1c9c0c3db66c}\label{group__digest__algorithms_ga5ae4457b5e78d3913a5f1c9c0c3db66c}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+MD2} = \char`\"{}md2\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the \href{http://en.wikipedia.org/wiki/MD2_(cryptography)}{\texttt{ MD2 message digest}} \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_gaa7373cfba42ce06748fea2455e63e70a}\label{group__digest__algorithms_gaa7373cfba42ce06748fea2455e63e70a}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+MD4} = \char`\"{}md4\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the \href{http://en.wikipedia.org/wiki/MD4}{\texttt{ MD4 message digest}} \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_gaf41b0d17486bbcc917ec447540cf8785}\label{group__digest__algorithms_gaf41b0d17486bbcc917ec447540cf8785}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+MD5} = \char`\"{}md5\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the \href{http://en.wikipedia.org/wiki/MD5}{\texttt{ MD5 message digest}} \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_ga96568e3ff1e16cf6fe1c924c3a5af70b}\label{group__digest__algorithms_ga96568e3ff1e16cf6fe1c924c3a5af70b}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+MDC2} = \char`\"{}mdc2\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the \href{http://en.wikipedia.org/wiki/MDC2}{\texttt{ MDC2 message digest}} \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_ga9658d092ce4ee79653f45292dc47964f}\label{group__digest__algorithms_ga9658d092ce4ee79653f45292dc47964f}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+RIPEMD160} = \char`\"{}ripemd160\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the \href{http://en.wikipedia.org/wiki/RIPEMD}{\texttt{ RIPEMD message digest}} \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_gaf0156e70f3e7dc7edf5804ef32b455f4}\label{group__digest__algorithms_gaf0156e70f3e7dc7edf5804ef32b455f4}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+SHA} = \char`\"{}sha\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the insecure and outdated SHA-\/0 message digest; only supplied for compatibility purposes \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_ga4860ea19cda90914fe06346d12db9564}\label{group__digest__algorithms_ga4860ea19cda90914fe06346d12db9564}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+SHA1} = \char`\"{}sha1\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the \href{http://en.wikipedia.org/wiki/SHA-1}{\texttt{ SHA1 message digest}} \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_ga1be49f7eeacfce675bc0551f89248789}\label{group__digest__algorithms_ga1be49f7eeacfce675bc0551f89248789}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+SHA224} = \char`\"{}sha224\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the SHA-\/224 message digest (a variant of \href{http://en.wikipedia.org/wiki/SHA-2}{\texttt{ SHA-\/2}}) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_ga9b747da4eed94175c0844cc3a2cea4aa}\label{group__digest__algorithms_ga9b747da4eed94175c0844cc3a2cea4aa}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+SHA256} = \char`\"{}sha256\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the SHA-\/256 message digest (a variant of \href{http://en.wikipedia.org/wiki/SHA-2}{\texttt{ SHA-\/2}}) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_ga06fb50eb1917c154217dfa19f56cb258}\label{group__digest__algorithms_ga06fb50eb1917c154217dfa19f56cb258}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+SHA384} = \char`\"{}sha384\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the SHA-\/384 message digest (a variant of \href{http://en.wikipedia.org/wiki/SHA-2}{\texttt{ SHA-\/2}}) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__digest__algorithms_ga6ed1d1807fe333274bd5781f8f6923bc}\label{group__digest__algorithms_ga6ed1d1807fe333274bd5781f8f6923bc}} 
const {\bfseries Qore\+::\+CRYPTO\+\_\+\+DIGEST\+\_\+\+SHA512} = \char`\"{}sha512\char`\"{}
\begin{DoxyCompactList}\small\item\em specifies the SHA-\/512 message digest (a variant of \href{http://en.wikipedia.org/wiki/SHA-2}{\texttt{ SHA-\/2}}) \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__digest__algorithms_ga908829ccad7e4dc9def95d0d7ba7d898}{Qore\+::\+Cipher\+Map}} = qore(init\+\_\+cipher\+\_\+map\+\_\+hash())
\begin{DoxyCompactList}\small\item\em A hash keyed by supported cipher name where each value is an informational hash. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__digest__algorithms_ga08088b7c0d1162c80782a6dbd8fa05a7}{Qore\+::\+Digest\+Map}} = qore(init\+\_\+digest\+\_\+map\+\_\+hash())
\begin{DoxyCompactList}\small\item\em A hash keyed by supported digest name where each value is \mbox{\hyperlink{basic_data_types_True}{True}}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The following constants can be used with the \mbox{\hyperlink{group__hmac__functions_gaefc09e78e7bccccf7bc3629e4e86c9e2}{digest()}} and \mbox{\hyperlink{group__hmac__functions_gaf88021aec5a7048984b0a0e5ce21733d}{hmac()}} functions to calculate cryptographic digests and HMACs on input data.

\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{class_qore_1_1_file_output_stream}{Qore::FileOutputStream}} of(\textcolor{stringliteral}{"{}my-\/file.txt"{}});}
\DoxyCodeLine{\mbox{\hyperlink{class_qore_1_1_transform_output_stream}{Qore::TransformOutputStream}} ts(of, \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{get\_decryptor}}(\mbox{\hyperlink{group__crypto__transformations_ga537286d57ff4a0326f427e8d513cbfb0}{Qore::CRYPTO\_ALG\_BLOWFISH}}));}

\end{DoxyCode}

\end{DoxyParagraph}
These constants are useful in the following functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gaefc09e78e7bccccf7bc3629e4e86c9e2}{Qore\+::digest()}}
\item \mbox{\hyperlink{group__hmac__functions_gaf88021aec5a7048984b0a0e5ce21733d}{Qore\+::hmac()}}
\end{DoxyItemize}

\begin{DoxySince}{Since}
Qore 0.\+9.\+3 
\end{DoxySince}


\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{group__digest__algorithms_ga908829ccad7e4dc9def95d0d7ba7d898}\label{group__digest__algorithms_ga908829ccad7e4dc9def95d0d7ba7d898}} 
\index{Crytographic Digest Algorithms@{Crytographic Digest Algorithms}!CipherMap@{CipherMap}}
\index{CipherMap@{CipherMap}!Crytographic Digest Algorithms@{Crytographic Digest Algorithms}}
\doxysubsubsection{\texorpdfstring{CipherMap}{CipherMap}}
{\footnotesize\ttfamily const Qore\+::\+Cipher\+Map = qore(init\+\_\+cipher\+\_\+map\+\_\+hash())}



A hash keyed by supported cipher name where each value is an informational hash. 

\begin{DoxyNote}{Note}
If Qore is compiled with Open\+SSL 3+, it will use dynamic lookups of all ciphers known to the Open\+SSL library, so cipher names not included as keys in this hash may also be recignized as aliases for known ciphers
\end{DoxyNote}
\begin{DoxySince}{Since}
Qore 1.\+4 
\end{DoxySince}
\mbox{\Hypertarget{group__digest__algorithms_ga08088b7c0d1162c80782a6dbd8fa05a7}\label{group__digest__algorithms_ga08088b7c0d1162c80782a6dbd8fa05a7}} 
\index{Crytographic Digest Algorithms@{Crytographic Digest Algorithms}!DigestMap@{DigestMap}}
\index{DigestMap@{DigestMap}!Crytographic Digest Algorithms@{Crytographic Digest Algorithms}}
\doxysubsubsection{\texorpdfstring{DigestMap}{DigestMap}}
{\footnotesize\ttfamily const Qore\+::\+Digest\+Map = qore(init\+\_\+digest\+\_\+map\+\_\+hash())}



A hash keyed by supported digest name where each value is \mbox{\hyperlink{basic_data_types_True}{True}}. 

\begin{DoxySince}{Since}
Qore 0.\+9.\+3
\end{DoxySince}
\begin{DoxyNote}{Note}
If Qore is compiled with Open\+SSL 3+, it will use dynamic lookups of all digests known to the Open\+SSL library, so digest names not included as keys in this hash may also be recignized as aliases for known digests 
\end{DoxyNote}
