Subversion Repositories Applications.framework

Rev

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

Rev Author Line No. Line
297 jpm 1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
  <html xmlns="http://www.w3.org/1999/xhtml">
4
		<head>
5
			<!-- template designed by Marco Von Ballmoos  -->
6
			<title>Docs For Class DiffieHellmanUtil</title>
7
			<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
8
			<link rel="stylesheet" href="../media/stylesheet.css" />
9
						<script src="../media/lib/classTree.js"></script>
10
												<script language="javascript" type="text/javascript">
11
				var imgPlus = new Image();
12
				var imgMinus = new Image();
13
				imgPlus.src = "../media/images/plus.png";
14
				imgMinus.src = "../media/images/minus.png";
15
 
16
				function showNode(Node){
17
							switch(navigator.family){
18
								case 'nn4':
19
									// Nav 4.x code fork...
20
							var oTable = document.layers["span" + Node];
21
							var oImg = document.layers["img" + Node];
22
									break;
23
								case 'ie4':
24
									// IE 4/5 code fork...
25
							var oTable = document.all["span" + Node];
26
							var oImg = document.all["img" + Node];
27
									break;
28
								case 'gecko':
29
									// Standards Compliant code fork...
30
							var oTable = document.getElementById("span" + Node);
31
							var oImg = document.getElementById("img" + Node);
32
									break;
33
							}
34
					oImg.src = imgMinus.src;
35
					oTable.style.display = "block";
36
				}
37
 
38
				function hideNode(Node){
39
							switch(navigator.family){
40
								case 'nn4':
41
									// Nav 4.x code fork...
42
							var oTable = document.layers["span" + Node];
43
							var oImg = document.layers["img" + Node];
44
									break;
45
								case 'ie4':
46
									// IE 4/5 code fork...
47
							var oTable = document.all["span" + Node];
48
							var oImg = document.all["img" + Node];
49
									break;
50
								case 'gecko':
51
									// Standards Compliant code fork...
52
							var oTable = document.getElementById("span" + Node);
53
							var oImg = document.getElementById("img" + Node);
54
									break;
55
							}
56
					oImg.src = imgPlus.src;
57
					oTable.style.display = "none";
58
				}
59
 
60
				function nodeIsVisible(Node){
61
							switch(navigator.family){
62
								case 'nn4':
63
									// Nav 4.x code fork...
64
							var oTable = document.layers["span" + Node];
65
									break;
66
								case 'ie4':
67
									// IE 4/5 code fork...
68
							var oTable = document.all["span" + Node];
69
									break;
70
								case 'gecko':
71
									// Standards Compliant code fork...
72
							var oTable = document.getElementById("span" + Node);
73
									break;
74
							}
75
					return (oTable && oTable.style.display == "block");
76
				}
77
 
78
				function toggleNodeVisibility(Node){
79
					if (nodeIsVisible(Node)){
80
						hideNode(Node);
81
					}else{
82
						showNode(Node);
83
					}
84
				}
85
			</script>
86
					</head>
87
		<body>
88
			<div class="page-body">
89
<h2 class="class-name">Class DiffieHellmanUtil</h2>
90
 
91
<a name="sec-description"></a>
92
<div class="info-box">
93
	<div class="info-box-title">Description</div>
94
	<div class="nav-bar">
95
					<span class="disabled">Description</span> |
96
															<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
97
 
98
											<a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
99
 
100
			</div>
101
	<div class="info-box-body">
102
        		<!-- ========== Info from phpDoc block ========= -->
103
<p class="short-description">Classe utilitaire proposant des fonctions permettant la réalisation d'un  échange de clé Diffie Hellman</p>
104
<p class="description"><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></p>
105
		<p class="notes">
106
			Located in <a class="field" href="_utilitaires---DiffieHellmanUtil.php.html">/utilitaires/DiffieHellmanUtil.php</a> (line <span class="field"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a17">17</a></span>)
107
		</p>
108
 
109
 
110
		<pre></pre>
111
 
112
			</div>
113
</div>
114
 
115
 
116
	<a name="sec-const-summary"></a>
117
	<div class="info-box">
118
		<div class="info-box-title">Class Constant Summary</span></div>
119
		<div class="nav-bar">
120
			<a href="#sec-description">Description</a> |
121
						<span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
122
										|
123
									<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
124
 
125
					</div>
126
		<div class="info-box-body">
127
			<div class="const-summary">
128
								<div class="const-title">
129
					<img src="../media/images/Constant.png" alt=" " />
130
					<a href="#DH_G" title="details" class="const-name">DH_G</a> = 					<span class="var-type"> '02'</span>
131
 
132
				</div>
133
								<div class="const-title">
134
					<img src="../media/images/Constant.png" alt=" " />
135
					<a href="#DH_P" title="details" class="const-name">DH_P</a> = 					<span class="var-type"> 'dcf93a0b883972ec0e19989ac5a2ce310e1d37717e8d9571bb7623731866e61ef75a2e27898b057f9891c2e27a639c3f29b60814581cd3b2ca3986d2683705577d45c2e7e52dc81c7a171876e5cea74b1448bfdfaf18828efd2519f14e45e3826634af1949e5b535cc829a483b8a76223e5d490a257f05bdff16f2fb22c583ab'</span>
136
 
137
				</div>
138
							</div>
139
		</div>
140
	</div>
141
 
142
 
143
	<a name="sec-method-summary"></a>
144
	<div class="info-box">
145
		<div class="info-box-title">Method Summary</span></div>
146
		<div class="nav-bar">
147
			<a href="#sec-description">Description</a> |
148
															<a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
149
 
150
									<span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
151
		</div>
152
		<div class="info-box-body">
153
			<div class="method-summary">
154
 
155
				<div class="method-definition">
156
					static 						<span class="method-result">mixed</span>
157
										<a href="#createDhKey" title="details" class="method-name">createDhKey</a>
158
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$p</span>, <span class="var-type">string</span>&nbsp;<span class="var-name">$g</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$priv_key</span> = <span class="var-default">null</span>])
159
									</div>
160
 
161
				<div class="method-definition">
162
					static 						<span class="method-result">array</span>
163
										<a href="#getDhKeyDetails" title="details" class="method-name">getDhKeyDetails</a>
164
											(<span class="var-type">mixed</span>&nbsp;<span class="var-name">$dh</span>)
165
									</div>
166
 
167
				<div class="method-definition">
168
					static 						<span class="method-result">int</span>
169
										<a href="#strlen" title="details" class="method-name">strlen</a>
170
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$str</span>)
171
									</div>
172
 
173
				<div class="method-definition">
174
											<span class="method-result">mixed</span>
175
										<a href="#binToBigNum" title="details" class="method-name">binToBigNum</a>
176
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$bin</span>)
177
									</div>
178
 
179
				<div class="method-definition">
180
											<span class="method-result">string</span>
181
										<a href="#btwoc" title="details" class="method-name">btwoc</a>
182
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$str</span>)
183
									</div>
184
 
185
				<div class="method-definition">
186
											<span class="method-result">string</span>
187
										<a href="#computeDhSecret" title="details" class="method-name">computeDhSecret</a>
188
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$pub_key</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$dh</span>)
189
									</div>
190
 
191
				<div class="method-definition">
192
											<span class="method-result">string</span>
193
										<a href="#randomBytes" title="details" class="method-name">randomBytes</a>
194
											(<span class="var-type">integer</span>&nbsp;<span class="var-name">$len</span>)
195
									</div>
196
																			</div>
197
		</div>
198
	</div>
199
 
200
 
201
	<a name="sec-methods"></a>
202
	<div class="info-box">
203
		<div class="info-box-title">Methods</div>
204
		<div class="nav-bar">
205
			<a href="#sec-description">Description</a> |
206
																		<a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
207
 
208
										<a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
209
 
210
		</div>
211
		<div class="info-box-body">
212
			<A NAME='method_detail'></A>
213
<a name="methodcreateDhKey" id="createDhKey"><!-- --></a>
214
<div class="evenrow">
215
 
216
	<div class="method-header">
217
		<span class="method-title">static createDhKey</span> (line <span class="line-number"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a40">40</a></span>)
218
	</div>
219
 
220
	<!-- ========== Info from phpDoc block ========= -->
221
<p class="short-description">Performs the first step of a Diffie-Hellman key exchange by generating</p>
222
<p class="description"><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></p>
223
	<ul class="tags">
224
				<li><span class="field">access:</span> public</li>
225
			</ul>
226
 
227
	<div class="method-signature">
228
		static <span class="method-result">mixed</span>
229
		<span class="method-name">
230
			createDhKey
231
		</span>
232
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$p</span>, <span class="var-type">string</span>&nbsp;<span class="var-name">$g</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$priv_key</span> = <span class="var-default">null</span>])
233
			</div>
234
 
235
			<ul class="parameters">
236
					<li>
237
				<span class="var-type">string</span>
238
				<span class="var-name">$p</span><span class="var-description">: prime number in binary representation</span>			</li>
239
					<li>
240
				<span class="var-type">string</span>
241
				<span class="var-name">$g</span><span class="var-description">: generator in binary representation</span>			</li>
242
					<li>
243
				<span class="var-type">string</span>
244
				<span class="var-name">$priv_key</span><span class="var-description">: private key in binary representation</span>			</li>
245
				</ul>
246
 
247
 
248
	</div>
249
<a name="methodgetDhKeyDetails" id="getDhKeyDetails"><!-- --></a>
250
<div class="oddrow">
251
 
252
	<div class="method-header">
253
		<span class="method-title">static getDhKeyDetails</span> (line <span class="line-number"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a87">87</a></span>)
254
	</div>
255
 
256
	<!-- ========== Info from phpDoc block ========= -->
257
<p class="short-description">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'.</p>
258
	<ul class="tags">
259
				<li><span class="field">access:</span> public</li>
260
			</ul>
261
 
262
	<div class="method-signature">
263
		static <span class="method-result">array</span>
264
		<span class="method-name">
265
			getDhKeyDetails
266
		</span>
267
					(<span class="var-type">mixed</span>&nbsp;<span class="var-name">$dh</span>)
268
			</div>
269
 
270
			<ul class="parameters">
271
					<li>
272
				<span class="var-type">mixed</span>
273
				<span class="var-name">$dh</span><span class="var-description">: Diffie-Hellman key</span>			</li>
274
				</ul>
275
 
276
 
277
	</div>
278
<a name="methodstrlen" id="strlen"><!-- --></a>
279
<div class="evenrow">
280
 
281
	<div class="method-header">
282
		<span class="method-title">static strlen</span> (line <span class="line-number"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a183">183</a></span>)
283
	</div>
284
 
285
	<!-- ========== Info from phpDoc block ========= -->
286
<p class="short-description">Returns lenght of binary string in bytes</p>
287
	<ul class="tags">
288
				<li><span class="field">return:</span> the string lenght</li>
289
				<li><span class="field">access:</span> public</li>
290
			</ul>
291
 
292
	<div class="method-signature">
293
		static <span class="method-result">int</span>
294
		<span class="method-name">
295
			strlen
296
		</span>
297
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$str</span>)
298
			</div>
299
 
300
			<ul class="parameters">
301
					<li>
302
				<span class="var-type">string</span>
303
				<span class="var-name">$str</span>			</li>
304
				</ul>
305
 
306
 
307
	</div>
308
<a name="methodbinToBigNum" id="binToBigNum"><!-- --></a>
309
<div class="oddrow">
310
 
311
	<div class="method-header">
312
		<span class="method-title">binToBigNum</span> (line <span class="line-number"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a202">202</a></span>)
313
	</div>
314
 
315
	<!-- ========== Info from phpDoc block ========= -->
316
<p class="short-description">Converts binary representation into ext/gmp or ext/bcmath big integer  representation.</p>
317
	<ul class="tags">
318
				<li><span class="field">throws:</span> Zend_OpenId_Exception</li>
319
				<li><span class="field">access:</span> protected</li>
320
			</ul>
321
 
322
	<div class="method-signature">
323
		<span class="method-result">mixed</span>
324
		<span class="method-name">
325
			binToBigNum
326
		</span>
327
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$bin</span>)
328
			</div>
329
 
330
			<ul class="parameters">
331
					<li>
332
				<span class="var-type">string</span>
333
				<span class="var-name">$bin</span><span class="var-description">: binary representation of big number</span>			</li>
334
				</ul>
335
 
336
 
337
	</div>
338
<a name="methodbtwoc" id="btwoc"><!-- --></a>
339
<div class="evenrow">
340
 
341
	<div class="method-header">
342
		<span class="method-title">btwoc</span> (line <span class="line-number"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a152">152</a></span>)
343
	</div>
344
 
345
	<!-- ========== Info from phpDoc block ========= -->
346
<p class="short-description">Takes an arbitrary precision integer and returns its shortest big-endian  two's complement representation.</p>
347
<p class="description"><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></p>
348
	<ul class="tags">
349
				<li><span class="field">return:</span> big-endian signed representation</li>
350
				<li><span class="field">access:</span> public</li>
351
			</ul>
352
 
353
	<div class="method-signature">
354
		<span class="method-result">string</span>
355
		<span class="method-name">
356
			btwoc
357
		</span>
358
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$str</span>)
359
			</div>
360
 
361
			<ul class="parameters">
362
					<li>
363
				<span class="var-type">string</span>
364
				<span class="var-name">$str</span><span class="var-description">: binary representation of arbitrary precision integer</span>			</li>
365
				</ul>
366
 
367
 
368
	</div>
369
<a name="methodcomputeDhSecret" id="computeDhSecret"><!-- --></a>
370
<div class="oddrow">
371
 
372
	<div class="method-header">
373
		<span class="method-title">computeDhSecret</span> (line <span class="line-number"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a112">112</a></span>)
374
	</div>
375
 
376
	<!-- ========== Info from phpDoc block ========= -->
377
<p class="short-description">Computes the shared secret from the private DH value $dh and the other  party's public value in $pub_key</p>
378
	<ul class="tags">
379
				<li><span class="field">throws:</span> Zend_OpenId_Exception</li>
380
				<li><span class="field">access:</span> public</li>
381
			</ul>
382
 
383
	<div class="method-signature">
384
		<span class="method-result">string</span>
385
		<span class="method-name">
386
			computeDhSecret
387
		</span>
388
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$pub_key</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$dh</span>)
389
			</div>
390
 
391
			<ul class="parameters">
392
					<li>
393
				<span class="var-type">string</span>
394
				<span class="var-name">$pub_key</span><span class="var-description">: other party's public value</span>			</li>
395
					<li>
396
				<span class="var-type">mixed</span>
397
				<span class="var-name">$dh</span><span class="var-description">: Diffie-Hellman key</span>			</li>
398
				</ul>
399
 
400
 
401
	</div>
402
<a name="methodrandomBytes" id="randomBytes"><!-- --></a>
403
<div class="evenrow">
404
 
405
	<div class="method-header">
406
		<span class="method-title">randomBytes</span> (line <span class="line-number"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a168">168</a></span>)
407
	</div>
408
 
409
	<!-- ========== Info from phpDoc block ========= -->
410
<p class="short-description">Produces string of random byte of given length.</p>
411
	<ul class="tags">
412
				<li><span class="field">return:</span> RAW random binary string</li>
413
				<li><span class="field">access:</span> public</li>
414
			</ul>
415
 
416
	<div class="method-signature">
417
		<span class="method-result">string</span>
418
		<span class="method-name">
419
			randomBytes
420
		</span>
421
					(<span class="var-type">integer</span>&nbsp;<span class="var-name">$len</span>)
422
			</div>
423
 
424
			<ul class="parameters">
425
					<li>
426
				<span class="var-type">integer</span>
427
				<span class="var-name">$len</span><span class="var-description">: length of requested string</span>			</li>
428
				</ul>
429
 
430
 
431
	</div>
432
 
433
		</div>
434
	</div>
435
 
436
	<a name="sec-consts"></a>
437
	<div class="info-box">
438
		<div class="info-box-title">Class Constants</div>
439
		<div class="nav-bar">
440
			<a href="#sec-description">Description</a> |
441
										<a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
442
 
443
 
444
										|
445
									<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
446
 
447
					</div>
448
		<div class="info-box-body">
449
			<a name="constDH_G" id="DH_G"><!-- --></A>
450
<div class="oddrow">
451
 
452
	<div class="const-header">
453
		<img src="../media/images/Variable.png" />
454
		<span class="const-title">
455
			<span class="const-name">DH_G</span>
456
			 = <span class="const-default"> '02'</span>
457
			(line <span class="line-number"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a23">23</a></span>)
458
		</span>
459
	</div>
460
 
461
	<!-- ========== Info from phpDoc block ========= -->
462
 
463
 
464
</div>
465
<a name="constDH_P" id="DH_P"><!-- --></A>
466
<div class="evenrow">
467
 
468
	<div class="const-header">
469
		<img src="../media/images/Variable.png" />
470
		<span class="const-title">
471
			<span class="const-name">DH_P</span>
472
			 = <span class="const-default"> 'dcf93a0b883972ec0e19989ac5a2ce310e1d37717e8d9571bb7623731866e61ef75a2e27898b057f9891c2e27a639c3f29b60814581cd3b2ca3986d2683705577d45c2e7e52dc81c7a171876e5cea74b1448bfdfaf18828efd2519f14e45e3826634af1949e5b535cc829a483b8a76223e5d490a257f05bdff16f2fb22c583ab'</span>
473
			(line <span class="line-number"><a href="../__filesource/fsource_Framework__utilitairesDiffieHellmanUtil.php.html#a20">20</a></span>)
474
		</span>
475
	</div>
476
 
477
	<!-- ========== Info from phpDoc block ========= -->
478
 
479
 
480
</div>
481
 
482
		</div>
483
	</div>
484
 
485
	<p class="notes" id="credit">
300 jpm 486
		Documentation generated on Tue, 18 Jan 2011 15:13:13 +0100 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.3</a>
297 jpm 487
	</p>
488
	</div></body>
489
</html>