\hypertarget{group__digest__algorithms}{}\doxysection{Crytographic Digest Algorithms} \label{group__digest__algorithms}\index{Crytographic Digest Algorithms@{Crytographic Digest Algorithms}} Collaboration diagram for Crytographic Digest Algorithms\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=312pt]{group__digest__algorithms} \end{center} \end{figure} \doxysubsection*{Variables} \begin{DoxyCompactItemize} \item \mbox{\Hypertarget{group__digest__algorithms_ga84e4167bc334d99becf32a4c9297ef8b}\label{group__digest__algorithms_ga84e4167bc334d99becf32a4c9297ef8b}} const \mbox{\hyperlink{group__digest__algorithms_ga84e4167bc334d99becf32a4c9297ef8b}{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 \mbox{\hyperlink{group__digest__algorithms_gad9807282c7a2d251c33ab3fa8e4cbcee}{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 \mbox{\hyperlink{group__digest__algorithms_ga5ae4457b5e78d3913a5f1c9c0c3db66c}{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 \mbox{\hyperlink{group__digest__algorithms_gaa7373cfba42ce06748fea2455e63e70a}{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 \mbox{\hyperlink{group__digest__algorithms_gaf41b0d17486bbcc917ec447540cf8785}{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 \mbox{\hyperlink{group__digest__algorithms_ga96568e3ff1e16cf6fe1c924c3a5af70b}{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 \mbox{\hyperlink{group__digest__algorithms_ga9658d092ce4ee79653f45292dc47964f}{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 \mbox{\hyperlink{group__digest__algorithms_gaf0156e70f3e7dc7edf5804ef32b455f4}{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 \mbox{\hyperlink{group__digest__algorithms_ga4860ea19cda90914fe06346d12db9564}{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 \mbox{\hyperlink{group__digest__algorithms_ga1be49f7eeacfce675bc0551f89248789}{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 \mbox{\hyperlink{group__digest__algorithms_ga9b747da4eed94175c0844cc3a2cea4aa}{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 \mbox{\hyperlink{group__digest__algorithms_ga06fb50eb1917c154217dfa19f56cb258}{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 \mbox{\hyperlink{group__digest__algorithms_ga6ed1d1807fe333274bd5781f8f6923bc}{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}