1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3
4<head>
5<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
6<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 7.0.0.0 for Windows">
7<META http-equiv="Content-Style-Type" content="text/css">
8<title>CRYPTO_RC4Encrypt</title>
9<LINK rel="stylesheet" href="../../css/nitro.css" type="text/css">
10</head>
11
12<body>
13
14<h1 align="left">CRYPTO_RC4Encrypt <IMG src="../../image/NTR.gif" width="23" height="12" border="0" align="middle"><IMG src="../../image/TWL.gif" width="23" height="12" border="0" align="middle"></h1>
15<h2>Syntax</h2>
16
17<dl>
18  <dd>
19  <pre><CODE>#include &lt;nitro/crypto.h&gt;
20
21void CRYPTO_RC4Encrypt(<a href="CRYPTORC4Context.html">CRYPTORC4Context</a>* context, const void* in, u32 length, void* out);
22</CODE></pre>
23</dd>
24</dl>
25
26<h2>Arguments</h2>
27<TABLE border="1" width="100%" class="arguments">
28  <TBODY>
29    <TR>
30<TH>context</TH>
31<TD><A href="CRYPTO_RC4Context.html"><CODE>CRYPTORC4Context</CODE></A> structure, whose key has already been configured by the <A href="CRYPTO_RC4Init.html"><CODE>CRYPTO_RC4Init</CODE></A> function.</TD>
32    </TR>
33    <TR>
34<TH>in</TH>
35<TD>Pointer to the target data to encrypt/decrypt with the RC4 algorithm.</TD>
36    </TR>
37    <TR>
38<TH>length</TH>
39<TD>Length of the data specified by <SPAN class="argument">in</SPAN>.</TD>
40    </TR>
41    <TR>
42<TH>out</TH>
43<TD>Pointer to where the results of the encryption/decryption are stored.</TD>
44    </TR>
45  </TBODY>
46</TABLE>
47
48<h2>Return Values</h2>
49<p>
50None.
51</p>
52
53<H2>Description</H2>
54<P>
55Performs encryption/decryption using the RC4 shared key encryption algorithm.<BR>The same function is used for both encryption and decryption in the RC4 algorithm.<BR>Data stored in <SPAN class="argument">in</SPAN> is processed, while the converted results are written to <SPAN class="argument">out</SPAN>. You can specify the same pointer for <SPAN class="argument">in</SPAN> and <SPAN class="argument">out</SPAN>, thereby overwriting them.
56</p>
57<P>
58The <CODE>CRYPTO_RC4*</CODE> and <CODE>CRYPTO_RC4Fast*</CODE> functions are the same except that the <CODE>CRYPTO_RC4Fast*</CODE> functions are faster and require more stack memory. The <CODE>CRYPTORC4Context</CODE> structure used by the <CODE>CRYPTO_RC4*</CODE> functions is 260 bytes, and the <CODE>CRYPTORC4FastContext</CODE> structure used by the <code>CRYPTO_RC4Fast*</code> functions is 1032 bytes.<BR>With regard to speed, the <a href="CRYPTO_RC4FastEncrypt.html"><CODE>CRYPTO_RC4FastEncrypt</CODE></a> function processes data at approximately 1.5 times the normal processing speed when the data is sufficiently large. However, the difference in speed is caused by assigning the same pointer for in and out. If different pointers are assigned, there is almost no speed difference between the <CODE>CRYPTO_RC4Encrypt</CODE> and <a href="CRYPTO_RC4FastEncrypt.html">CRYPTO_RC4FastEncrypt</a></code> functions.<BR>
59</P>
60<P>
61For detailed information on using the RC4 algorithm, see <A href="../overview/about_RC4.html">Overview of Encryption Using RC4 Algorithm</A>.
62</P>
63
64<h2>See Also</h2>
65<p><A href="CRYPTO_RC4.html"><CODE>CRYPTO_RC4</CODE></A><BR> <A href="CRYPTO_RC4Init.html"><CODE>CRYPTO_RC4Init</CODE></A></p>
66
67<H2>Revision History</H2>
68<P>
692008/02/25 Initial version.
70</P>
71<hr><p>CONFIDENTIAL</p></body>
72</html>
73