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 Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div>
<div class="nav">
<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000002.html">enc</a> / <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 <xsec/enc/XSECCryptoKeyDSA.hpp></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 <wincrypt.h></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
<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>
|