Subversion Repositories Applications.framework

Rev

Rev 300 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
297 jpm 1
<html>
2
<head>
3
<title>Docs For Class DiffieHellmanUtil</title>
4
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
5
<link rel="stylesheet" type="text/css" href="../media/style.css">
6
</head>
7
<body>
8
 
9
<table border="0" cellspacing="0" cellpadding="0" height="48" width="100%">
10
  <tr>
11
    <td class="header_top">Framework</td>
12
  </tr>
13
  <tr><td class="header_line"><img src="../media/empty.png" width="1" height="1" border="0" alt=""  /></td></tr>
14
  <tr>
15
    <td class="header_menu">
16
 
17
 
18
                                                                      		  [ <a href="../classtrees_Framework.html" class="menu">class tree: Framework</a> ]
19
		  [ <a href="../elementindex_Framework.html" class="menu">index: Framework</a> ]
20
		  	    [ <a href="../elementindex.html" class="menu">all elements</a> ]
21
    </td>
22
  </tr>
23
  <tr><td class="header_line"><img src="../media/empty.png" width="1" height="1" border="0" alt=""  /></td></tr>
24
</table>
25
 
26
<table width="100%" border="0" cellpadding="0" cellspacing="0">
27
  <tr valign="top">
28
    <td width="200" class="menu">
29
	<div id="todolist">
30
			<p><a href="../todolist.html">Todo List</a></p>
31
	</div>
32
      <b>Packages:</b><br />
33
              <a href="../li_Framework.html">Framework</a><br />
34
              <a href="../li_Utilitaire.html">Utilitaire</a><br />
35
              <a href="../li_Zend_OpenId.html">Zend_OpenId</a><br />
36
            <br /><br />
37
                        <b>Files:</b><br />
38
      	  <div class="package">
39
			<a href="../Framework/_Bdd.php.html">		Bdd.php
40
		</a><br>
41
			<a href="../Framework/_Cache.php.html">		Cache.php
42
		</a><br>
43
			<a href="../Framework/_CacheFichier.php.html">		CacheFichier.php
44
		</a><br>
45
			<a href="../Framework/_CacheSimple.php.html">		CacheSimple.php
46
		</a><br>
47
			<a href="../Framework/_CacheSqlite.php.html">		CacheSqlite.php
48
		</a><br>
49
			<a href="../Framework/_Chronometre.php.html">		Chronometre.php
50
		</a><br>
51
			<a href="../Framework/_Cli.php.html">		Cli.php
52
		</a><br>
53
			<a href="../Framework/_Config.php.html">		Config.php
54
		</a><br>
55
			<a href="../Framework/_Controleur.php.html">		Controleur.php
56
		</a><br>
57
			<a href="../Framework/_Debug.php.html">		Debug.php
58
		</a><br>
59
			<a href="../Framework/_utilitaires---DiffieHellmanUtil.php.html">		DiffieHellmanUtil.php
60
		</a><br>
61
			<a href="../Framework/_Framework.php.html">		Framework.php
62
		</a><br>
63
			<a href="../Framework/_GestionnaireException.php.html">		GestionnaireException.php
64
		</a><br>
65
			<a href="../Framework/_I18n.php.html">		I18n.php
66
		</a><br>
67
			<a href="../Framework/_Log.php.html">		Log.php
68
		</a><br>
69
			<a href="../Framework/_OpenIdClient.php.html">		OpenIdClient.php
70
		</a><br>
71
			<a href="../Framework/_Registre.php.html">		Registre.php
72
		</a><br>
73
			<a href="../Framework/_RestClient.php.html">		RestClient.php
74
		</a><br>
75
			<a href="../Framework/_RestServeur.php.html">		RestServeur.php
76
		</a><br>
77
			<a href="../Framework/_RestService.php.html">		RestService.php
78
		</a><br>
79
			<a href="../Framework/_Script.php.html">		Script.php
80
		</a><br>
81
			<a href="../Framework/_SquelettePhp.php.html">		SquelettePhp.php
82
		</a><br>
83
			<a href="../Framework/_Url.php.html">		Url.php
84
		</a><br>
85
	  </div><br />
86
 
87
 
88
            <b>Classes:</b><br />
89
        <div class="package">
90
		    		<a href="../Framework/Bdd.html">Bdd</a><br />
91
	    		<a href="../Framework/Cache.html">Cache</a><br />
92
	    		<a href="../Framework/CacheFichier.html">CacheFichier</a><br />
93
	    		<a href="../Framework/CacheSimple.html">CacheSimple</a><br />
94
	    		<a href="../Framework/CacheSqlite.html">CacheSqlite</a><br />
95
	    		<a href="../Framework/Chronometre.html">Chronometre</a><br />
96
	    		<a href="../Framework/Cli.html">Cli</a><br />
97
	    		<a href="../Framework/Config.html">Config</a><br />
98
	    		<a href="../Framework/Controleur.html">Controleur</a><br />
99
	    		<a href="../Framework/Debug.html">Debug</a><br />
100
	    		<a href="../Framework/DiffieHellmanUtil.html">DiffieHellmanUtil</a><br />
101
	    		<a href="../Framework/Framework.html">Framework</a><br />
102
	    		<a href="../Framework/GestionnaireException.html">GestionnaireException</a><br />
103
	    		<a href="../Framework/I18n.html">I18n</a><br />
104
	    		<a href="../Framework/Log.html">Log</a><br />
105
	    		<a href="../Framework/OpenIdClient.html">OpenIdClient</a><br />
106
	    		<a href="../Framework/Registre.html">Registre</a><br />
107
	    		<a href="../Framework/RestClient.html">RestClient</a><br />
108
	    		<a href="../Framework/RestServeur.html">RestServeur</a><br />
109
	    		<a href="../Framework/RestService.html">RestService</a><br />
110
	    		<a href="../Framework/Script.html">Script</a><br />
111
	    		<a href="../Framework/SquelettePhp.html">SquelettePhp</a><br />
112
	    		<a href="../Framework/Url.html">Url</a><br />
113
	  </div>
114
                </td>
115
    <td>
116
      <table cellpadding="10" cellspacing="0" width="100%" border="0"><tr><td valign="top">
117
 
118
<h1>Class: DiffieHellmanUtil</h1>
119
Source Location: /utilitaires/DiffieHellmanUtil.php<br /><br />
120
 
121
 
122
<table width="100%" border="0">
123
<tr><td valign="top">
124
 
125
<h3><a href="#class_details">Class Overview</a></h3>
126
<pre></pre><br />
127
<div class="description">Classe utilitaire proposant des fonctions permettant la réalisation d'un  échange de clé Diffie Hellman</div><br /><br />
128
 
129
 
130
 
131
 
132
 
133
 
134
 
135
</td>
136
 
137
 
138
<td valign="top">
139
<h3><a href="#class_consts">Constants</a></h3>
140
<ul>
141
    <li><a href="../Framework/DiffieHellmanUtil.html#constDH_G">DH_G</a></li>
142
    <li><a href="../Framework/DiffieHellmanUtil.html#constDH_P">DH_P</a></li>
143
  </ul>
144
</td>
145
 
146
<td valign="top">
147
<h3><a href="#class_methods">Methods</a></h3>
148
<ul>
149
    <li><a href="../Framework/DiffieHellmanUtil.html#methodbinToBigNum">binToBigNum</a></li>
150
    <li><a href="../Framework/DiffieHellmanUtil.html#methodbtwoc">btwoc</a></li>
151
    <li><a href="../Framework/DiffieHellmanUtil.html#methodcomputeDhSecret">computeDhSecret</a></li>
152
    <li><a href="../Framework/DiffieHellmanUtil.html#methodcreateDhKey">createDhKey</a></li>
153
    <li><a href="../Framework/DiffieHellmanUtil.html#methodgetDhKeyDetails">getDhKeyDetails</a></li>
154
    <li><a href="../Framework/DiffieHellmanUtil.html#methodrandomBytes">randomBytes</a></li>
155
    <li><a href="../Framework/DiffieHellmanUtil.html#methodstrlen">strlen</a></li>
156
  </ul>
157
</td>
158
 
159
</tr></table>
160
<hr />
161
 
162
<table width="100%" border="0"><tr>
163
 
164
 
165
 
166
 
167
 
168
 
169
</tr></table>
170
<hr />
171
 
172
<a name="class_details"></a>
173
<h3>Class Details</h3>
174
<div class="tags">
175
[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a17">17</a>]<br />
176
Classe utilitaire proposant des fonctions permettant la réalisation d'un  échange de clé Diffie Hellman<br /><br /><p>&quot;En cryptographie, l'échange de clés Diffie-Hellman, du nom de ses auteurs   Whitfield Diffie et Martin Hellman, est une méthode par laquelle deux   personnes peuvent se mettre d'accord sur un nombre (qu'ils peuvent utiliser   comme clé pour chiffrer la conversation suivante) sans qu'une troisième   personne appelée Ève puisse découvrir le nombre, même en ayant écouté tous   leurs échanges.&quot;</p><p>Voir http://fr.wikipedia.org/wiki/%C3%89change_de_cl%C3%A9s_Diffie-Hellman</p><br /></div><br /><br />
177
<div class="top">[ <a href="#top">Top</a> ]</div><br />
178
 
179
 
180
<hr />
181
<a name="class_methods"></a>
182
<h3>Class Methods</h3>
183
<div class="tags">
184
  <hr />
185
	<a name="methodcreateDhKey"></a>
186
	<h3>static method createDhKey <span class="smalllinenumber">[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a40">40</a>]</span></h3>
187
	<div class="function">
188
    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
189
    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
190
		<code>static mixed createDhKey(
191
string
192
$p, string
193
$g, [string
194
$priv_key = null])</code>
195
    </td></tr></table>
196
    </td></tr></table><br />
197
 
198
		Performs the first step of a Diffie-Hellman key exchange by generating<br /><br /><p>private and public DH values based on given prime number $p and  generator $g. Both sides of key exchange MUST have the same prime number  and generator. In this case they will able to create a random shared  secret that is never send from one to the other.</p><br /><br /><br />
199
<h4>Tags:</h4>
200
<div class="tags">
201
<table border="0" cellspacing="0" cellpadding="0">
202
  <tr>
203
    <td><b>access:</b>&nbsp;&nbsp;</td><td>public</td>
204
  </tr>
205
</table>
206
</div>
207
<br /><br />
208
 
209
 
210
        <h4>Parameters:</h4>
211
    <div class="tags">
212
    <table border="0" cellspacing="0" cellpadding="0">
213
          <tr>
214
        <td class="type">string&nbsp;&nbsp;</td>
215
        <td><b>$p</b>&nbsp;&nbsp;</td>
216
        <td>prime number in binary representation</td>
217
      </tr>
218
          <tr>
219
        <td class="type">string&nbsp;&nbsp;</td>
220
        <td><b>$g</b>&nbsp;&nbsp;</td>
221
        <td>generator in binary representation</td>
222
      </tr>
223
          <tr>
224
        <td class="type">string&nbsp;&nbsp;</td>
225
        <td><b>$priv_key</b>&nbsp;&nbsp;</td>
226
        <td>private key in binary representation</td>
227
      </tr>
228
        </table>
229
    </div><br />
230
        <div class="top">[ <a href="#top">Top</a> ]</div>
231
  </div>
232
  <hr />
233
	<a name="methodgetDhKeyDetails"></a>
234
	<h3>static method getDhKeyDetails <span class="smalllinenumber">[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a87">87</a>]</span></h3>
235
	<div class="function">
236
    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
237
    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
238
		<code>static array getDhKeyDetails(
239
mixed
240
$dh)</code>
241
    </td></tr></table>
242
    </td></tr></table><br />
243
 
244
		Returns an associative array with Diffie-Hellman key components in  binary representation. The array includes original prime number 'p' and  generator 'g', random private key 'priv_key' and corresponding public  key 'pub_key'.<br /><br /><br /><br />
245
<h4>Tags:</h4>
246
<div class="tags">
247
<table border="0" cellspacing="0" cellpadding="0">
248
  <tr>
249
    <td><b>access:</b>&nbsp;&nbsp;</td><td>public</td>
250
  </tr>
251
</table>
252
</div>
253
<br /><br />
254
 
255
 
256
        <h4>Parameters:</h4>
257
    <div class="tags">
258
    <table border="0" cellspacing="0" cellpadding="0">
259
          <tr>
260
        <td class="type">mixed&nbsp;&nbsp;</td>
261
        <td><b>$dh</b>&nbsp;&nbsp;</td>
262
        <td>Diffie-Hellman key</td>
263
      </tr>
264
        </table>
265
    </div><br />
266
        <div class="top">[ <a href="#top">Top</a> ]</div>
267
  </div>
268
  <hr />
269
	<a name="methodstrlen"></a>
270
	<h3>static method strlen <span class="smalllinenumber">[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a183">183</a>]</span></h3>
271
	<div class="function">
272
    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
273
    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
274
		<code>static int strlen(
275
string
276
$str)</code>
277
    </td></tr></table>
278
    </td></tr></table><br />
279
 
280
		Returns lenght of binary string in bytes<br /><br /><br /><br />
281
<h4>Tags:</h4>
282
<div class="tags">
283
<table border="0" cellspacing="0" cellpadding="0">
284
  <tr>
285
    <td><b>return:</b>&nbsp;&nbsp;</td><td>the string lenght</td>
286
  </tr>
287
  <tr>
288
    <td><b>access:</b>&nbsp;&nbsp;</td><td>public</td>
289
  </tr>
290
</table>
291
</div>
292
<br /><br />
293
 
294
 
295
        <h4>Parameters:</h4>
296
    <div class="tags">
297
    <table border="0" cellspacing="0" cellpadding="0">
298
          <tr>
299
        <td class="type">string&nbsp;&nbsp;</td>
300
        <td><b>$str</b>&nbsp;&nbsp;</td>
301
        <td></td>
302
      </tr>
303
        </table>
304
    </div><br />
305
        <div class="top">[ <a href="#top">Top</a> ]</div>
306
  </div>
307
 
308
  <hr />
309
	<a name="methodbinToBigNum"></a>
310
	<h3>method binToBigNum <span class="smalllinenumber">[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a202">202</a>]</span></h3>
311
	<div class="function">
312
    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
313
    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
314
		<code>mixed binToBigNum(
315
string
316
$bin)</code>
317
    </td></tr></table>
318
    </td></tr></table><br />
319
 
320
		Converts binary representation into ext/gmp or ext/bcmath big integer  representation.<br /><br /><br /><br />
321
<h4>Tags:</h4>
322
<div class="tags">
323
<table border="0" cellspacing="0" cellpadding="0">
324
  <tr>
325
    <td><b>throws:</b>&nbsp;&nbsp;</td><td>Zend_OpenId_Exception</td>
326
  </tr>
327
  <tr>
328
    <td><b>access:</b>&nbsp;&nbsp;</td><td>protected</td>
329
  </tr>
330
</table>
331
</div>
332
<br /><br />
333
 
334
 
335
        <h4>Parameters:</h4>
336
    <div class="tags">
337
    <table border="0" cellspacing="0" cellpadding="0">
338
          <tr>
339
        <td class="type">string&nbsp;&nbsp;</td>
340
        <td><b>$bin</b>&nbsp;&nbsp;</td>
341
        <td>binary representation of big number</td>
342
      </tr>
343
        </table>
344
    </div><br />
345
        <div class="top">[ <a href="#top">Top</a> ]</div>
346
  </div>
347
  <hr />
348
	<a name="methodbtwoc"></a>
349
	<h3>method btwoc <span class="smalllinenumber">[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a152">152</a>]</span></h3>
350
	<div class="function">
351
    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
352
    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
353
		<code>string btwoc(
354
string
355
$str)</code>
356
    </td></tr></table>
357
    </td></tr></table><br />
358
 
359
		Takes an arbitrary precision integer and returns its shortest big-endian  two's complement representation.<br /><br /><p>Arbitrary precision integers MUST be encoded as big-endian signed two's  complement binary strings. Henceforth, &quot;btwoc&quot; is a function that takes  an arbitrary precision integer and returns its shortest big-endian two's  complement representation. All integers that are used with  Diffie-Hellman Key Exchange are positive. This means that the left-most  bit of the two's complement representation MUST be zero. If it is not,  implementations MUST add a zero byte at the front of the string.</p><br /><br /><br />
360
<h4>Tags:</h4>
361
<div class="tags">
362
<table border="0" cellspacing="0" cellpadding="0">
363
  <tr>
364
    <td><b>return:</b>&nbsp;&nbsp;</td><td>big-endian signed representation</td>
365
  </tr>
366
  <tr>
367
    <td><b>access:</b>&nbsp;&nbsp;</td><td>public</td>
368
  </tr>
369
</table>
370
</div>
371
<br /><br />
372
 
373
 
374
        <h4>Parameters:</h4>
375
    <div class="tags">
376
    <table border="0" cellspacing="0" cellpadding="0">
377
          <tr>
378
        <td class="type">string&nbsp;&nbsp;</td>
379
        <td><b>$str</b>&nbsp;&nbsp;</td>
380
        <td>binary representation of arbitrary precision integer</td>
381
      </tr>
382
        </table>
383
    </div><br />
384
        <div class="top">[ <a href="#top">Top</a> ]</div>
385
  </div>
386
  <hr />
387
	<a name="methodcomputeDhSecret"></a>
388
	<h3>method computeDhSecret <span class="smalllinenumber">[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a112">112</a>]</span></h3>
389
	<div class="function">
390
    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
391
    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
392
		<code>string computeDhSecret(
393
string
394
$pub_key, mixed
395
$dh)</code>
396
    </td></tr></table>
397
    </td></tr></table><br />
398
 
399
		Computes the shared secret from the private DH value $dh and the other  party's public value in $pub_key<br /><br /><br /><br />
400
<h4>Tags:</h4>
401
<div class="tags">
402
<table border="0" cellspacing="0" cellpadding="0">
403
  <tr>
404
    <td><b>throws:</b>&nbsp;&nbsp;</td><td>Zend_OpenId_Exception</td>
405
  </tr>
406
  <tr>
407
    <td><b>access:</b>&nbsp;&nbsp;</td><td>public</td>
408
  </tr>
409
</table>
410
</div>
411
<br /><br />
412
 
413
 
414
        <h4>Parameters:</h4>
415
    <div class="tags">
416
    <table border="0" cellspacing="0" cellpadding="0">
417
          <tr>
418
        <td class="type">string&nbsp;&nbsp;</td>
419
        <td><b>$pub_key</b>&nbsp;&nbsp;</td>
420
        <td>other party's public value</td>
421
      </tr>
422
          <tr>
423
        <td class="type">mixed&nbsp;&nbsp;</td>
424
        <td><b>$dh</b>&nbsp;&nbsp;</td>
425
        <td>Diffie-Hellman key</td>
426
      </tr>
427
        </table>
428
    </div><br />
429
        <div class="top">[ <a href="#top">Top</a> ]</div>
430
  </div>
431
  <hr />
432
	<a name="methodrandomBytes"></a>
433
	<h3>method randomBytes <span class="smalllinenumber">[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a168">168</a>]</span></h3>
434
	<div class="function">
435
    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
436
    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
437
		<code>string randomBytes(
438
integer
439
$len)</code>
440
    </td></tr></table>
441
    </td></tr></table><br />
442
 
443
		Produces string of random byte of given length.<br /><br /><br /><br />
444
<h4>Tags:</h4>
445
<div class="tags">
446
<table border="0" cellspacing="0" cellpadding="0">
447
  <tr>
448
    <td><b>return:</b>&nbsp;&nbsp;</td><td>RAW random binary string</td>
449
  </tr>
450
  <tr>
451
    <td><b>access:</b>&nbsp;&nbsp;</td><td>public</td>
452
  </tr>
453
</table>
454
</div>
455
<br /><br />
456
 
457
 
458
        <h4>Parameters:</h4>
459
    <div class="tags">
460
    <table border="0" cellspacing="0" cellpadding="0">
461
          <tr>
462
        <td class="type">integer&nbsp;&nbsp;</td>
463
        <td><b>$len</b>&nbsp;&nbsp;</td>
464
        <td>length of requested string</td>
465
      </tr>
466
        </table>
467
    </div><br />
468
        <div class="top">[ <a href="#top">Top</a> ]</div>
469
  </div>
470
</div><br />
471
 
472
<hr />
473
<a name="class_consts"></a>
474
<h3>Class Constants</h3>
475
<div class="tags">
476
	<a name="constDH_G"></a>
477
	<p></p>
478
	<h4>DH_G = <span class="value">&nbsp;'02'</span></h4>
479
	<p>[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a23">23</a>]</p>
480
 
481
  <br />
482
	<div class="top">[ <a href="#top">Top</a> ]</div><br />
483
	<a name="constDH_P"></a>
484
	<p></p>
485
	<h4>DH_P = <span class="value">&nbsp;'dcf93a0b883972ec0e19989ac5a2ce310e1d37717e8d9571bb7623731866e61ef75a2e27898b057f9891c2e27a639c3f29b60814581cd3b2ca3986d2683705577d45c2e7e52dc81c7a171876e5cea74b1448bfdfaf18828efd2519f14e45e3826634af1949e5b535cc829a483b8a76223e5d490a257f05bdff16f2fb22c583ab'</span></h4>
486
	<p>[line <a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a20">20</a>]</p>
487
 
488
  <br />
489
	<div class="top">[ <a href="#top">Top</a> ]</div><br />
490
</div><br />
491
 
492
        <div class="credit">
493
		    <hr />
302 jpm 494
		    Documentation generated on Tue, 18 Jan 2011 15:31:16 +0100 by <a href="http://www.phpdoc.org">phpDocumentor 1.4.3</a>
297 jpm 495
	      </div>
496
      </td></tr></table>
497
    </td>
498
  </tr>
499
</table>
500
 
501
</body>
502
</html>