1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>Qt Cryptographic Architecture: qca_basic.h Source File</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.4.6 -->
10
<li><a href="index.html"><span>Main Page</span></a></li>
11
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
12
<li><a href="annotated.html"><span>Classes</span></a></li>
13
<li id="current"><a href="files.html"><span>Files</span></a></li>
14
<li><a href="dirs.html"><span>Directories</span></a></li>
15
<li><a href="pages.html"><span>Related Pages</span></a></li>
16
<li><a href="examples.html"><span>Examples</span></a></li>
20
<li><a href="files.html"><span>File List</span></a></li>
21
<li><a href="globals.html"><span>File Members</span></a></li>
24
<a class="el" href="dir_31bb8fc1bcc0c3a059305c11a8e57902.html">include</a> » <a class="el" href="dir_4d15a096d49f5d63dcc84b28b5b30f72.html">QtCrypto</a></div>
25
<h1>qca_basic.h</h1><a href="qca__basic_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
26
<a name="l00002"></a>00002 <span class="comment"> * qca_basic.h - Qt Cryptographic Architecture</span>
27
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2003-2007 Justin Karneges <justin@affinix.com></span>
28
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2004-2006 Brad Hards <bradh@frogmouth.net></span>
29
<a name="l00005"></a>00005 <span class="comment"> *</span>
30
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
31
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
32
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
33
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
34
<a name="l00010"></a>00010 <span class="comment"> *</span>
35
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
36
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
37
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
38
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
39
<a name="l00015"></a>00015 <span class="comment"> *</span>
40
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
41
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
42
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA</span>
43
<a name="l00019"></a>00019 <span class="comment"> *</span>
44
<a name="l00020"></a>00020 <span class="comment"> */</span>
45
<a name="l00021"></a>00021
46
<a name="l00032"></a>00032 <span class="preprocessor">#ifndef QCA_BASIC_H</span>
47
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define QCA_BASIC_H</span>
48
<a name="l00034"></a>00034 <span class="preprocessor"></span>
49
<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="qca__core_8h.html">qca_core.h</a>"</span>
50
<a name="l00036"></a>00036
51
<a name="l00037"></a><a class="code" href="namespaceQCA.html">00037</a> <span class="keyword">namespace </span>QCA {
52
<a name="l00038"></a>00038
53
<a name="l00052"></a><a class="code" href="classQCA_1_1Random.html">00052</a> <span class="keyword">class </span>QCA_EXPORT Random : <span class="keyword">public</span> <a class="code" href="classQCA_1_1Algorithm.html">Algorithm</a>
54
<a name="l00053"></a>00053 {
55
<a name="l00054"></a>00054 <span class="keyword">public</span>:
56
<a name="l00061"></a>00061 Random(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &provider = <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>());
57
<a name="l00062"></a>00062
58
<a name="l00068"></a>00068 Random(<span class="keyword">const</span> Random &from);
59
<a name="l00069"></a>00069
60
<a name="l00070"></a>00070 ~Random();
61
<a name="l00071"></a>00071
62
<a name="l00077"></a>00077 Random & operator=(<span class="keyword">const</span> Random &from);
63
<a name="l00078"></a>00078
64
<a name="l00087"></a>00087 uchar nextByte();
65
<a name="l00088"></a>00088
66
<a name="l00099"></a>00099 <a class="code" href="classQCA_1_1SecureArray.html">SecureArray</a> nextBytes(<span class="keywordtype">int</span> size);
67
<a name="l00100"></a>00100
68
<a name="l00112"></a>00112 <span class="keyword">static</span> uchar randomChar();
69
<a name="l00113"></a>00113
70
<a name="l00123"></a>00123 <span class="keyword">static</span> <span class="keywordtype">int</span> randomInt();
71
<a name="l00124"></a>00124
72
<a name="l00135"></a>00135 <span class="keyword">static</span> <a class="code" href="classQCA_1_1SecureArray.html">SecureArray</a> randomArray(<span class="keywordtype">int</span> size);
73
<a name="l00136"></a>00136
74
<a name="l00137"></a>00137 <span class="keyword">private</span>:
75
<a name="l00138"></a>00138 <span class="keyword">class </span>Private;
76
<a name="l00139"></a>00139 Private *d;
77
<a name="l00140"></a>00140 };
78
<a name="l00141"></a>00141
79
<a name="l00191"></a><a class="code" href="classQCA_1_1Hash.html">00191</a> <span class="keyword">class </span>QCA_EXPORT Hash : <span class="keyword">public</span> <a class="code" href="classQCA_1_1Algorithm.html">Algorithm</a>, <span class="keyword">public</span> <a class="code" href="classQCA_1_1BufferedComputation.html">BufferedComputation</a>
80
<a name="l00192"></a>00192 {
81
<a name="l00193"></a>00193 <span class="keyword">public</span>:
82
<a name="l00202"></a>00202 <span class="keyword">explicit</span> Hash(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &type, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &provider = <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>());
83
<a name="l00208"></a>00208 Hash(<span class="keyword">const</span> Hash &from);
84
<a name="l00209"></a>00209
85
<a name="l00210"></a>00210 ~Hash();
86
<a name="l00211"></a>00211
87
<a name="l00217"></a>00217 Hash & operator=(<span class="keyword">const</span> Hash &from);
88
<a name="l00218"></a>00218
89
<a name="l00222"></a>00222 <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> type() <span class="keyword">const</span>;
90
<a name="l00223"></a>00223
91
<a name="l00234"></a>00234 <span class="keyword">virtual</span> <span class="keywordtype">void</span> clear();
92
<a name="l00235"></a>00235
93
<a name="l00247"></a>00247 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update(<span class="keyword">const</span> <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> &a);
94
<a name="l00248"></a>00248
95
<a name="l00254"></a>00254 <span class="keywordtype">void</span> update(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qbytearray.html">QByteArray</a> &a);
96
<a name="l00255"></a>00255
97
<a name="l00270"></a>00270 <span class="keywordtype">void</span> update(<span class="keyword">const</span> <span class="keywordtype">char</span> *data, <span class="keywordtype">int</span> len = -1);
98
<a name="l00271"></a>00271
99
<a name="l00294"></a>00294 <span class="keywordtype">void</span> update(<a class="codeRef" doxygen="qt.tag:" href="qiodevice.html">QIODevice</a> *file);
100
<a name="l00295"></a>00295
101
<a name="l00309"></a>00309 <span class="keyword">virtual</span> <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> <span class="keyword">final</span>();
102
<a name="l00310"></a>00310
103
<a name="l00331"></a>00331 <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> hash(<span class="keyword">const</span> <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> &array);
104
<a name="l00332"></a>00332
105
<a name="l00347"></a>00347 <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> hashToString(<span class="keyword">const</span> <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> &array);
106
<a name="l00348"></a>00348
107
<a name="l00349"></a>00349 <span class="keyword">private</span>:
108
<a name="l00350"></a>00350 <span class="keyword">class </span>Private;
109
<a name="l00351"></a>00351 Private *d;
110
<a name="l00352"></a>00352 };
111
<a name="l00353"></a>00353
112
<a name="l00525"></a><a class="code" href="classQCA_1_1Cipher.html">00525</a> <span class="keyword">class </span>QCA_EXPORT Cipher : <span class="keyword">public</span> <a class="code" href="classQCA_1_1Algorithm.html">Algorithm</a>, <span class="keyword">public</span> <a class="code" href="classQCA_1_1Filter.html">Filter</a>
113
<a name="l00526"></a>00526 {
114
<a name="l00527"></a>00527 <span class="keyword">public</span>:
115
<a name="l00531"></a><a class="code" href="classQCA_1_1Cipher.html#55df34874dc7565d7de238d2d742d66b">00531</a> <span class="keyword">enum</span> <a class="code" href="classQCA_1_1Cipher.html#55df34874dc7565d7de238d2d742d66b">Mode</a>
116
<a name="l00532"></a>00532 {
117
<a name="l00533"></a>00533 CBC,
118
<a name="l00534"></a>00534 CFB,
119
<a name="l00535"></a>00535 ECB,
120
<a name="l00536"></a><a class="code" href="classQCA_1_1Cipher.html#55df34874dc7565d7de238d2d742d66b3cf1ddcbb9543e64c9b70bdf75d2da20">00536</a> OFB
121
<a name="l00537"></a>00537 };
122
<a name="l00538"></a>00538
123
<a name="l00542"></a><a class="code" href="classQCA_1_1Cipher.html#eafc444370fbd6d1457580da2f00c52b">00542</a> <span class="keyword">enum</span> <a class="code" href="classQCA_1_1Cipher.html#eafc444370fbd6d1457580da2f00c52b">Padding</a>
124
<a name="l00543"></a>00543 {
125
<a name="l00544"></a>00544 DefaultPadding,
126
<a name="l00545"></a>00545 NoPadding,
127
<a name="l00546"></a><a class="code" href="classQCA_1_1Cipher.html#eafc444370fbd6d1457580da2f00c52bef40f7173d895c7ae1a32625cd3eef3b">00546</a> PKCS7
128
<a name="l00547"></a>00547 };
129
<a name="l00548"></a>00548
130
<a name="l00565"></a>00565 Cipher(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &type, Mode mode, Padding pad = DefaultPadding,
131
<a name="l00566"></a>00566 <a class="code" href="namespaceQCA.html#8e5d1994b00ea69c9a598f93cd0990ce">Direction</a> dir = <a class="code" href="namespaceQCA.html#8e5d1994b00ea69c9a598f93cd0990ce7d1fca4b5ac95d3b9422a305814c067a">Encode</a>, <span class="keyword">const</span> <a class="code" href="classQCA_1_1SymmetricKey.html">SymmetricKey</a> &key = <a class="code" href="classQCA_1_1SymmetricKey.html">SymmetricKey</a>(),
132
<a name="l00567"></a>00567 <span class="keyword">const</span> <a class="code" href="classQCA_1_1InitializationVector.html">InitializationVector</a> &iv = <a class="code" href="classQCA_1_1InitializationVector.html">InitializationVector</a>(),
133
<a name="l00568"></a>00568 <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &provider = <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>());
134
<a name="l00569"></a>00569
135
<a name="l00573"></a>00573 Cipher(<span class="keyword">const</span> Cipher &from);
136
<a name="l00574"></a>00574 ~Cipher();
137
<a name="l00575"></a>00575
138
<a name="l00581"></a>00581 Cipher & operator=(<span class="keyword">const</span> Cipher &from);
139
<a name="l00582"></a>00582
140
<a name="l00586"></a>00586 <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> type() <span class="keyword">const</span>;
141
<a name="l00587"></a>00587
142
<a name="l00591"></a>00591 Mode mode() <span class="keyword">const</span>;
143
<a name="l00592"></a>00592
144
<a name="l00596"></a>00596 Padding padding() <span class="keyword">const</span>;
145
<a name="l00597"></a>00597
146
<a name="l00601"></a>00601 <a class="code" href="namespaceQCA.html#8e5d1994b00ea69c9a598f93cd0990ce">Direction</a> direction() <span class="keyword">const</span>;
147
<a name="l00602"></a>00602
148
<a name="l00606"></a>00606 <a class="code" href="classQCA_1_1KeyLength.html">KeyLength</a> keyLength() <span class="keyword">const</span>;
149
<a name="l00607"></a>00607
150
<a name="l00614"></a>00614 <span class="keywordtype">bool</span> validKeyLength(<span class="keywordtype">int</span> n) <span class="keyword">const</span>;
151
<a name="l00615"></a>00615
152
<a name="l00619"></a>00619 <span class="keywordtype">int</span> blockSize() <span class="keyword">const</span>;
153
<a name="l00620"></a>00620
154
<a name="l00624"></a>00624 <span class="keyword">virtual</span> <span class="keywordtype">void</span> clear();
155
<a name="l00625"></a>00625
156
<a name="l00633"></a>00633 <span class="keyword">virtual</span> <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> update(<span class="keyword">const</span> <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> &a);
157
<a name="l00634"></a>00634
158
<a name="l00639"></a>00639 <span class="keyword">virtual</span> <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> <span class="keyword">final</span>();
159
<a name="l00640"></a>00640
160
<a name="l00646"></a>00646 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ok() <span class="keyword">const</span>;
161
<a name="l00647"></a>00647
162
<a name="l00659"></a>00659 <span class="keywordtype">void</span> setup(<a class="code" href="namespaceQCA.html#8e5d1994b00ea69c9a598f93cd0990ce">Direction</a> dir, <span class="keyword">const</span> <a class="code" href="classQCA_1_1SymmetricKey.html">SymmetricKey</a> &key, <span class="keyword">const</span> <a class="code" href="classQCA_1_1InitializationVector.html">InitializationVector</a> &iv = <a class="code" href="classQCA_1_1InitializationVector.html">InitializationVector</a>());
163
<a name="l00660"></a>00660
164
<a name="l00670"></a>00670 <span class="keyword">static</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> withAlgorithms(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &cipherType, Mode modeType, Padding paddingType);
165
<a name="l00671"></a>00671
166
<a name="l00672"></a>00672 <span class="keyword">private</span>:
167
<a name="l00673"></a>00673 <span class="keyword">class </span>Private;
168
<a name="l00674"></a>00674 Private *d;
169
<a name="l00675"></a>00675 };
170
<a name="l00676"></a>00676
171
<a name="l00695"></a><a class="code" href="classQCA_1_1MessageAuthenticationCode.html">00695</a> <span class="keyword">class </span>QCA_EXPORT MessageAuthenticationCode : <span class="keyword">public</span> <a class="code" href="classQCA_1_1Algorithm.html">Algorithm</a>, <span class="keyword">public</span> <a class="code" href="classQCA_1_1BufferedComputation.html">BufferedComputation</a>
172
<a name="l00696"></a>00696 {
173
<a name="l00697"></a>00697 <span class="keyword">public</span>:
174
<a name="l00707"></a>00707 MessageAuthenticationCode(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &type, <span class="keyword">const</span> <a class="code" href="classQCA_1_1SymmetricKey.html">SymmetricKey</a> &key, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &provider = <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>());
175
<a name="l00708"></a>00708
176
<a name="l00712"></a>00712 MessageAuthenticationCode(<span class="keyword">const</span> MessageAuthenticationCode &from);
177
<a name="l00713"></a>00713
178
<a name="l00714"></a>00714 ~MessageAuthenticationCode();
179
<a name="l00715"></a>00715
180
<a name="l00722"></a>00722 MessageAuthenticationCode & operator=(<span class="keyword">const</span> MessageAuthenticationCode &from);
181
<a name="l00723"></a>00723
182
<a name="l00727"></a>00727 <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> type() <span class="keyword">const</span>;
183
<a name="l00728"></a>00728
184
<a name="l00732"></a>00732 <a class="code" href="classQCA_1_1KeyLength.html">KeyLength</a> keyLength() <span class="keyword">const</span>;
185
<a name="l00733"></a>00733
186
<a name="l00740"></a>00740 <span class="keywordtype">bool</span> validKeyLength(<span class="keywordtype">int</span> n) <span class="keyword">const</span>;
187
<a name="l00741"></a>00741
188
<a name="l00754"></a>00754 <span class="keyword">virtual</span> <span class="keywordtype">void</span> clear();
189
<a name="l00755"></a>00755
190
<a name="l00763"></a>00763 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update(<span class="keyword">const</span> <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> &array);
191
<a name="l00764"></a>00764
192
<a name="l00776"></a>00776 <span class="keyword">virtual</span> <a class="code" href="classQCA_1_1MemoryRegion.html">MemoryRegion</a> <span class="keyword">final</span>();
193
<a name="l00777"></a>00777
194
<a name="l00783"></a>00783 <span class="keywordtype">void</span> setup(<span class="keyword">const</span> <a class="code" href="classQCA_1_1SymmetricKey.html">SymmetricKey</a> &key);
195
<a name="l00784"></a>00784
196
<a name="l00785"></a>00785 <span class="keyword">private</span>:
197
<a name="l00786"></a>00786 <span class="keyword">class </span>Private;
198
<a name="l00787"></a>00787 Private *d;
199
<a name="l00788"></a>00788 };
200
<a name="l00789"></a>00789
201
<a name="l00801"></a><a class="code" href="classQCA_1_1KeyDerivationFunction.html">00801</a> <span class="keyword">class </span>QCA_EXPORT KeyDerivationFunction : <span class="keyword">public</span> <a class="code" href="classQCA_1_1Algorithm.html">Algorithm</a>
202
<a name="l00802"></a>00802 {
203
<a name="l00803"></a>00803 <span class="keyword">public</span>:
204
<a name="l00807"></a>00807 KeyDerivationFunction(<span class="keyword">const</span> KeyDerivationFunction &from);
205
<a name="l00808"></a>00808 ~KeyDerivationFunction();
206
<a name="l00809"></a>00809
207
<a name="l00816"></a>00816 KeyDerivationFunction & operator=(<span class="keyword">const</span> KeyDerivationFunction &from);
208
<a name="l00817"></a>00817
209
<a name="l00830"></a>00830 <a class="code" href="classQCA_1_1SymmetricKey.html">SymmetricKey</a> makeKey(<span class="keyword">const</span> <a class="code" href="classQCA_1_1SecureArray.html">SecureArray</a> &secret, <span class="keyword">const</span> <a class="code" href="classQCA_1_1InitializationVector.html">InitializationVector</a> &salt, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> keyLength, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> iterationCount);
210
<a name="l00831"></a>00831
211
<a name="l00839"></a>00839 <span class="keyword">static</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> withAlgorithm(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &kdfType, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &algType);
212
<a name="l00840"></a>00840
213
<a name="l00841"></a>00841 <span class="keyword">protected</span>:
214
<a name="l00845"></a>00845 KeyDerivationFunction(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &type, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &provider);
215
<a name="l00846"></a>00846
216
<a name="l00847"></a>00847 <span class="keyword">private</span>:
217
<a name="l00848"></a>00848 <span class="keyword">class </span>Private;
218
<a name="l00849"></a>00849 Private *d;
219
<a name="l00850"></a>00850 };
220
<a name="l00851"></a>00851
221
<a name="l00860"></a><a class="code" href="classQCA_1_1PBKDF1.html">00860</a> <span class="keyword">class </span>QCA_EXPORT PBKDF1 : <span class="keyword">public</span> KeyDerivationFunction
222
<a name="l00861"></a>00861 {
223
<a name="l00862"></a>00862 <span class="keyword">public</span>:
224
<a name="l00869"></a><a class="code" href="classQCA_1_1PBKDF1.html#883582087ec6c749aa1eb4908078ee3f">00869</a> <span class="keyword">explicit</span> PBKDF1(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &algorithm = <span class="stringliteral">"sha1"</span>, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &provider = <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>()) : KeyDerivationFunction(withAlgorithm(<span class="stringliteral">"pbkdf1"</span>, algorithm), provider) {}
225
<a name="l00870"></a>00870 };
226
<a name="l00871"></a>00871
227
<a name="l00880"></a><a class="code" href="classQCA_1_1PBKDF2.html">00880</a> <span class="keyword">class </span>QCA_EXPORT PBKDF2 : <span class="keyword">public</span> KeyDerivationFunction
228
<a name="l00881"></a>00881 {
229
<a name="l00882"></a>00882 <span class="keyword">public</span>:
230
<a name="l00889"></a><a class="code" href="classQCA_1_1PBKDF2.html#9eacafc382edf0739125d5957149d237">00889</a> <span class="keyword">explicit</span> PBKDF2(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &algorithm = <span class="stringliteral">"sha1"</span>, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> &provider = <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>()) : KeyDerivationFunction(withAlgorithm(<span class="stringliteral">"pbkdf2"</span>, algorithm), provider) {}
231
<a name="l00890"></a>00890 };
232
<a name="l00891"></a>00891
233
<a name="l00892"></a>00892 }
234
<a name="l00893"></a>00893
235
<a name="l00894"></a>00894 <span class="preprocessor">#endif</span>
236
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Jul 6 13:22:42 2007 for Qt Cryptographic Architecture by
237
<a href="http://www.doxygen.org/index.html">
238
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>