File: WinCAPICryptoKeyDSA_8hpp-source.html

package info (click to toggle)
xml-security-c 1.2.1-3
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 24,464 kB
  • ctags: 6,673
  • sloc: cpp: 36,830; xml: 23,415; sh: 2,365; makefile: 340; perl: 221
file content (136 lines) | stat: -rw-r--r-- 11,364 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>XML-Security-C: WinCAPICryptoKeyDSA.hpp Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.2 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<div class="nav">
<a class="el" href="dir_000000.html">src</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">enc</a>&nbsp;/&nbsp;<a class="el" href="dir_000005.html">WinCAPI</a></div>
<h1>WinCAPICryptoKeyDSA.hpp</h1><a href="WinCAPICryptoKeyDSA_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/*</span>
00002 <span class="comment"> * Copyright 2002-2005 The Apache Software Foundation.</span>
00003 <span class="comment"> *</span>
00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
00005 <span class="comment"> * you may not use this file except in compliance with the License.</span>
00006 <span class="comment"> * You may obtain a copy of the License at</span>
00007 <span class="comment"> *</span>
00008 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
00009 <span class="comment"> *</span>
00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
00011 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
00013 <span class="comment"> * See the License for the specific language governing permissions and</span>
00014 <span class="comment"> * limitations under the License.</span>
00015 <span class="comment"> */</span>
00016 
00017 <span class="comment">/*</span>
00018 <span class="comment"> * XSEC</span>
00019 <span class="comment"> *</span>
00020 <span class="comment"> * WinCAPICryptoKeyDSA := DSA Keys</span>
00021 <span class="comment"> *</span>
00022 <span class="comment"> * Author(s): Berin Lautenbach</span>
00023 <span class="comment"> *</span>
00024 <span class="comment"> * $Id: WinCAPICryptoKeyDSA.hpp,v 1.9 2005/06/04 11:30:26 blautenb Exp $</span>
00025 <span class="comment"> *</span>
00026 <span class="comment"> */</span>
00027 
00028 <span class="preprocessor">#ifndef WINCAPICRYPTOKEYDSA_INCLUDE</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define WINCAPICRYPTOKEYDSA_INCLUDE</span>
00030 <span class="preprocessor"></span>
00031 <span class="preprocessor">#include &lt;xsec/enc/XSECCryptoKeyDSA.hpp&gt;</span>
00032 
00033 <span class="preprocessor">#if !defined(_WIN32_WINNT)</span>
<a name="l00034"></a><a class="code" href="WinCAPICryptoKeyDSA_8hpp.html#a0">00034</a> <span class="preprocessor"></span><span class="preprocessor">#   define _WIN32_WINNT 0x0400</span>
00035 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00036 <span class="preprocessor"></span>
00037 <span class="preprocessor">#include &lt;wincrypt.h&gt;</span>
00038 
00039 <span class="keyword">class </span><a class="code" href="classWinCAPICryptoProvider.html">WinCAPICryptoProvider</a>;
00040 
<a name="l00052"></a><a class="code" href="classWinCAPICryptoKeyDSA.html">00052</a> <span class="keyword">class </span><a class="code" href="XSECDefs_8hpp.html#a9">DSIG_EXPORT</a> <a class="code" href="classWinCAPICryptoKeyDSA.html">WinCAPICryptoKeyDSA</a> : <span class="keyword">public</span> <a class="code" href="classXSECCryptoKeyDSA.html">XSECCryptoKeyDSA</a> {
00053 
00054 <span class="keyword">public</span> :
00055 
00058     
00070     <a class="code" href="classWinCAPICryptoKeyDSA.html">WinCAPICryptoKeyDSA</a>(HCRYPTPROV prov);
00071     
00072     <span class="keyword">virtual</span> ~<a class="code" href="classWinCAPICryptoKeyDSA.html">WinCAPICryptoKeyDSA</a>();
00073 
00086     <a class="code" href="classWinCAPICryptoKeyDSA.html">WinCAPICryptoKeyDSA</a>(HCRYPTPROV prov, HCRYPTKEY k);
00087 
00101     <a class="code" href="classWinCAPICryptoKeyDSA.html">WinCAPICryptoKeyDSA</a>(HCRYPTPROV prov, DWORD keySpec, <span class="keywordtype">bool</span> isPrivate);
00102 
00104 
00107 
00115     <span class="keyword">virtual</span> <a class="code" href="classXSECCryptoKey.html#w9">XSECCryptoKey::KeyType</a> <a class="code" href="classXSECCryptoKeyDSA.html#z160_0">getKeyType</a>();
00116 
<a name="l00121"></a><a class="code" href="classWinCAPICryptoKeyDSA.html#z121_1">00121</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> XMLCh * <a class="code" href="classXSECCryptoKey.html#z158_1">getProviderName</a>() {<span class="keywordflow">return</span> <a class="code" href="classDSIGConstants.html#s42">DSIGConstants::s_unicodeStrPROVWinCAPI</a>;}
00122     
00127     <span class="keyword">virtual</span> <a class="code" href="classXSECCryptoKey.html">XSECCryptoKey</a> * <a class="code" href="classXSECCryptoKeyDSA.html#z160_1">clone</a>();
00128 
00130 
00133 
00148     <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classXSECCryptoKeyDSA.html#z161_1">signBase64Signature</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * hashBuf,
00149                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> hashLen,
00150                         <span class="keywordtype">char</span> * base64SignatureBuf,
00151                         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> base64SignatureBufLen);
00152 
00165     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classXSECCryptoKeyDSA.html#z161_0">verifyBase64Signature</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * hashBuf, 
00166                          <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> hashLen,
00167                          <span class="keywordtype">char</span> * base64Signature,
00168                          <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sigLen);
00169 
00171 
00179 
00187     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classXSECCryptoKeyDSA.html#z162_0">loadPBase64BigNums</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * b64, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
00188 
00196     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classXSECCryptoKeyDSA.html#z162_1">loadQBase64BigNums</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * b64, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
00197 
00205     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classXSECCryptoKeyDSA.html#z162_2">loadGBase64BigNums</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * b64, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
00206     
00214     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classXSECCryptoKeyDSA.html#z162_3">loadYBase64BigNums</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * b64, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
00215     
00223     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classXSECCryptoKeyDSA.html#z162_4">loadJBase64BigNums</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * b64, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
00224 
00226 
00229 
00238     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getPBase64BigNums(<span class="keywordtype">char</span> * b64, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
00239 
00248     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getQBase64BigNums(<span class="keywordtype">char</span> * b64, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
00249 
00258     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getGBase64BigNums(<span class="keywordtype">char</span> * b64, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
00259 
00268     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getYBase64BigNums(<span class="keywordtype">char</span> * b64, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len);
00269 
00271 
00272 <span class="keyword">private</span>:
00273 
00274     HCRYPTPROV                  m_p;
00275     HCRYPTKEY                   m_key;      <span class="comment">// For a public key</span>
00276     DWORD                       m_keySpec;  <span class="comment">// For a private key</span>
00277 
00278     BYTE                        * mp_P;
00279     BYTE                        * mp_Q;
00280     BYTE                        * mp_G;
00281     BYTE                        * mp_Y;
00282 
00283     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                m_PLen;
00284     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                m_QLen;
00285     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                m_GLen;
00286     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                m_YLen;
00287 
00288     <span class="comment">// Instruct to import from parameters</span>
00289 
00290     <span class="keywordtype">void</span> importKey(<span class="keywordtype">void</span>);
00291     <span class="keywordtype">void</span> loadParamsFromKey(<span class="keywordtype">void</span>);
00292 
00293     <span class="comment">// No default constructor</span>
00294     <a class="code" href="classWinCAPICryptoKeyDSA.html">WinCAPICryptoKeyDSA</a>();
00295 };
00296 
00297 <span class="preprocessor">#endif </span><span class="comment">/* WINCAPICRYPTOKEYDSA_INCLUDE */</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Jul 3 17:37:26 2005 for XML-Security-C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.2 </small></address>
</body>
</html>