OpenCores
URL https://opencores.org/ocsvn/avs_aes/avs_aes/trunk

Subversion Repositories avs_aes

[/] [avs_aes/] [trunk/] [doc/] [sw/] [html/] [avs__aes_8h.html] - Blame information for rev 21

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 11 ruschi
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
3
<head>
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 21 ruschi
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
<meta name="generator" content="Doxygen 1.8.4"/>
7 11 ruschi
<title>AES Avalon Slave (avs_aes): avs_aes.h File Reference</title>
8
<link href="tabs.css" rel="stylesheet" type="text/css"/>
9 21 ruschi
<script type="text/javascript" src="jquery.js"></script>
10
<script type="text/javascript" src="dynsections.js"></script>
11
<link href="navtree.css" rel="stylesheet" type="text/css"/>
12
<script type="text/javascript" src="resize.js"></script>
13
<script type="text/javascript" src="navtree.js"></script>
14
<script type="text/javascript">
15
  $(document).ready(initResizable);
16
  $(window).load(resizeHeight);
17
</script>
18
<link href="doxygen.css" rel="stylesheet" type="text/css" />
19 11 ruschi
</head>
20
<body>
21 21 ruschi
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
22
<div id="titlearea">
23
<table cellspacing="0" cellpadding="0">
24
 <tbody>
25
 <tr style="height: 56px;">
26
  <td style="padding-left: 0.5em;">
27
   <div id="projectname">AES Avalon Slave (avs_aes)
28
   </div>
29
  </td>
30
 </tr>
31
 </tbody>
32
</table>
33
</div>
34
<!-- end header part -->
35
<!-- Generated by Doxygen 1.8.4 -->
36
  <div id="navrow1" class="tabs">
37
    <ul class="tablist">
38
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
39
      <li><a href="modules.html"><span>Modules</span></a></li>
40
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
41 11 ruschi
      <li class="current"><a href="files.html"><span>Files</span></a></li>
42
    </ul>
43
  </div>
44 21 ruschi
  <div id="navrow2" class="tabs2">
45
    <ul class="tablist">
46
      <li><a href="files.html"><span>File&#160;List</span></a></li>
47 11 ruschi
      <li><a href="globals.html"><span>Globals</span></a></li>
48
    </ul>
49
  </div>
50 21 ruschi
</div><!-- top -->
51
<div id="side-nav" class="ui-resizable side-nav-resizable">
52
  <div id="nav-tree">
53
    <div id="nav-tree-contents">
54
      <div id="nav-sync" class="sync"></div>
55
    </div>
56
  </div>
57
  <div id="splitbar" style="-moz-user-select:none;"
58
       class="ui-resizable-handle">
59
  </div>
60 11 ruschi
</div>
61 21 ruschi
<script type="text/javascript">
62
$(document).ready(function(){initNavTree('avs__aes_8h.html','');});
63
</script>
64
<div id="doc-content">
65
<div class="header">
66
  <div class="summary">
67
<a href="#nested-classes">Data Structures</a> &#124;
68
<a href="#define-members">Macros</a> &#124;
69
<a href="#func-members">Functions</a>  </div>
70
  <div class="headertitle">
71
<div class="title">avs_aes.h File Reference</div>  </div>
72
</div><!--header-->
73 11 ruschi
<div class="contents">
74 21 ruschi
 
75 11 ruschi
<p>header file for AES Avalon IP Core software driver offers interfaces to convinient access to the core
76 21 ruschi
<a href="#details">More...</a></p>
77
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
78
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> This graph shows which files directly or indirectly include this file:</div>
79
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
80 11 ruschi
</div>
81 21 ruschi
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
82
<div class="center"><img src="avs__aes_8h__dep__incl.png" border="0" usemap="#avs__aes_8hdep" alt=""/></div>
83
<map name="avs__aes_8hdep" id="avs__aes_8hdep">
84
<area shape="rect" id="node3" href="AEStester_8c.html" title="test program and example of how to use the software " alt="" coords="5,83,96,111"/><area shape="rect" id="node5" href="avs__aes_8c.html" title="AES Avalon IP Core software driver. " alt="" coords="120,83,197,111"/></map>
85
</div>
86
</div>
87 11 ruschi
<p><a href="avs__aes_8h_source.html">Go to the source code of this file.</a></p>
88 21 ruschi
<table class="memberdecls">
89
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
90
Data Structures</h2></td></tr>
91
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structavs__aes__handle.html">avs_aes_handle</a></td></tr>
92
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">object storing addresses for this Avalon AES slave might be useful in case there are more attached, also for convinience  <a href="structavs__aes__handle.html#details">More...</a><br/></td></tr>
93
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
94
</table><table class="memberdecls">
95
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
96
Macros</h2></td></tr>
97
<tr class="memitem:a40ac9fbe108b0ea74f57215528f13196"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="avs__aes_8h.html#a40ac9fbe108b0ea74f57215528f13196">KEYWORDS</a>&#160;&#160;&#160;8</td></tr>
98
<tr class="memdesc:a40ac9fbe108b0ea74f57215528f13196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Keylength 256 Bit AES.  <a href="#a40ac9fbe108b0ea74f57215528f13196">More...</a><br/></td></tr>
99
<tr class="separator:a40ac9fbe108b0ea74f57215528f13196"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
<tr class="memitem:aa93e16f5419a2515d4ebbd5368e9a8c5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="avs__aes_8h.html#aa93e16f5419a2515d4ebbd5368e9a8c5">AES_BASEADDR</a>&#160;&#160;&#160;0x40000</td></tr>
101
<tr class="memdesc:aa93e16f5419a2515d4ebbd5368e9a8c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">base address of the Avalon Slave component in memory map  <a href="#aa93e16f5419a2515d4ebbd5368e9a8c5">More...</a><br/></td></tr>
102
<tr class="separator:aa93e16f5419a2515d4ebbd5368e9a8c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
103
<tr class="memitem:gaf27449032ce353aa329edd80cd2759a5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__control-register.html#gaf27449032ce353aa329edd80cd2759a5">KEY_VALID</a>&#160;&#160;&#160;(1 &lt;&lt; 7)</td></tr>
104
<tr class="memdesc:gaf27449032ce353aa329edd80cd2759a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal load of new key valid.  <a href="group__control-register.html#gaf27449032ce353aa329edd80cd2759a5">More...</a><br/></td></tr>
105
<tr class="separator:gaf27449032ce353aa329edd80cd2759a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
<tr class="memitem:gab062bac21e942042e0e9a0b5c8bc6c04"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__control-register.html#gab062bac21e942042e0e9a0b5c8bc6c04">IRQ_ENA</a>&#160;&#160;&#160;(1 &lt;&lt; 6)</td></tr>
107
<tr class="memdesc:gab062bac21e942042e0e9a0b5c8bc6c04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable interrupt bit.  <a href="group__control-register.html#gab062bac21e942042e0e9a0b5c8bc6c04">More...</a><br/></td></tr>
108
<tr class="separator:gab062bac21e942042e0e9a0b5c8bc6c04"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
<tr class="memitem:ga36fab47015485191712a579a059a7c20"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__control-register.html#ga36fab47015485191712a579a059a7c20">DECRYPT</a>&#160;&#160;&#160;(1 &lt;&lt; 1)</td></tr>
110
<tr class="memdesc:ga36fab47015485191712a579a059a7c20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start decryption bit.  <a href="group__control-register.html#ga36fab47015485191712a579a059a7c20">More...</a><br/></td></tr>
111
<tr class="separator:ga36fab47015485191712a579a059a7c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
112
<tr class="memitem:ga1cb0c60ca582db30ae87362ca43e8c19"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__control-register.html#ga1cb0c60ca582db30ae87362ca43e8c19">ENCRYPT</a>&#160;&#160;&#160;(1 &lt;&lt; 0)</td></tr>
113
<tr class="memdesc:ga1cb0c60ca582db30ae87362ca43e8c19"><td class="mdescLeft">&#160;</td><td class="mdescRight">start encryption bit  <a href="group__control-register.html#ga1cb0c60ca582db30ae87362ca43e8c19">More...</a><br/></td></tr>
114
<tr class="separator:ga1cb0c60ca582db30ae87362ca43e8c19"><td class="memSeparator" colspan="2">&#160;</td></tr>
115
</table><table class="memberdecls">
116
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
117
Functions</h2></td></tr>
118
<tr class="memitem:a962dd946798faab0e83d401c7d43c33c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="avs__aes_8h.html#a962dd946798faab0e83d401c7d43c33c">avs_aes_init</a> (<a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *context)</td></tr>
119
<tr class="memdesc:a962dd946798faab0e83d401c7d43c33c"><td class="mdescLeft">&#160;</td><td class="mdescRight">setup the context to be used later.  <a href="#a962dd946798faab0e83d401c7d43c33c">More...</a><br/></td></tr>
120
<tr class="separator:a962dd946798faab0e83d401c7d43c33c"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
<tr class="memitem:af18edc2beecc3842a131423f55c7636a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="avs__aes_8h.html#af18edc2beecc3842a131423f55c7636a">avs_aes_setKey</a> (<a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *context, unsigned int *key)</td></tr>
122
<tr class="memdesc:af18edc2beecc3842a131423f55c7636a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a new key This call asserts the KEY_VALID flag and triggers the key-expansion in the core.  <a href="#af18edc2beecc3842a131423f55c7636a">More...</a><br/></td></tr>
123
<tr class="separator:af18edc2beecc3842a131423f55c7636a"><td class="memSeparator" colspan="2">&#160;</td></tr>
124
<tr class="memitem:a22f9afae76f645e31b514b5aa4df2cc1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="avs__aes_8h.html#a22f9afae76f645e31b514b5aa4df2cc1">avs_aes_setPayload</a> (<a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *context, unsigned int *payload)</td></tr>
125
<tr class="memdesc:a22f9afae76f645e31b514b5aa4df2cc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">loads payload for processing to the core basically memcopy...  <a href="#a22f9afae76f645e31b514b5aa4df2cc1">More...</a><br/></td></tr>
126
<tr class="separator:a22f9afae76f645e31b514b5aa4df2cc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
127
<tr class="memitem:a55f078baaf019797ab6de7ea1a02475f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="avs__aes_8h.html#a55f078baaf019797ab6de7ea1a02475f">avs_aes_setKeyvalid</a> (<a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *context)</td></tr>
128
<tr class="memdesc:a55f078baaf019797ab6de7ea1a02475f"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the KEY_VALID flag in the control word used to signal the completion of writing the key ( <a class="el" href="avs__aes_8h.html#af18edc2beecc3842a131423f55c7636a">avs_aes_setKey</a> )  <a href="#a55f078baaf019797ab6de7ea1a02475f">More...</a><br/></td></tr>
129
<tr class="separator:a55f078baaf019797ab6de7ea1a02475f"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
<tr class="memitem:acea23b2ab998f18b9aca810765632cac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="avs__aes_8h.html#acea23b2ab998f18b9aca810765632cac">avs_aes_encrypt</a> (<a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *context)</td></tr>
131
<tr class="memdesc:acea23b2ab998f18b9aca810765632cac"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the ENCRYPT flag in the control word start encryption of (hopefully) previously loaded payload  <a href="#acea23b2ab998f18b9aca810765632cac">More...</a><br/></td></tr>
132
<tr class="separator:acea23b2ab998f18b9aca810765632cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
133
<tr class="memitem:aef16b7ecbb1b091934a9c670ce3b2fcf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="avs__aes_8h.html#aef16b7ecbb1b091934a9c670ce3b2fcf">avs_aes_decrypt</a> (<a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *context)</td></tr>
134
<tr class="memdesc:aef16b7ecbb1b091934a9c670ce3b2fcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the DECRYPT flag in the control word start encryption of (hopefully) previously loaded payload  <a href="#aef16b7ecbb1b091934a9c670ce3b2fcf">More...</a><br/></td></tr>
135
<tr class="separator:aef16b7ecbb1b091934a9c670ce3b2fcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
136
<tr class="memitem:a827a78f73dd8fef9d2c9e72ad9bb4ea9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="avs__aes_8h.html#a827a78f73dd8fef9d2c9e72ad9bb4ea9">avs_aes_isBusy</a> (<a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *context)</td></tr>
137
<tr class="memdesc:a827a78f73dd8fef9d2c9e72ad9bb4ea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">checks the COMPLETED flag can be used for ugly polling the slave if IRQs are not used  <a href="#a827a78f73dd8fef9d2c9e72ad9bb4ea9">More...</a><br/></td></tr>
138
<tr class="separator:a827a78f73dd8fef9d2c9e72ad9bb4ea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
139 11 ruschi
</table>
140 21 ruschi
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
141
<div class="textblock"><p>header file for AES Avalon IP Core software driver offers interfaces to convinient access to the core </p>
142 11 ruschi
<p>This file is part of the project avs_aes see: <a href="http://opencores.org/project,avs_aes">http://opencores.org/project,avs_aes</a></p>
143 21 ruschi
<h1><a class="anchor" id="AUTHORS"></a>
144
AUTHORS</h1>
145
<p>Thomas Ruschival &ndash; <a href="#" onclick="location.href='mai'+'lto:'+'rus'+'ch'+'i@o'+'pe'+'nco'+'re'+'s.o'+'rg'; return false;">rusch<span style="display: none;">.nosp@m.</span>i@op<span style="display: none;">.nosp@m.</span>encor<span style="display: none;">.nosp@m.</span>es.o<span style="display: none;">.nosp@m.</span>rg</a> (www.ruschival.de)</p>
146
<h1><a class="anchor" id="LICENSE"></a>
147
LICENSE</h1>
148 11 ruschi
<p>Copyright (c) 2009, Authors and opencores.org All rights reserved.</p>
149 21 ruschi
<p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</p>
150
<ul>
151
<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>
152
<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>
153
<li>Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE </li>
154
</ul>
155 11 ruschi
 
156
<p>Definition in file <a class="el" href="avs__aes_8h_source.html">avs_aes.h</a>.</p>
157 21 ruschi
</div><h2 class="groupheader">Macro Definition Documentation</h2>
158
<a class="anchor" id="aa93e16f5419a2515d4ebbd5368e9a8c5"></a>
159 11 ruschi
<div class="memitem">
160
<div class="memproto">
161
      <table class="memname">
162
        <tr>
163 21 ruschi
          <td class="memname">#define AES_BASEADDR&#160;&#160;&#160;0x40000</td>
164 11 ruschi
        </tr>
165
      </table>
166 21 ruschi
</div><div class="memdoc">
167 11 ruschi
 
168
<p>base address of the Avalon Slave component in memory map </p>
169
 
170 21 ruschi
<p>Definition at line <a class="el" href="avs__aes_8h_source.html#l00059">59</a> of file <a class="el" href="avs__aes_8h_source.html">avs_aes.h</a>.</p>
171 11 ruschi
 
172
</div>
173
</div>
174 21 ruschi
<a class="anchor" id="a40ac9fbe108b0ea74f57215528f13196"></a>
175 11 ruschi
<div class="memitem">
176
<div class="memproto">
177
      <table class="memname">
178
        <tr>
179 21 ruschi
          <td class="memname">#define KEYWORDS&#160;&#160;&#160;8</td>
180 11 ruschi
        </tr>
181
      </table>
182 21 ruschi
</div><div class="memdoc">
183 11 ruschi
 
184
<p>Keylength 256 Bit AES. </p>
185 21 ruschi
<h1><a class="anchor" id="Configuration"></a>
186
Configuration</h1>
187 11 ruschi
<p>Configuration items for the Avalon Slave component change them or define them elsewhere </p>
188
 
189 21 ruschi
<p>Definition at line <a class="el" href="avs__aes_8h_source.html#l00052">52</a> of file <a class="el" href="avs__aes_8h_source.html">avs_aes.h</a>.</p>
190 11 ruschi
 
191
</div>
192
</div>
193 21 ruschi
<h2 class="groupheader">Function Documentation</h2>
194
<a class="anchor" id="aef16b7ecbb1b091934a9c670ce3b2fcf"></a>
195 11 ruschi
<div class="memitem">
196
<div class="memproto">
197
      <table class="memname">
198
        <tr>
199
          <td class="memname">void avs_aes_decrypt </td>
200
          <td>(</td>
201 21 ruschi
          <td class="paramtype"><a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *&#160;</td>
202
          <td class="paramname"><em>context</em>)</td><td></td>
203 11 ruschi
          <td></td>
204
        </tr>
205
      </table>
206 21 ruschi
</div><div class="memdoc">
207 11 ruschi
 
208
<p>set the DECRYPT flag in the control word start encryption of (hopefully) previously loaded payload </p>
209 21 ruschi
<dl class="params"><dt>Parameters</dt><dd>
210
  <table class="params">
211
    <tr><td class="paramname">context</td><td>struct grouping address information </td></tr>
212 11 ruschi
  </table>
213
  </dd>
214
</dl>
215
 
216 21 ruschi
<p>Definition at line <a class="el" href="avs__aes_8c_source.html#l00098">98</a> of file <a class="el" href="avs__aes_8c_source.html">avs_aes.c</a>.</p>
217
<div class="fragment"><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                                              {</div>
218
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    *(context-&gt;<a class="code" href="structavs__aes__handle.html#a15143869a0c8bfcacc8e1839e4e789c9" title="pointer to control word ">control</a>) |= <a class="code" href="group__control-register.html#ga36fab47015485191712a579a059a7c20" title="Start decryption bit. ">DECRYPT</a>;</div>
219
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keyword">asm</span> __volatile(<span class="stringliteral">&quot;sync&quot;</span> :::);</div>
220
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;}</div>
221
</div><!-- fragment -->
222 11 ruschi
</div>
223
</div>
224 21 ruschi
<a class="anchor" id="acea23b2ab998f18b9aca810765632cac"></a>
225 11 ruschi
<div class="memitem">
226
<div class="memproto">
227
      <table class="memname">
228
        <tr>
229
          <td class="memname">void avs_aes_encrypt </td>
230
          <td>(</td>
231 21 ruschi
          <td class="paramtype"><a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *&#160;</td>
232
          <td class="paramname"><em>context</em>)</td><td></td>
233 11 ruschi
          <td></td>
234
        </tr>
235
      </table>
236 21 ruschi
</div><div class="memdoc">
237 11 ruschi
 
238
<p>set the ENCRYPT flag in the control word start encryption of (hopefully) previously loaded payload </p>
239 21 ruschi
<dl class="params"><dt>Parameters</dt><dd>
240
  <table class="params">
241
    <tr><td class="paramname">context</td><td>struct grouping address information </td></tr>
242 11 ruschi
  </table>
243
  </dd>
244
</dl>
245
 
246 21 ruschi
<p>Definition at line <a class="el" href="avs__aes_8c_source.html#l00092">92</a> of file <a class="el" href="avs__aes_8c_source.html">avs_aes.c</a>.</p>
247
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                                             {</div>
248
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    *(context-&gt;<a class="code" href="structavs__aes__handle.html#a15143869a0c8bfcacc8e1839e4e789c9" title="pointer to control word ">control</a>) |= <a class="code" href="group__control-register.html#ga1cb0c60ca582db30ae87362ca43e8c19" title="start encryption bit ">ENCRYPT</a>;</div>
249
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keyword">asm</span> __volatile(<span class="stringliteral">&quot;sync&quot;</span> :::);</div>
250
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;}</div>
251
</div><!-- fragment -->
252 11 ruschi
</div>
253
</div>
254 21 ruschi
<a class="anchor" id="a962dd946798faab0e83d401c7d43c33c"></a>
255 11 ruschi
<div class="memitem">
256
<div class="memproto">
257
      <table class="memname">
258
        <tr>
259
          <td class="memname">void avs_aes_init </td>
260
          <td>(</td>
261 21 ruschi
          <td class="paramtype"><a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *&#160;</td>
262
          <td class="paramname"><em>context</em>)</td><td></td>
263 11 ruschi
          <td></td>
264
        </tr>
265
      </table>
266 21 ruschi
</div><div class="memdoc">
267 11 ruschi
 
268
<p>setup the context to be used later. </p>
269 21 ruschi
<h1><a class="anchor" id="functions"></a>
270
functions</h1>
271 11 ruschi
<p>initializes the pointers to the correct memory locations </p>
272 21 ruschi
<dl class="params"><dt>Parameters</dt><dd>
273
  <table class="params">
274
    <tr><td class="paramname">context</td><td>: struct grouping address information </td></tr>
275 11 ruschi
  </table>
276
  </dd>
277
</dl>
278
 
279 21 ruschi
<p>Definition at line <a class="el" href="avs__aes_8c_source.html#l00053">53</a> of file <a class="el" href="avs__aes_8c_source.html">avs_aes.c</a>.</p>
280
<div class="fragment"><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                                          {</div>
281
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    context-&gt;<a class="code" href="structavs__aes__handle.html#acb9eb474c8310afe4b082b79914f274c" title="pointer to key field in memory mapping ">key</a>    = (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*) <a class="code" href="avs__aes_8c.html#aac9313626ecf492e39b0f4add66e370d" title="memory offset for key DON&#39;T CHANGE! ">KEY_ADDR</a>;</div>
282
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    context-&gt;<a class="code" href="structavs__aes__handle.html#adae23dc33b7dec54b9da34f347256214" title="pointer to data field in memory mapping used for both decryption and encryption ">payload</a>= (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*) <a class="code" href="avs__aes_8c.html#a994843be3758f70aa91454a9ddfacb19" title="memory offset of payload ">DATA_ADDR</a>;</div>
283
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    context-&gt;<a class="code" href="structavs__aes__handle.html#ae0ad9e7bde68d07c018a299a0cda66af" title="pointer to result field in memory mapping ">result</a> = (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*) <a class="code" href="avs__aes_8c.html#a192250a419c33c4ff96948f692a44254" title="memory offset of result ">RESULT_ADDR</a>;</div>
284
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    context-&gt;<a class="code" href="structavs__aes__handle.html#a15143869a0c8bfcacc8e1839e4e789c9" title="pointer to control word ">control</a>    = (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*) <a class="code" href="avs__aes_8c.html#a30e81662ebaec8c1b8a283c42e88df36" title="memory offset for control word ">AESCTRLWD</a>;</div>
285
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    *(context-&gt;<a class="code" href="structavs__aes__handle.html#a15143869a0c8bfcacc8e1839e4e789c9" title="pointer to control word ">control</a>) = 0x00000000;</div>
286
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;}</div>
287
</div><!-- fragment -->
288 11 ruschi
</div>
289
</div>
290 21 ruschi
<a class="anchor" id="a827a78f73dd8fef9d2c9e72ad9bb4ea9"></a>
291 11 ruschi
<div class="memitem">
292
<div class="memproto">
293
      <table class="memname">
294
        <tr>
295
          <td class="memname">int avs_aes_isBusy </td>
296
          <td>(</td>
297 21 ruschi
          <td class="paramtype"><a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *&#160;</td>
298
          <td class="paramname"><em>context</em>)</td><td></td>
299 11 ruschi
          <td></td>
300
        </tr>
301
      </table>
302 21 ruschi
</div><div class="memdoc">
303 11 ruschi
 
304
<p>checks the COMPLETED flag can be used for ugly polling the slave if IRQs are not used </p>
305 21 ruschi
<dl class="params"><dt>Parameters</dt><dd>
306
  <table class="params">
307
    <tr><td class="paramname">context</td><td>struct grouping address information </td></tr>
308 11 ruschi
  </table>
309
  </dd>
310
</dl>
311 21 ruschi
<dl class="section return"><dt>Returns</dt><dd>1 if still computing 0 if done. </dd></dl>
312 11 ruschi
 
313 21 ruschi
<p>Definition at line <a class="el" href="avs__aes_8c_source.html#l00104">104</a> of file <a class="el" href="avs__aes_8c_source.html">avs_aes.c</a>.</p>
314
<div class="fragment"><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;                                            {</div>
315
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mycontrol = *(context-&gt;<a class="code" href="structavs__aes__handle.html#a15143869a0c8bfcacc8e1839e4e789c9" title="pointer to control word ">control</a>);   </div>
316
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordflow">return</span> mycontrol &amp; (<a class="code" href="group__control-register.html#ga36fab47015485191712a579a059a7c20" title="Start decryption bit. ">DECRYPT</a> | <a class="code" href="group__control-register.html#ga1cb0c60ca582db30ae87362ca43e8c19" title="start encryption bit ">ENCRYPT</a>);</div>
317
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;}</div>
318
</div><!-- fragment -->
319 11 ruschi
</div>
320
</div>
321 21 ruschi
<a class="anchor" id="af18edc2beecc3842a131423f55c7636a"></a>
322 11 ruschi
<div class="memitem">
323
<div class="memproto">
324
      <table class="memname">
325
        <tr>
326
          <td class="memname">void avs_aes_setKey </td>
327
          <td>(</td>
328 21 ruschi
          <td class="paramtype"><a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *&#160;</td>
329
          <td class="paramname"><em>context</em>, </td>
330 11 ruschi
        </tr>
331
        <tr>
332
          <td class="paramkey"></td>
333
          <td></td>
334 21 ruschi
          <td class="paramtype">unsigned int *&#160;</td>
335
          <td class="paramname"><em>key</em>&#160;</td>
336 11 ruschi
        </tr>
337
        <tr>
338
          <td></td>
339
          <td>)</td>
340 21 ruschi
          <td></td><td></td>
341 11 ruschi
        </tr>
342
      </table>
343 21 ruschi
</div><div class="memdoc">
344 11 ruschi
 
345 21 ruschi
<p>Set a new key This call asserts the KEY_VALID flag and triggers the key-expansion in the core. </p>
346
<dl class="params"><dt>Parameters</dt><dd>
347
  <table class="params">
348
    <tr><td class="paramname">context</td><td>struct grouping address information </td></tr>
349
    <tr><td class="paramname">key</td><td>user key to load </td></tr>
350 11 ruschi
  </table>
351
  </dd>
352
</dl>
353
 
354
<p>Definition at line <a class="el" href="avs__aes_8c_source.html#l00062">62</a> of file <a class="el" href="avs__aes_8c_source.html">avs_aes.c</a>.</p>
355 21 ruschi
<div class="fragment"><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                                                               {</div>
356
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordtype">int</span> i=0;</div>
357
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* target_ptr = (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* )context-&gt;<a class="code" href="structavs__aes__handle.html#acb9eb474c8310afe4b082b79914f274c" title="pointer to key field in memory mapping ">key</a>;</div>
358
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="comment">/* Invalidate old key; */</span></div>
359
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    *(context-&gt;<a class="code" href="structavs__aes__handle.html#a15143869a0c8bfcacc8e1839e4e789c9" title="pointer to control word ">control</a>) &amp;= (~<a class="code" href="group__control-register.html#gaf27449032ce353aa329edd80cd2759a5" title="Signal load of new key valid. ">KEY_VALID</a>);</div>
360
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">asm</span> __volatile(<span class="stringliteral">&quot;sync&quot;</span> :::);</div>
361
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keywordflow">for</span>(i=0; i&lt;<a class="code" href="avs__aes_8h.html#a40ac9fbe108b0ea74f57215528f13196" title="Keylength 256 Bit AES. ">KEYWORDS</a>; i++){</div>
362
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        *(target_ptr++) = *(key++);</div>
363
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    }</div>
364
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keyword">asm</span> __volatile(<span class="stringliteral">&quot;sync&quot;</span> :::);</div>
365
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="comment">/* validate key */</span></div>
366
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    *(context-&gt;<a class="code" href="structavs__aes__handle.html#a15143869a0c8bfcacc8e1839e4e789c9" title="pointer to control word ">control</a>) |= <a class="code" href="group__control-register.html#gaf27449032ce353aa329edd80cd2759a5" title="Signal load of new key valid. ">KEY_VALID</a>;</div>
367
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;}</div>
368
</div><!-- fragment -->
369 11 ruschi
</div>
370
</div>
371 21 ruschi
<a class="anchor" id="a55f078baaf019797ab6de7ea1a02475f"></a>
372 11 ruschi
<div class="memitem">
373
<div class="memproto">
374
      <table class="memname">
375
        <tr>
376
          <td class="memname">void avs_aes_setKeyvalid </td>
377
          <td>(</td>
378 21 ruschi
          <td class="paramtype"><a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *&#160;</td>
379
          <td class="paramname"><em>context</em>)</td><td></td>
380 11 ruschi
          <td></td>
381
        </tr>
382
      </table>
383 21 ruschi
</div><div class="memdoc">
384 11 ruschi
 
385
<p>set the KEY_VALID flag in the control word used to signal the completion of writing the key ( <a class="el" href="avs__aes_8h.html#af18edc2beecc3842a131423f55c7636a">avs_aes_setKey</a> ) </p>
386 21 ruschi
<dl class="params"><dt>Parameters</dt><dd>
387
  <table class="params">
388
    <tr><td class="paramname">context</td><td>struct grouping address information </td></tr>
389 11 ruschi
  </table>
390
  </dd>
391
</dl>
392
 
393 21 ruschi
<p>Definition at line <a class="el" href="avs__aes_8c_source.html#l00086">86</a> of file <a class="el" href="avs__aes_8c_source.html">avs_aes.c</a>.</p>
394
<div class="fragment"><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                                                 {</div>
395
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    *(context-&gt;<a class="code" href="structavs__aes__handle.html#a15143869a0c8bfcacc8e1839e4e789c9" title="pointer to control word ">control</a>) |= <a class="code" href="group__control-register.html#gaf27449032ce353aa329edd80cd2759a5" title="Signal load of new key valid. ">KEY_VALID</a>;</div>
396
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keyword">asm</span> __volatile(<span class="stringliteral">&quot;sync&quot;</span> :::);</div>
397
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;}</div>
398
</div><!-- fragment -->
399 11 ruschi
</div>
400
</div>
401 21 ruschi
<a class="anchor" id="a22f9afae76f645e31b514b5aa4df2cc1"></a>
402 11 ruschi
<div class="memitem">
403
<div class="memproto">
404
      <table class="memname">
405
        <tr>
406
          <td class="memname">void avs_aes_setPayload </td>
407
          <td>(</td>
408 21 ruschi
          <td class="paramtype"><a class="el" href="structavs__aes__handle.html">avs_aes_handle</a> *&#160;</td>
409
          <td class="paramname"><em>context</em>, </td>
410 11 ruschi
        </tr>
411
        <tr>
412
          <td class="paramkey"></td>
413
          <td></td>
414 21 ruschi
          <td class="paramtype">unsigned int *&#160;</td>
415
          <td class="paramname"><em>payload</em>&#160;</td>
416 11 ruschi
        </tr>
417
        <tr>
418
          <td></td>
419
          <td>)</td>
420 21 ruschi
          <td></td><td></td>
421 11 ruschi
        </tr>
422
      </table>
423 21 ruschi
</div><div class="memdoc">
424 11 ruschi
 
425 21 ruschi
<p>loads payload for processing to the core basically memcopy... </p>
426
<dl class="params"><dt>Parameters</dt><dd>
427
  <table class="params">
428
    <tr><td class="paramname">context</td><td>struct grouping address information </td></tr>
429
    <tr><td class="paramname">payload</td><td>user data to be processed </td></tr>
430 11 ruschi
  </table>
431
  </dd>
432
</dl>
433
 
434 21 ruschi
<p>Definition at line <a class="el" href="avs__aes_8c_source.html#l00077">77</a> of file <a class="el" href="avs__aes_8c_source.html">avs_aes.c</a>.</p>
435
<div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;                                                                       {</div>
436
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordtype">int</span> i=0;</div>
437
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* target_ptr = (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* )context-&gt;<a class="code" href="structavs__aes__handle.html#adae23dc33b7dec54b9da34f347256214" title="pointer to data field in memory mapping used for both decryption and encryption ">payload</a>;</div>
438
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordflow">for</span>(i=0; i&lt;4; i++){</div>
439
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        *(target_ptr++) = *(payload++);</div>
440
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    }   </div>
441
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;}</div>
442
</div><!-- fragment -->
443 11 ruschi
</div>
444
</div>
445 21 ruschi
</div><!-- contents -->
446
</div><!-- doc-content -->
447
<!-- start footer part -->
448
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
449
  <ul>
450
    <li class="navelem"><a class="el" href="avs__aes_8h.html">avs_aes.h</a></li>
451
    <li class="footer">Generated on Sat Apr 19 2014 17:55:55 for AES Avalon Slave (avs_aes) by
452
    <a href="http://www.doxygen.org/index.html">
453
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.4 </li>
454
  </ul>
455 11 ruschi
</div>
456
</body>
457
</html>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.