\hypertarget{group__cryptographic__functions}{}\doxysection{Cryptographic Functions}
\label{group__cryptographic__functions}\index{Cryptographic Functions@{Cryptographic Functions}}


Qore\textquotesingle{}s cryptography support is provided by the Open\+S\+SL library. Each of the encryption and decryption functions in this section accept an optional initialization vector, which is data used as initial input for the first block in chained encryption algorithms. Subsequent blocks take input from the last block encrypted/decrypted. If an initialization vector is not supplied, a default value of 8 zero bytes will be used (see \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}).  


Collaboration diagram for Cryptographic Functions\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__cryptographic__functions}
\end{center}
\end{figure}
\doxysubsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__digest__functions}{Digest (\+Hash) Functions}}
\begin{DoxyCompactList}\small\item\em Qore\textquotesingle{}s cryptography support is provided by the Open\+S\+SL library. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_gabefd583059e33ed6a8a01d7389f8bf9b}{Qore\+::blowfish\+\_\+decrypt\+\_\+cbc}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.counterpane.com/blowfish.html}{\texttt{ blowfish algorithm}} and returns a binary value of the decrypted data. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{group__cryptographic__functions_ga226a0462cb59d5ae7316b5085028175a}{Qore\+::blowfish\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}, \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} encoding)
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.counterpane.com/blowfish.html}{\texttt{ blowfish algorithm}} and returns a string of the decrypted data. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga8fabb3720006b7bb779b7cb41b35dfcd}{Qore\+::blowfish\+\_\+encrypt\+\_\+cbc}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.counterpane.com/blowfish.html}{\texttt{ blowfish algorithm}} \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_gad2788c4558f70a666b2d6a4405c51a16}{Qore\+::cast5\+\_\+decrypt\+\_\+cbc}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://en.wikipedia.org/wiki/CAST5}{\texttt{ C\+A\+S\+T5 algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{group__cryptographic__functions_ga484cd53a8e2bce77a4cbe661c026bfbd}{Qore\+::cast5\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}, \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} encoding)
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://en.wikipedia.org/wiki/CAST5}{\texttt{ C\+A\+S\+T5 algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga9a7fc0959fb08282701648f31a943f38}{Qore\+::cast5\+\_\+encrypt\+\_\+cbc}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://en.wikipedia.org/wiki/CAST5}{\texttt{ C\+A\+S\+T5 algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga8a5b6f1af165635369d6caf2d8b95ea2}{Qore\+::des\+\_\+decrypt\+\_\+cbc}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using an 8-\/byte key. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{group__cryptographic__functions_gab99891ed74efd74aa01d8a5c3bbb4335}{Qore\+::des\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}, \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} encoding)
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using an 8-\/byte key. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga6f461d38434a49d7d5f8c288ceae96bc}{Qore\+::des\+\_\+ede3\+\_\+decrypt\+\_\+cbc}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the three-\/key triple \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using three 8-\/byte keys (set by a single 24-\/byte key argument) and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{group__cryptographic__functions_gae5561acf747f38c486712cde8f0bc664}{Qore\+::des\+\_\+ede3\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}, \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} encoding)
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the three-\/key triple \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using three 8-\/byte keys (set by a single 24-\/byte key argument) and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga3ad2648dfb2f58c1a47d53d462bdd141}{Qore\+::des\+\_\+ede3\+\_\+encrypt\+\_\+cbc}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the three-\/key triple \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using three 8-\/byte keys (set by a single 24-\/byte key argument) and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga32bd21c6da3879b0d7093c57da0d51fc}{Qore\+::des\+\_\+ede\+\_\+decrypt\+\_\+cbc}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the two-\/key triple D\+ES algorithm using two eight-\/byte keys (set by a single 16-\/byte key argument) \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{group__cryptographic__functions_ga8c37d1ea7ee11351c68266ba5a7e19ca}{Qore\+::des\+\_\+ede\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}, \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} encoding)
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the two-\/key triple D\+ES algorithm using two eight-\/byte keys (set by a single 16-\/byte key argument) \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga8c6adc7381531f618319971e401aee2b}{Qore\+::des\+\_\+ede\+\_\+encrypt\+\_\+cbc}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the two-\/key triple D\+ES algorithm using two eight-\/byte keys (set by a single 16-\/byte key argument) \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_gaaa54a23064913aa22801a427574801be}{Qore\+::des\+\_\+encrypt\+\_\+cbc}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using an 8-\/byte key. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_gada3243f5052be3b3a0e05257057f692e}{Qore\+::des\+\_\+random\+\_\+key}} ()
\begin{DoxyCompactList}\small\item\em Returns a binary value of a random key for the \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga928bc8d21c9a5085762e5ce2c3fb4c58}{Qore\+::desx\+\_\+decrypt\+\_\+cbc}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://www.rsasecurity.com/}{\texttt{ D\+E\+SX algorithm}} using a 24-\/byte key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{group__cryptographic__functions_ga070bb66ba55a5a979b10d18e5a2ffeff}{Qore\+::desx\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}, \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} encoding)
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://www.rsasecurity.com/}{\texttt{ D\+E\+SX algorithm}} using a 24-\/byte key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga84ccd6960923d20597f03062f8d41557}{Qore\+::desx\+\_\+encrypt\+\_\+cbc}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://www.rsasecurity.com/}{\texttt{ D\+E\+SX algorithm}} using a 24-\/byte key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga3f51f2328c74b0e38201c14065f9fefe}{Qore\+::rc2\+\_\+decrypt\+\_\+cbc}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC2}{\texttt{ R\+C2(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{group__cryptographic__functions_ga73e290020e74f3eea1857f52e0c39caa}{Qore\+::rc2\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}, \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} encoding)
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC2}{\texttt{ R\+C2(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_gaa953035cae6e362808a82b06f2a8672a}{Qore\+::rc2\+\_\+encrypt\+\_\+cbc}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC2}{\texttt{ R\+C2(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_gad9cae47536e0e9d31c1a1117e5a914af}{Qore\+::rc4\+\_\+decrypt}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Decrypts data using the Alleged \href{http://en.wikipedia.org/wiki/RC4}{\texttt{ R\+C4 cipher algorithm}}, which should be compatible with R\+SA\textquotesingle{}s R\+C4(tm) algorithm using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{group__cryptographic__functions_ga116c53f20d55fdebe1dd9d0b138d2216}{Qore\+::rc4\+\_\+decrypt\+\_\+to\+\_\+string}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}, \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} encoding)
\begin{DoxyCompactList}\small\item\em Decrypts data using the Alleged \href{http://en.wikipedia.org/wiki/RC4}{\texttt{ R\+C4 cipher algorithm}}, which should be compatible with R\+SA\textquotesingle{}s R\+C4(tm) algorithm using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_gaa79e7a31db5a95f71e473843a091ea76}{Qore\+::rc4\+\_\+encrypt}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Encrypts data using the Alleged \href{http://en.wikipedia.org/wiki/RC4}{\texttt{ R\+C4 cipher algorithm}}, which should be compatible with R\+SA\textquotesingle{}s R\+C4(tm) algorithm using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_gaa3ecd43966f7cc245fd51bfddcf2cec7}{Qore\+::rc5\+\_\+decrypt\+\_\+cbc}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC5}{\texttt{ R\+C5(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} \mbox{\hyperlink{group__cryptographic__functions_ga03adf8b23a9540658a460eb2936da2fd}{Qore\+::rc5\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string}} (\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}, \+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} encoding)
\begin{DoxyCompactList}\small\item\em Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC5}{\texttt{ R\+C5(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} \mbox{\hyperlink{group__cryptographic__functions_ga8f3a6bc9fd77316d89fb41eaa225a9b9}{Qore\+::rc5\+\_\+encrypt\+\_\+cbc}} (data data, data key, data iv=\mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}})
\begin{DoxyCompactList}\small\item\em Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC5}{\texttt{ R\+C5(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Qore\textquotesingle{}s cryptography support is provided by the Open\+S\+SL library. Each of the encryption and decryption functions in this section accept an optional initialization vector, which is data used as initial input for the first block in chained encryption algorithms. Subsequent blocks take input from the last block encrypted/decrypted. If an initialization vector is not supplied, a default value of 8 zero bytes will be used (see \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}). 

See also\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__digest__functions}{Digest (Hash) Functions}}
\item \mbox{\hyperlink{group__hmac__functions}{H\+M\+AC Functions}}
\item \mbox{\hyperlink{group__cryptographic__constants}{Cryptographic Contants}}
\end{DoxyItemize}

Some functions require fixed-\/length keys, and some allow the use of variable-\/length keys. For functions requiring fixed-\/length keys any excess bytes are ignored. The same applies to initialization vector arguments.

The following is an example of a function that uses {\ttfamily /dev/random} on U\+N\+IX to read in a random key for use with encryption functions\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{comment}{\# read a key from /dev/random and return the key}}
\DoxyCodeLine{binary sub get\_key(int size) \{}
\DoxyCodeLine{    \textcolor{comment}{\# throw an exception if an invalid key size was passed}}
\DoxyCodeLine{    \textcolor{keywordflow}{if} (!size || size < 0)}
\DoxyCodeLine{        throw \textcolor{stringliteral}{"GET-\/KEY-\/ERROR"}, \mbox{\hyperlink{group__string__functions_ga7a74be141f814ef286046c367b21091c}{sprintf}}(\textcolor{stringliteral}{"invalid size = \%n"}, size);}
\DoxyCodeLine{    File f();}
\DoxyCodeLine{    \textcolor{comment}{\# File::open2() will throw an exception if /dev/random cannot be opened for reading}}
\DoxyCodeLine{    f.open2(\textcolor{stringliteral}{"/dev/random"});}
\DoxyCodeLine{    \textcolor{keywordflow}{return} f.readBinary(size);}
\DoxyCodeLine{\}}
\end{DoxyCode}


\begin{DoxyNote}{Note}
The following generic cryptographic functions are recommended over the older cipher-\/specific functions which will be deprecated in a later release of Qore\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxyNote}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__cryptographic__functions_gabefd583059e33ed6a8a01d7389f8bf9b}\label{group__cryptographic__functions_gabefd583059e33ed6a8a01d7389f8bf9b}} 
\index{Cryptographic Functions@{Cryptographic Functions}!blowfish\_decrypt\_cbc@{blowfish\_decrypt\_cbc}}
\index{blowfish\_decrypt\_cbc@{blowfish\_decrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{blowfish\_decrypt\_cbc()}{blowfish\_decrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::blowfish\+\_\+decrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.counterpane.com/blowfish.html}{\texttt{ blowfish algorithm}} and returns a binary value of the decrypted data. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/length key (recommended 16 bytes or more) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_gabefd583059e33ed6a8a01d7389f8bf9b}{blowfish\_decrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em B\+L\+O\+W\+F\+I\+S\+H-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_ga537286d57ff4a0326f427e8d513cbfb0}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+B\+L\+O\+W\+F\+I\+SH}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga226a0462cb59d5ae7316b5085028175a}\label{group__cryptographic__functions_ga226a0462cb59d5ae7316b5085028175a}} 
\index{Cryptographic Functions@{Cryptographic Functions}!blowfish\_decrypt\_cbc\_to\_string@{blowfish\_decrypt\_cbc\_to\_string}}
\index{blowfish\_decrypt\_cbc\_to\_string@{blowfish\_decrypt\_cbc\_to\_string}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{blowfish\_decrypt\_cbc\_to\_string()}{blowfish\_decrypt\_cbc\_to\_string()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::blowfish\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}},  }\item[{\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{encoding }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.counterpane.com/blowfish.html}{\texttt{ blowfish algorithm}} and returns a string of the decrypted data. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/length key (recommended 16 bytes or more) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present \\
\hline
{\em encoding} & the character encoding tag for the string return value; if not present, the \mbox{\hyperlink{character_encoding_default_encoding}{default character encoding}} is assumed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{string str = \mbox{\hyperlink{group__cryptographic__functions_ga226a0462cb59d5ae7316b5085028175a}{blowfish\_decrypt\_cbc\_to\_string}}(data, key, NOTHING, \textcolor{stringliteral}{"iso-\/8859-\/1"});}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em B\+L\+O\+W\+F\+I\+S\+H-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{decrypt\+\_\+to\+\_\+string}}(\mbox{\hyperlink{group__crypto__transformations_ga537286d57ff4a0326f427e8d513cbfb0}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+B\+L\+O\+W\+F\+I\+SH}}, data, key, iv, ...)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}}
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+4 added the encoding parameter to specify the output encoding of the string 
\end{DoxySince}
\mbox{\Hypertarget{group__cryptographic__functions_ga8fabb3720006b7bb779b7cb41b35dfcd}\label{group__cryptographic__functions_ga8fabb3720006b7bb779b7cb41b35dfcd}} 
\index{Cryptographic Functions@{Cryptographic Functions}!blowfish\_encrypt\_cbc@{blowfish\_encrypt\_cbc}}
\index{blowfish\_encrypt\_cbc@{blowfish\_encrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{blowfish\_encrypt\_cbc()}{blowfish\_encrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::blowfish\+\_\+encrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.counterpane.com/blowfish.html}{\texttt{ blowfish algorithm}} 

\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{DoxyParams}{Parameters}
{\em data} & the data to be encrypted \\
\hline
{\em key} & a variable-\/length key (recommended 16 bytes or more) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the encrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga8fabb3720006b7bb779b7cb41b35dfcd}{blowfish\_encrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em B\+L\+O\+W\+F\+I\+S\+H-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em E\+N\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error encrypting the data (should not normally happen)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{encrypt}}(\mbox{\hyperlink{group__crypto__transformations_ga537286d57ff4a0326f427e8d513cbfb0}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+B\+L\+O\+W\+F\+I\+SH}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_gad2788c4558f70a666b2d6a4405c51a16}\label{group__cryptographic__functions_gad2788c4558f70a666b2d6a4405c51a16}} 
\index{Cryptographic Functions@{Cryptographic Functions}!cast5\_decrypt\_cbc@{cast5\_decrypt\_cbc}}
\index{cast5\_decrypt\_cbc@{cast5\_decrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{cast5\_decrypt\_cbc()}{cast5\_decrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::cast5\+\_\+decrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://en.wikipedia.org/wiki/CAST5}{\texttt{ C\+A\+S\+T5 algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/width decryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_gad2788c4558f70a666b2d6a4405c51a16}{cast5\_decrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em C\+A\+S\+T5-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_gab6dd39c61668eed9ee863a86c0536023}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+C\+A\+S\+T5}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga484cd53a8e2bce77a4cbe661c026bfbd}\label{group__cryptographic__functions_ga484cd53a8e2bce77a4cbe661c026bfbd}} 
\index{Cryptographic Functions@{Cryptographic Functions}!cast5\_decrypt\_cbc\_to\_string@{cast5\_decrypt\_cbc\_to\_string}}
\index{cast5\_decrypt\_cbc\_to\_string@{cast5\_decrypt\_cbc\_to\_string}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{cast5\_decrypt\_cbc\_to\_string()}{cast5\_decrypt\_cbc\_to\_string()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::cast5\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}},  }\item[{\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{encoding }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://en.wikipedia.org/wiki/CAST5}{\texttt{ C\+A\+S\+T5 algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/width decryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present \\
\hline
{\em encoding} & the character encoding tag for the string return value; if not present, the \mbox{\hyperlink{character_encoding_default_encoding}{default character encoding}} is assumed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{string bin = \mbox{\hyperlink{group__cryptographic__functions_ga484cd53a8e2bce77a4cbe661c026bfbd}{cast5\_decrypt\_cbc\_to\_string}}(data, key, NOTHING, \textcolor{stringliteral}{"iso-\/8859-\/1"});}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em C\+A\+S\+T5-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{decrypt\+\_\+to\+\_\+string}}(\mbox{\hyperlink{group__crypto__transformations_gab6dd39c61668eed9ee863a86c0536023}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+C\+A\+S\+T5}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}}
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+4 added the encoding parameter to specify the output encoding of the string 
\end{DoxySince}
\mbox{\Hypertarget{group__cryptographic__functions_ga9a7fc0959fb08282701648f31a943f38}\label{group__cryptographic__functions_ga9a7fc0959fb08282701648f31a943f38}} 
\index{Cryptographic Functions@{Cryptographic Functions}!cast5\_encrypt\_cbc@{cast5\_encrypt\_cbc}}
\index{cast5\_encrypt\_cbc@{cast5\_encrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{cast5\_encrypt\_cbc()}{cast5\_encrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::cast5\+\_\+encrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://en.wikipedia.org/wiki/CAST5}{\texttt{ C\+A\+S\+T5 algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be encrypted \\
\hline
{\em key} & a variable-\/width encryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the encrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga9a7fc0959fb08282701648f31a943f38}{cast5\_encrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em C\+A\+S\+T5-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em E\+N\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error encrypting the data (should not normally happen)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{encrypt}}(\mbox{\hyperlink{group__crypto__transformations_gab6dd39c61668eed9ee863a86c0536023}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+C\+A\+S\+T5}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga8a5b6f1af165635369d6caf2d8b95ea2}\label{group__cryptographic__functions_ga8a5b6f1af165635369d6caf2d8b95ea2}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_decrypt\_cbc@{des\_decrypt\_cbc}}
\index{des\_decrypt\_cbc@{des\_decrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_decrypt\_cbc()}{des\_decrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::des\+\_\+decrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using an 8-\/byte key. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & the decryption key must be at least 8 bytes long (only the first 8 bytes will be used) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga8a5b6f1af165635369d6caf2d8b95ea2}{des\_decrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_gab2509ba7b5427976e71ed4441b96cb39}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+ES}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_gab99891ed74efd74aa01d8a5c3bbb4335}\label{group__cryptographic__functions_gab99891ed74efd74aa01d8a5c3bbb4335}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_decrypt\_cbc\_to\_string@{des\_decrypt\_cbc\_to\_string}}
\index{des\_decrypt\_cbc\_to\_string@{des\_decrypt\_cbc\_to\_string}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_decrypt\_cbc\_to\_string()}{des\_decrypt\_cbc\_to\_string()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::des\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}},  }\item[{\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{encoding }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using an 8-\/byte key. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & the decryption key must be at least 8 bytes long (only the first 8 bytes will be used) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present \\
\hline
{\em encoding} & the character encoding tag for the string return value; if not present, the \mbox{\hyperlink{character_encoding_default_encoding}{default character encoding}} is assumed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{string bin = \mbox{\hyperlink{group__cryptographic__functions_gab99891ed74efd74aa01d8a5c3bbb4335}{des\_decrypt\_cbc\_to\_string}}(data, key, NOTHING, \textcolor{stringliteral}{"iso-\/8859-\/1"});}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_gab2509ba7b5427976e71ed4441b96cb39}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+ES}}, data, key, iv, ...)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}}
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+4 added the encoding parameter to specify the output encoding of the string 
\end{DoxySince}
\mbox{\Hypertarget{group__cryptographic__functions_ga6f461d38434a49d7d5f8c288ceae96bc}\label{group__cryptographic__functions_ga6f461d38434a49d7d5f8c288ceae96bc}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_ede3\_decrypt\_cbc@{des\_ede3\_decrypt\_cbc}}
\index{des\_ede3\_decrypt\_cbc@{des\_ede3\_decrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_ede3\_decrypt\_cbc()}{des\_ede3\_decrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::des\+\_\+ede3\+\_\+decrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the three-\/key triple \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using three 8-\/byte keys (set by a single 24-\/byte key argument) and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & the decryption key must be at least 24 bytes long (only the first 24 bytes will be used for the three 8-\/byte keys) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga6f461d38434a49d7d5f8c288ceae96bc}{des\_ede3\_decrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_ga056d23c2aaeeb75f37d4e7e515db5a6d}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+E\+S\+\_\+\+E\+D\+E3}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_gae5561acf747f38c486712cde8f0bc664}\label{group__cryptographic__functions_gae5561acf747f38c486712cde8f0bc664}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_ede3\_decrypt\_cbc\_to\_string@{des\_ede3\_decrypt\_cbc\_to\_string}}
\index{des\_ede3\_decrypt\_cbc\_to\_string@{des\_ede3\_decrypt\_cbc\_to\_string}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_ede3\_decrypt\_cbc\_to\_string()}{des\_ede3\_decrypt\_cbc\_to\_string()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::des\+\_\+ede3\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}},  }\item[{\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{encoding }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the three-\/key triple \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using three 8-\/byte keys (set by a single 24-\/byte key argument) and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & the decryption key must be at least 24 bytes long (only the first 24 bytes will be used for the three 8-\/byte keys) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present \\
\hline
{\em encoding} & the character encoding tag for the string return value; if not present, the \mbox{\hyperlink{character_encoding_default_encoding}{default character encoding}} is assumed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{string bin = \mbox{\hyperlink{group__cryptographic__functions_gae5561acf747f38c486712cde8f0bc664}{des\_ede3\_decrypt\_cbc\_to\_string}}(data, key, NOTHING, \textcolor{stringliteral}{"iso-\/8859-\/1"});}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{decrypt\+\_\+to\+\_\+string}}(\mbox{\hyperlink{group__crypto__transformations_ga056d23c2aaeeb75f37d4e7e515db5a6d}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+E\+S\+\_\+\+E\+D\+E2}}, data, key, iv, ...)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}}
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+4 added the encoding parameter to specify the output encoding of the string 
\end{DoxySince}
\mbox{\Hypertarget{group__cryptographic__functions_ga3ad2648dfb2f58c1a47d53d462bdd141}\label{group__cryptographic__functions_ga3ad2648dfb2f58c1a47d53d462bdd141}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_ede3\_encrypt\_cbc@{des\_ede3\_encrypt\_cbc}}
\index{des\_ede3\_encrypt\_cbc@{des\_ede3\_encrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_ede3\_encrypt\_cbc()}{des\_ede3\_encrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::des\+\_\+ede3\+\_\+encrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the three-\/key triple \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using three 8-\/byte keys (set by a single 24-\/byte key argument) and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be encrypted \\
\hline
{\em key} & the encryption key must be at least 24 bytes long (only the first 24 bytes will be used for the three 8-\/byte keys) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the encrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga3ad2648dfb2f58c1a47d53d462bdd141}{des\_ede3\_encrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em E\+N\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error encrypting the data (should not normally happen)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{encrypt}}(\mbox{\hyperlink{group__crypto__transformations_ga056d23c2aaeeb75f37d4e7e515db5a6d}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+E\+S\+\_\+\+E\+D\+E3}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga32bd21c6da3879b0d7093c57da0d51fc}\label{group__cryptographic__functions_ga32bd21c6da3879b0d7093c57da0d51fc}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_ede\_decrypt\_cbc@{des\_ede\_decrypt\_cbc}}
\index{des\_ede\_decrypt\_cbc@{des\_ede\_decrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_ede\_decrypt\_cbc()}{des\_ede\_decrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::des\+\_\+ede\+\_\+decrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the two-\/key triple D\+ES algorithm using two eight-\/byte keys (set by a single 16-\/byte key argument) 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & the decryption key must be at least 16 bytes long (only the first 16 bytes will be used for the two 8-\/byte keys) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga32bd21c6da3879b0d7093c57da0d51fc}{des\_ede\_decrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_gae1d1fcde9e41fb04b5f1ecca97a69824}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+E\+S\+\_\+\+E\+DE}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga8c37d1ea7ee11351c68266ba5a7e19ca}\label{group__cryptographic__functions_ga8c37d1ea7ee11351c68266ba5a7e19ca}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_ede\_decrypt\_cbc\_to\_string@{des\_ede\_decrypt\_cbc\_to\_string}}
\index{des\_ede\_decrypt\_cbc\_to\_string@{des\_ede\_decrypt\_cbc\_to\_string}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_ede\_decrypt\_cbc\_to\_string()}{des\_ede\_decrypt\_cbc\_to\_string()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::des\+\_\+ede\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}},  }\item[{\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{encoding }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the two-\/key triple D\+ES algorithm using two eight-\/byte keys (set by a single 16-\/byte key argument) 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & the decryption key must be at least 16 bytes long (only the first 16 bytes will be used for the two 8-\/byte keys) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present \\
\hline
{\em encoding} & the character encoding tag for the string return value; if not present, the \mbox{\hyperlink{character_encoding_default_encoding}{default character encoding}} is assumed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{string bin = \mbox{\hyperlink{group__cryptographic__functions_ga8c37d1ea7ee11351c68266ba5a7e19ca}{des\_ede\_decrypt\_cbc\_to\_string}}(data, key, NOTHING, \textcolor{stringliteral}{"iso-\/8859-\/1"});}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{decrypt\+\_\+to\+\_\+string}}(\mbox{\hyperlink{group__crypto__transformations_gae1d1fcde9e41fb04b5f1ecca97a69824}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+E\+S\+\_\+\+E\+DE}}, data, key, iv, ...)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}}
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+4 added the encoding parameter to specify the output encoding of the string 
\end{DoxySince}
\mbox{\Hypertarget{group__cryptographic__functions_ga8c6adc7381531f618319971e401aee2b}\label{group__cryptographic__functions_ga8c6adc7381531f618319971e401aee2b}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_ede\_encrypt\_cbc@{des\_ede\_encrypt\_cbc}}
\index{des\_ede\_encrypt\_cbc@{des\_ede\_encrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_ede\_encrypt\_cbc()}{des\_ede\_encrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::des\+\_\+ede\+\_\+encrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the two-\/key triple D\+ES algorithm using two eight-\/byte keys (set by a single 16-\/byte key argument) 

\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{DoxyParams}{Parameters}
{\em data} & the data to be encrypted \\
\hline
{\em key} & the encryption key must be at least 16 bytes long (only the first 16 bytes will be used for the two 8-\/byte keys) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the encrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga8c6adc7381531f618319971e401aee2b}{des\_ede\_encrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em E\+N\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error encrypting the data (should not normally happen)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{encrypt}}(\mbox{\hyperlink{group__crypto__transformations_gae1d1fcde9e41fb04b5f1ecca97a69824}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+E\+S\+\_\+\+E\+DE}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_gaaa54a23064913aa22801a427574801be}\label{group__cryptographic__functions_gaaa54a23064913aa22801a427574801be}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_encrypt\_cbc@{des\_encrypt\_cbc}}
\index{des\_encrypt\_cbc@{des\_encrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_encrypt\_cbc()}{des\_encrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::des\+\_\+encrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for the \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} using an 8-\/byte key. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be encrypted \\
\hline
{\em key} & the encryption key must be at least 8 bytes long (only the first 8 bytes will be used) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the encrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_gaaa54a23064913aa22801a427574801be}{des\_encrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em E\+N\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error encrypting the data (should not normally happen)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{encrypt}}(\mbox{\hyperlink{group__crypto__transformations_gab2509ba7b5427976e71ed4441b96cb39}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+ES}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_gada3243f5052be3b3a0e05257057f692e}\label{group__cryptographic__functions_gada3243f5052be3b3a0e05257057f692e}} 
\index{Cryptographic Functions@{Cryptographic Functions}!des\_random\_key@{des\_random\_key}}
\index{des\_random\_key@{des\_random\_key}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{des\_random\_key()}{des\_random\_key()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::des\+\_\+random\+\_\+key (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Returns a binary value of a random key for the \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}} 

\begin{DoxyReturn}{Returns}
a binary value of a random key for the \href{http://www.itl.nist.gov/fipspubs/fip46-2.htm}{\texttt{ D\+ES algorithm}}
\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}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_gada3243f5052be3b3a0e05257057f692e}{des\_random\_key}}();}
\end{DoxyCode}
 
\end{DoxyParagraph}
\mbox{\Hypertarget{group__cryptographic__functions_ga928bc8d21c9a5085762e5ce2c3fb4c58}\label{group__cryptographic__functions_ga928bc8d21c9a5085762e5ce2c3fb4c58}} 
\index{Cryptographic Functions@{Cryptographic Functions}!desx\_decrypt\_cbc@{desx\_decrypt\_cbc}}
\index{desx\_decrypt\_cbc@{desx\_decrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{desx\_decrypt\_cbc()}{desx\_decrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::desx\+\_\+decrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://www.rsasecurity.com/}{\texttt{ D\+E\+SX algorithm}} using a 24-\/byte key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & the decryption key must be at least 24 bytes long (only the first 24 bytes will be used) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga928bc8d21c9a5085762e5ce2c3fb4c58}{desx\_decrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S\+X-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S\+X-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_ga87d409efe9ca4136e594c9d7f054c7d5}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+E\+SX}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga070bb66ba55a5a979b10d18e5a2ffeff}\label{group__cryptographic__functions_ga070bb66ba55a5a979b10d18e5a2ffeff}} 
\index{Cryptographic Functions@{Cryptographic Functions}!desx\_decrypt\_cbc\_to\_string@{desx\_decrypt\_cbc\_to\_string}}
\index{desx\_decrypt\_cbc\_to\_string@{desx\_decrypt\_cbc\_to\_string}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{desx\_decrypt\_cbc\_to\_string()}{desx\_decrypt\_cbc\_to\_string()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::desx\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}},  }\item[{\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{encoding }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://www.rsasecurity.com/}{\texttt{ D\+E\+SX algorithm}} using a 24-\/byte key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & the decryption key must be at least 24 bytes long (only the first 24 bytes will be used) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present \\
\hline
{\em encoding} & the character encoding tag for the string return value; if not present, the \mbox{\hyperlink{character_encoding_default_encoding}{default character encoding}} is assumed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{string str = \mbox{\hyperlink{group__cryptographic__functions_ga070bb66ba55a5a979b10d18e5a2ffeff}{desx\_decrypt\_cbc\_to\_string}}(data, key, NOTHING, \textcolor{stringliteral}{"iso-\/8859-\/1"});}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S\+X-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S\+X-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{decrypt\+\_\+to\+\_\+string}}(\mbox{\hyperlink{group__crypto__transformations_ga87d409efe9ca4136e594c9d7f054c7d5}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+E\+SX}}, data, key, iv, ...)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}}
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+4 added the encoding parameter to specify the output encoding of the string 
\end{DoxySince}
\mbox{\Hypertarget{group__cryptographic__functions_ga84ccd6960923d20597f03062f8d41557}\label{group__cryptographic__functions_ga84ccd6960923d20597f03062f8d41557}} 
\index{Cryptographic Functions@{Cryptographic Functions}!desx\_encrypt\_cbc@{desx\_encrypt\_cbc}}
\index{desx\_encrypt\_cbc@{desx\_encrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{desx\_encrypt\_cbc()}{desx\_encrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::desx\+\_\+encrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://www.rsasecurity.com/}{\texttt{ D\+E\+SX algorithm}} using a 24-\/byte key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be encrypted \\
\hline
{\em key} & the encryption key must be at least 24 bytes long (only the first 24 bytes will be used) \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the encrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga84ccd6960923d20597f03062f8d41557}{desx\_encrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em D\+E\+S\+X-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+S\+X-\/\+K\+E\+Y-\/\+E\+R\+R\+OR} & invalid key (too short) \\
\hline
{\em E\+N\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error encrypting the data (should not normally happen)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{encrypt}}(\mbox{\hyperlink{group__crypto__transformations_ga87d409efe9ca4136e594c9d7f054c7d5}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+D\+E\+SX}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga3f51f2328c74b0e38201c14065f9fefe}\label{group__cryptographic__functions_ga3f51f2328c74b0e38201c14065f9fefe}} 
\index{Cryptographic Functions@{Cryptographic Functions}!rc2\_decrypt\_cbc@{rc2\_decrypt\_cbc}}
\index{rc2\_decrypt\_cbc@{rc2\_decrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{rc2\_decrypt\_cbc()}{rc2\_decrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::rc2\+\_\+decrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC2}{\texttt{ R\+C2(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/width decryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga3f51f2328c74b0e38201c14065f9fefe}{rc2\_decrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em R\+C2-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_ga5c88760095c4fd3d4306e69362d9e462}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+R\+C2}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga73e290020e74f3eea1857f52e0c39caa}\label{group__cryptographic__functions_ga73e290020e74f3eea1857f52e0c39caa}} 
\index{Cryptographic Functions@{Cryptographic Functions}!rc2\_decrypt\_cbc\_to\_string@{rc2\_decrypt\_cbc\_to\_string}}
\index{rc2\_decrypt\_cbc\_to\_string@{rc2\_decrypt\_cbc\_to\_string}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{rc2\_decrypt\_cbc\_to\_string()}{rc2\_decrypt\_cbc\_to\_string()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::rc2\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}},  }\item[{\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{encoding }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC2}{\texttt{ R\+C2(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/width decryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present \\
\hline
{\em encoding} & the character encoding tag for the string return value; if not present, the \mbox{\hyperlink{character_encoding_default_encoding}{default character encoding}} is assumed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{string str = \mbox{\hyperlink{group__cryptographic__functions_ga73e290020e74f3eea1857f52e0c39caa}{rc2\_decrypt\_cbc\_to\_string}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em R\+C2-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{decrypt\+\_\+to\+\_\+string}}(\mbox{\hyperlink{group__crypto__transformations_ga5c88760095c4fd3d4306e69362d9e462}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+R\+C2}}, data, key, iv, ...)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}}
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+4 added the encoding parameter to specify the output encoding of the string 
\end{DoxySince}
\mbox{\Hypertarget{group__cryptographic__functions_gaa953035cae6e362808a82b06f2a8672a}\label{group__cryptographic__functions_gaa953035cae6e362808a82b06f2a8672a}} 
\index{Cryptographic Functions@{Cryptographic Functions}!rc2\_encrypt\_cbc@{rc2\_encrypt\_cbc}}
\index{rc2\_encrypt\_cbc@{rc2\_encrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{rc2\_encrypt\_cbc()}{rc2\_encrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::rc2\+\_\+encrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC2}{\texttt{ R\+C2(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be encrypted \\
\hline
{\em key} & a variable-\/width encryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the encrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_gaa953035cae6e362808a82b06f2a8672a}{rc2\_encrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em R\+C2-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em E\+N\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error encrypting the data (should not normally happen)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{encrypt}}(\mbox{\hyperlink{group__crypto__transformations_ga5c88760095c4fd3d4306e69362d9e462}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+R\+C2}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_gad9cae47536e0e9d31c1a1117e5a914af}\label{group__cryptographic__functions_gad9cae47536e0e9d31c1a1117e5a914af}} 
\index{Cryptographic Functions@{Cryptographic Functions}!rc4\_decrypt@{rc4\_decrypt}}
\index{rc4\_decrypt@{rc4\_decrypt}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{rc4\_decrypt()}{rc4\_decrypt()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::rc4\+\_\+decrypt (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Decrypts data using the Alleged \href{http://en.wikipedia.org/wiki/RC4}{\texttt{ R\+C4 cipher algorithm}}, which should be compatible with R\+SA\textquotesingle{}s R\+C4(tm) algorithm using a variable-\/length key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/width decryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_gad9cae47536e0e9d31c1a1117e5a914af}{rc4\_decrypt}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em R\+C4-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item Equivalent to \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_ga99a646fac8a832add2cff0a957680289}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+R\+C4}}, data, key, iv)
\item This algorithm does not support (ignores) initialization vectors
\end{DoxyItemize}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga116c53f20d55fdebe1dd9d0b138d2216}\label{group__cryptographic__functions_ga116c53f20d55fdebe1dd9d0b138d2216}} 
\index{Cryptographic Functions@{Cryptographic Functions}!rc4\_decrypt\_to\_string@{rc4\_decrypt\_to\_string}}
\index{rc4\_decrypt\_to\_string@{rc4\_decrypt\_to\_string}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{rc4\_decrypt\_to\_string()}{rc4\_decrypt\_to\_string()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::rc4\+\_\+decrypt\+\_\+to\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}},  }\item[{\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{encoding }\end{DoxyParamCaption})}



Decrypts data using the Alleged \href{http://en.wikipedia.org/wiki/RC4}{\texttt{ R\+C4 cipher algorithm}}, which should be compatible with R\+SA\textquotesingle{}s R\+C4(tm) algorithm using a variable-\/length key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/width decryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present \\
\hline
{\em encoding} & the character encoding tag for the string return value; if not present, the \mbox{\hyperlink{character_encoding_default_encoding}{default character encoding}} is assumed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{string str = \mbox{\hyperlink{group__cryptographic__functions_ga116c53f20d55fdebe1dd9d0b138d2216}{rc4\_decrypt\_to\_string}}(encrypted\_data, key, NOTHING, \textcolor{stringliteral}{"iso-\/8859-\/1"});}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em R\+C4-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item Equivalent to \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{decrypt\+\_\+to\+\_\+string}}(\mbox{\hyperlink{group__crypto__transformations_ga99a646fac8a832add2cff0a957680289}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+R\+C4}}, data, key, iv)
\item This algorithm does not support (ignores) initialization vectors
\end{DoxyItemize}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}}
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+4 added the encoding parameter to specify the output encoding of the string 
\end{DoxySince}
\mbox{\Hypertarget{group__cryptographic__functions_gaa79e7a31db5a95f71e473843a091ea76}\label{group__cryptographic__functions_gaa79e7a31db5a95f71e473843a091ea76}} 
\index{Cryptographic Functions@{Cryptographic Functions}!rc4\_encrypt@{rc4\_encrypt}}
\index{rc4\_encrypt@{rc4\_encrypt}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{rc4\_encrypt()}{rc4\_encrypt()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::rc4\+\_\+encrypt (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Encrypts data using the Alleged \href{http://en.wikipedia.org/wiki/RC4}{\texttt{ R\+C4 cipher algorithm}}, which should be compatible with R\+SA\textquotesingle{}s R\+C4(tm) algorithm using a variable-\/length key and an optional 8-\/byte initialization vector. 

\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{DoxyParams}{Parameters}
{\em data} & the data to be encrypted \\
\hline
{\em key} & a variable-\/width encryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the encrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_gaa79e7a31db5a95f71e473843a091ea76}{rc4\_encrypt}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em R\+C4-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em E\+N\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error encrypting the data (should not normally happen)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}

\begin{DoxyItemize}
\item Equivalent to \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{encrypt}}(\mbox{\hyperlink{group__crypto__transformations_ga99a646fac8a832add2cff0a957680289}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+R\+C4}}, data, key, iv)
\item This algorithm does not support (ignores) initialization vectors
\end{DoxyItemize}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_gaa3ecd43966f7cc245fd51bfddcf2cec7}\label{group__cryptographic__functions_gaa3ecd43966f7cc245fd51bfddcf2cec7}} 
\index{Cryptographic Functions@{Cryptographic Functions}!rc5\_decrypt\_cbc@{rc5\_decrypt\_cbc}}
\index{rc5\_decrypt\_cbc@{rc5\_decrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{rc5\_decrypt\_cbc()}{rc5\_decrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::rc5\+\_\+decrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC5}{\texttt{ R\+C5(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. 

\begin{DoxyParagraph}{Platform Availability\+:}
\mbox{\hyperlink{group__option__constants_ga7c2cfaff4ede608873fa565ed23bc7ab}{Qore\+::\+Option\+::\+H\+A\+V\+E\+\_\+\+R\+C5}}
\end{DoxyParagraph}
\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/width decryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_ga3f51f2328c74b0e38201c14065f9fefe}{rc2\_decrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em R\+C5-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{decrypt\+\_\+to\+\_\+binary}}(\mbox{\hyperlink{group__crypto__transformations_gae9bcc35cfb5dc20aaf28434c852ee0ef}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+R\+C5}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__cryptographic__functions_ga03adf8b23a9540658a460eb2936da2fd}\label{group__cryptographic__functions_ga03adf8b23a9540658a460eb2936da2fd}} 
\index{Cryptographic Functions@{Cryptographic Functions}!rc5\_decrypt\_cbc\_to\_string@{rc5\_decrypt\_cbc\_to\_string}}
\index{rc5\_decrypt\_cbc\_to\_string@{rc5\_decrypt\_cbc\_to\_string}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{rc5\_decrypt\_cbc\_to\_string()}{rc5\_decrypt\_cbc\_to\_string()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} Qore\+::rc5\+\_\+decrypt\+\_\+cbc\+\_\+to\+\_\+string (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}}}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}},  }\item[{\+\_\+\+\_\+7\+\_\+ \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{encoding }\end{DoxyParamCaption})}



Decrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC5}{\texttt{ R\+C5(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. 

\begin{DoxyParagraph}{Platform Availability\+:}
\mbox{\hyperlink{group__option__constants_ga7c2cfaff4ede608873fa565ed23bc7ab}{Qore\+::\+Option\+::\+H\+A\+V\+E\+\_\+\+R\+C5}}
\end{DoxyParagraph}
\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{DoxyParams}{Parameters}
{\em data} & the data to be decrypted \\
\hline
{\em key} & a variable-\/width decryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present \\
\hline
{\em encoding} & the character encoding tag for the string return value; if not present, the \mbox{\hyperlink{character_encoding_default_encoding}{default character encoding}} is assumed\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a string of the decrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{string str = \mbox{\hyperlink{group__cryptographic__functions_ga73e290020e74f3eea1857f52e0c39caa}{rc2\_decrypt\_cbc\_to\_string}}(data, key, NOTHING, \textcolor{stringliteral}{"iso-\/8859-\/1"});}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em R\+C5-\/\+D\+E\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em D\+E\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error decrypting the data (for example invalid data)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{decrypt\+\_\+to\+\_\+string}}(\mbox{\hyperlink{group__crypto__transformations_gae9bcc35cfb5dc20aaf28434c852ee0ef}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+R\+C5}}, data, key, iv, ...)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}}
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+4 added the encoding parameter to specify the output encoding of the string 
\end{DoxySince}
\mbox{\Hypertarget{group__cryptographic__functions_ga8f3a6bc9fd77316d89fb41eaa225a9b9}\label{group__cryptographic__functions_ga8f3a6bc9fd77316d89fb41eaa225a9b9}} 
\index{Cryptographic Functions@{Cryptographic Functions}!rc5\_encrypt\_cbc@{rc5\_encrypt\_cbc}}
\index{rc5\_encrypt\_cbc@{rc5\_encrypt\_cbc}!Cryptographic Functions@{Cryptographic Functions}}
\doxysubsubsection{\texorpdfstring{rc5\_encrypt\_cbc()}{rc5\_encrypt\_cbc()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_gaf11c7f5c43ced1e9b95bd2270ee87ed9}{binary}} Qore\+::rc5\+\_\+encrypt\+\_\+cbc (\begin{DoxyParamCaption}\item[{data}]{data,  }\item[{data}]{key,  }\item[{data}]{iv = {\ttfamily \mbox{\hyperlink{group__cryptographic__constants_ga3e258a2c4d9e99eb43a97e7bf1dbe870}{Qore\+::\+Default\+IV}}} }\end{DoxyParamCaption})}



Encrypts data using the \href{http://en.wikipedia.org/wiki/Cipher_block_chaining\#Cipher-block_chaining_.28CBC.29}{\texttt{ Cipher Block Chaining}} function for R\+SA\textquotesingle{}s \href{http://en.wikipedia.org/wiki/RC5}{\texttt{ R\+C5(tm) algorithm}} using a variable-\/length key and an optional 8-\/byte initialization vector. 

\begin{DoxyParagraph}{Platform Availability\+:}
\mbox{\hyperlink{group__option__constants_ga7c2cfaff4ede608873fa565ed23bc7ab}{Qore\+::\+Option\+::\+H\+A\+V\+E\+\_\+\+R\+C5}}
\end{DoxyParagraph}
\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{DoxyParams}{Parameters}
{\em data} & the data to be encrypted \\
\hline
{\em key} & a variable-\/width encryption key \\
\hline
{\em iv} & the initialization vector must be at least 8 bytes long if present\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a binary value of the encrypted data
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{binary bin = \mbox{\hyperlink{group__cryptographic__functions_gaa953035cae6e362808a82b06f2a8672a}{rc2\_encrypt\_cbc}}(data, key);}
\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyExceptions}{Exceptions}
{\em R\+C5-\/\+E\+N\+C\+R\+Y\+P\+T-\/\+P\+A\+R\+A\+M-\/\+E\+R\+R\+OR} & invalid initialization vector (less than 8 bytes) \\
\hline
{\em E\+N\+C\+R\+Y\+P\+T-\/\+E\+R\+R\+OR} & processing error encrypting the data (should not normally happen)\\
\hline
\end{DoxyExceptions}
\begin{DoxyNote}{Note}
Equivalent to \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{encrypt}}(\mbox{\hyperlink{group__crypto__transformations_gae9bcc35cfb5dc20aaf28434c852ee0ef}{C\+R\+Y\+P\+T\+O\+\_\+\+A\+L\+G\+\_\+\+R\+C5}}, data, key, iv)
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
the following generic cryptographic A\+PI functions\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__hmac__functions_gad159aa97f0f07e827e74b4b9a12b92ca}{Qore\+::decrypt\+\_\+to\+\_\+binary()}}
\item \mbox{\hyperlink{group__hmac__functions_ga94bc9698c368c32987d7207096806df1}{Qore\+::decrypt\+\_\+to\+\_\+string()}}
\item \mbox{\hyperlink{group__hmac__functions_ga7141b56ffa6c5a4f8c9c58f788f33780}{Qore\+::encrypt()}}
\item \mbox{\hyperlink{group__hmac__functions_ga913932d6120f9ea1e3918168fb204976}{Qore\+::get\+\_\+decryptor()}}
\item \mbox{\hyperlink{group__hmac__functions_ga6e67ba0396d70cd012f7c46c7562b81f}{Qore\+::get\+\_\+encryptor()}} 
\end{DoxyItemize}
\end{DoxySeeAlso}
