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


\doxysubsection{Detailed Description}
The following constants can be used with the \doxylink{group__hmac__functions_gaefc09e78e7bccccf7bc3629e4e86c9e2}{digest()} and \doxylink{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}}\ \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{of}}(\textcolor{stringliteral}{"{}my-\/file.txt"{}});}
\DoxyCodeLine{\mbox{\hyperlink{class_qore_1_1_transform_output_stream}{Qore::TransformOutputStream}}\ \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{ts}}(\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{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 \doxylink{group__hmac__functions_gaefc09e78e7bccccf7bc3629e4e86c9e2}{Qore\+::digest()}
\item \doxylink{group__hmac__functions_gaf88021aec5a7048984b0a0e5ce21733d}{Qore\+::hmac()}
\end{DoxyItemize}

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


\doxysubsection{Variable Documentation}
\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 \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{const}} Qore\+::\+Cipher\+Map = \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{qore}}(\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{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 recognized as aliases for known ciphers
\end{DoxyNote}
\begin{DoxySince}{Since}
Qore 1.\+4 
\end{DoxySince}
\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 \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{const}} Qore\+::\+Digest\+Map = \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{qore}}(\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{init\+\_\+digest\+\_\+map\+\_\+hash}}())}



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

\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 recognized as aliases for known digests 
\end{DoxyNote}
