1pub fn main()
15{
16 random_quick_start();
17 random_new();
18 random_new_with_seeds();
19 random_random_u8();
20 random_random_u16();
21 random_random_u32();
22 random_random_u64();
23 random_random_u128();
24 random_random_usize();
25 random_random_uint();
26 random_random_under_uint();
27 random_random_under_uint_();
28 random_random_minmax_uint();
29 random_random_minmax_uint_();
30 random_random_odd_uint();
31 random_random_odd_under_uint();
32 random_random_odd_under_uint_();
33 random_random_with_msb_set_uint();
34 random_random_odd_with_msb_set_uint();
35 random_random_prime_using_miller_rabin_uint();
36 random_random_prime_with_msb_set_using_miller_rabin_uint();
37 random_random_array();
38 random_put_random_array();
39 random_random_biguint();
40 random_random_under_biguint();
41 random_random_under_biguint_();
42 random_random_odd_biguint();
43 random_random_odd_under_biguint();
44 random_random_odd_under_biguint_();
45 random_random_with_msb_set_biguint();
46 random_random_odd_with_msb_set_biguint();
47 random_random_prime_using_miller_rabin_biguint();
48 random_random_prime_with_msb_set_using_miller_rabin_biguint();
49}
50
51fn random_quick_start()
52{
53 println!("random_quick_start");
54 use cryptocol::random::Random;
55 use cryptocol::define_utypes_with;
56 define_utypes_with!(u64);
57
58 let mut rand = Random::new();
59 println!("Random number = {}", rand.random_u128());
60 println!("Random number = {}", rand.random_u64());
61 println!("Random number = {}", rand.random_u32());
62 println!("Random number = {}", rand.random_u16());
63 println!("Random number = {}", rand.random_u8());
64
65 if let Some(num) = rand.random_under_uint(1234567890123456_u64)
66 { println!("Random number u64 = {}", num); }
67
68 if let Some(num) = rand.random_minmax_uint(1234_u16, 6321)
69 { println!("Random number u16 = {}", num); }
70
71 println!("Random odd number usize = {}", rand.random_odd_uint::<usize>());
72 if let Some(num) = rand.random_odd_under_uint(1234_u16)
73 { println!("Random odd number u16 = {}", num); }
74
75 println!("Random 128-bit number u128 = {}", rand.random_with_msb_set_uint::<u128>());
76 println!("Random 16-bit odd number u16 = {}", rand.random_with_msb_set_uint::<u16>());
77 println!("Random prime number u64 = {}", rand.random_prime_using_miller_rabin_uint::<u64>(5));
78 println!("Random usize-sized prime number usize = {}", rand.random_prime_with_msb_set_using_miller_rabin_uint::<usize>(5));
79
80 let num: [u128; 20] = rand.random_array();
81 for i in 0..20
82 { println!("Random number {} => {}", i, num[i]); }
83
84 let mut num = [0_u64; 32];
85 rand.put_random_in_array(&mut num);
86 for i in 0..32
87 { println!("Random number {} => {}", i, num[i]); }
88
89 let mut biguint: U512 = rand.random_biguint();
90 println!("Random Number: {}", biguint);
91
92 let mut ceiling = U1024::max().wrapping_div_uint(3_u8);
93 if let Some(r) = rand.random_under_biguint(&ceiling)
94 {
95 println!("Random Number less than {} is\n{}", ceiling, r);
96 assert!(r < ceiling);
97 }
98
99 ceiling = U1024::max().wrapping_div_uint(5_u8);
100 let r = rand.random_under_biguint_(&ceiling);
101 println!("Random Number less than {} is\n{}", ceiling, r);
102 assert!(r < ceiling);
103
104 ceiling = U1024::max().wrapping_div_uint(4_u8);
105 if let Some(r) = rand.random_odd_under_biguint(&ceiling)
106 {
107 println!("Random odd Number less than {} is\n{}", ceiling, r);
108 assert!(r < ceiling);
109 }
110
111 biguint = rand.random_with_msb_set_biguint();
112 println!("Random Number: {}", biguint);
113
114 biguint = rand.random_odd_with_msb_set_biguint();
115 println!("512-bit Random Odd Number = {}", biguint);
116 assert!(biguint > U512::halfmax());
117 assert!(biguint.is_odd());
118
119 biguint = rand.random_prime_using_miller_rabin_biguint(5);
120 println!("Random Prime Number = {}", biguint);
121 assert!(biguint.is_odd());
122
123 biguint = rand.random_prime_with_msb_set_using_miller_rabin_biguint(5);
124 println!("512-bit Random Prime Number = {}", biguint);
125 assert!(biguint.is_odd());
126 println!("-------------------------------");
127}
128
129fn random_new()
130{
131 println!("random_new");
132 use cryptocol::random::Random;
134 let mut rand = Random::new();
135 println!("Random number = {}", rand.random_u128());
136
137 use cryptocol::random::Any;
139 let mut any = Any::new();
140 println!("Any number = {}", any.random_u64());
141
142 use cryptocol::random::Any_Num;
144 let mut any_num = Any_Num::new();
145 println!("Any number = {}", any_num.random_u32());
146
147 use cryptocol::random::Any_Num_C;
149 let mut any_num_c = Any_Num_C::new();
150 println!("Any number = {}", any_num_c.random_u16());
151
152 use cryptocol::random::Any_MD4;
154 let mut any_md4 = Any_MD4::new();
155 println!("Any number = {}", any_md4.random_u8());
156
157 use cryptocol::random::Any_MD5;
159 let mut any_md5 = Any_MD5::new();
160 println!("Any number = {}", any_md5.random_usize());
161
162 use cryptocol::random::Any_SHA0;
164 let mut any_sha0 = Any_SHA0::new();
165 println!("Any number = {}", any_sha0.random_uint::<u8>());
166
167 use cryptocol::random::Any_SHA1;
169 let mut any_sha1 = Any_SHA1::new();
170 if let Some(num) = any_sha1.random_under_uint(1234_u16)
171 { println!("Any number = {}", num); }
172
173 use cryptocol::random::Any_SHA2_256;
175 let mut any_sha2_256 = Any_SHA2_256::new();
176 if let Some(num) = any_sha2_256.random_minmax_uint(12345678_u32, 87654321)
177 { println!("Any number = {}", num); }
178
179 use cryptocol::random::Any_SHA2_512;
181 let mut any_sha2_512 = Any_SHA2_512::new();
182 println!("Any odd number = {}", any_sha2_512.random_odd_uint::<u64>());
183
184 use cryptocol::random::Random_SHA2_512;
186 let mut random_sha2_512 = Random_SHA2_512::new();
187 println!("Random prime number = {}", random_sha2_512.random_prime_using_miller_rabin_uint::<u128>(5));
188
189 use cryptocol::random::Random_Generic;
191 use cryptocol::hash::MD4_Expanded;
192 type MyMD4 = MD4_Expanded<4, 0x1111_1111, 0x4444_4444, 0x8888_8888, 0xffff_ffff, 96>;
193 let mut any_md4_expanded = Random_Generic::<1000>::new_with(MyMD4::new(), MyMD4::new());
194 println!("Any number = {}", any_md4_expanded.random_biguint::<u128, 4>());
195 println!("-------------------------------");
196}
197
198fn random_new_with_seeds()
199{
200 println!("random_new_with_seeds");
201 use cryptocol::random::Random;
203 let mut rand = Random::new_with_seeds(10500872879054459758_u64, 15887751380961987625_u64);
204 println!("Random number = {}", rand.random_u8());
205
206 use cryptocol::random::Any;
208 let mut any = Any::new_with_seeds(100, 25);
209 println!("Any number = {}", any.random_u16());
210
211 use cryptocol::random::Any_Num;
213 let mut any_num = Any_Num::new_with_seeds(50558, 18782);
214 println!("Any number = {}", any_num.random_u32());
215
216 use cryptocol::random::Any_Num_C;
218 let mut any_num_c = Any_Num_C::new_with_seeds(458861005, 793621585);
219 println!("Any number = {}", any_num_c.random_u64());
220
221 use cryptocol::random::Any_MD4;
223 let mut any_md4 = Any_MD4::new_with_seeds(106842379157284697, 18446744073709551615);
224 println!("Any number = {}", any_md4.random_usize());
225
226 use cryptocol::random::Any_MD5;
228 let mut any_md5 = Any_MD5::new_with_seeds(58, 161);
229 println!("Any number = {}", any_md5.random_u128());
230
231 use cryptocol::random::Any_SHA0;
233 let mut any_sha0 = Any_SHA0::new_with_seeds(0, 125);
234 println!("Any prime number = {}", any_sha0.random_prime_using_miller_rabin_uint::<u128>(5));
235
236 use cryptocol::random::Any_SHA1;
238 let mut any_sha1 = Any_SHA1::new_with_seeds(18782, 50558);
239 println!("Any number = {}", any_sha1.random_uint::<u8>());
240
241 use cryptocol::random::Any_SHA2_256;
243 let mut any_sha2_256 = Any_SHA2_256::new_with_seeds(610458805, 215793685);
244 if let Some(num) = any_sha2_256.random_under_uint(1234_u16)
245 { println!("Any number = {}", num); }
246
247 use cryptocol::random::Any_SHA2_512;
249 let mut any_sha2_512 = Any_SHA2_512::new_with_seeds(2879054410500759758, 15887876257513809619);
250 if let Some(num) = any_sha2_512.random_minmax_uint(12345678_u32, 87654321)
251 { println!("Any number = {}", num); }
252
253 use cryptocol::random::Random_SHA2_512;
255 let mut random_sha2_512 = Random_SHA2_512::new_with_seeds(15698731215687456325, 10684237915728469725);
256 println!("Random odd number = {}", random_sha2_512.random_odd_uint::<u128>());
257
258 use cryptocol::random::Random_Generic;
260 use cryptocol::hash::MD5_Expanded;
261 type MyMD5 = MD5_Expanded<4, 0x1111_1111, 0x4444_4444, 0x8888_8888, 0xffff_ffff, 96>;
262 let mut any_md5_expanded = Random_Generic::<123456789>::new_with_generators_seeds(MyMD5::new(), MyMD5::new(), 6445332556087625, 43057945771605458);
263 println!("Any number = {}", any_md5_expanded.random_biguint::<u64, 8>());
264 println!("-------------------------------");
265}
266
267fn random_random_u8()
268{
269 println!("random_random_u8");
270 use cryptocol::random::Random;
272 let mut rand = Random::new();
273 for i in 0..10
274 { println!("{} Random number (Random) = {}", i, rand.random_u8()); }
275
276 use cryptocol::random::Any;
278 let mut any = Any::new();
279 for i in 0..10
280 { println!("{} Any number (Any) = {}", i, any.random_u8()); }
281
282 use cryptocol::random::Any_Num;
284 let mut any_num = Any_Num::new();
285 for i in 0..10
286 { println!("{} Any number (Any_Num) = {}", i, any_num.random_u8()); }
287
288 use cryptocol::random::Any_Num_C;
290 let mut any_num_c = Any_Num_C::new();
291 for i in 0..10
292 { println!("{} Any number (Any_Num_C) = {}", i, any_num_c.random_u8()); }
293
294 use cryptocol::random::Any_MD4;
296 let mut any_md4 = Any_MD4::new();
297 for i in 0..10
298 { println!("{} Any number (Any_MD4) = {}", i, any_md4.random_u8()); }
299
300 use cryptocol::random::Any_MD5;
302 let mut any_md5 = Any_MD5::new();
303 for i in 0..10
304 { println!("{} Any number (Any_MD5) = {}", i, any_md5.random_u8()); }
305
306 use cryptocol::random::Any_SHA0;
308 let mut any_sha0 = Any_SHA0::new();
309 for i in 0..10
310 { println!("{} Any number (Any_SHA0) = {}", i, any_sha0.random_u8()); }
311
312 use cryptocol::random::Any_SHA1;
314 let mut any_sha1 = Any_SHA1::new();
315 for i in 0..10
316 { println!("{} Any number (Any_SHA1) = {}", i, any_sha1.random_u8()); }
317
318 use cryptocol::random::Any_SHA2_256;
320 let mut any_sha2_256 = Any_SHA2_256::new();
321 for i in 0..10
322 { println!("{} Any number (Any_SHA2_256) = {}", i, any_sha2_256.random_u8()); }
323
324 use cryptocol::random::Any_SHA2_512;
326 let mut any_sha2_512 = Any_SHA2_512::new();
327 for i in 0..10
328 { println!("{} Any number (Any_SHA2_512) = {}", i, any_sha2_512.random_u8()); }
329
330 use cryptocol::random::Random_SHA2_512;
332 let mut rand_sha2_512 = Random_SHA2_512::new();
333 for i in 0..10
334 { println!("{} Random number (Any_SHA2_512) = {}", i, rand_sha2_512.random_u8()); }
335
336 use cryptocol::random::Random_Generic;
338 use cryptocol::hash::SHA0_Expanded;
339 type MySHA0 = SHA0_Expanded<5, 0x1111_1111, 0x4444_4444, 0x8888_8888, 0xcccc_cccc, 0xffff_ffff, 160>;
340 let mut any_sha0_expanded = Random_Generic::<1000000000>::new_with_generators_seeds(MySHA0::new(), MySHA0::new(), 6445332556087625_u64, 43057945771605458_u64);
341 for i in 0..10
342 { println!(" {} Any number (Any_SHA2_512) = {}", i, any_sha0_expanded.random_u8()); }
343 println!("-------------------------------");
344}
345
346fn random_random_u16()
347{
348 println!("random_random_u16");
349 use cryptocol::random::Random;
351 let mut rand = Random::new();
352 for i in 0..10
353 { println!("{} Random number (Random) = {}", i, rand.random_u16()); }
354
355 use cryptocol::random::Any;
357 let mut any = Any::new();
358 for i in 0..10
359 { println!("{} Any number (Any) = {}", i, any.random_u16()); }
360
361 use cryptocol::random::Any_Num;
363 let mut any_num = Any_Num::new();
364 for i in 0..10
365 { println!("{} Any number (Any_Num) = {}", i, any_num.random_u16()); }
366
367 use cryptocol::random::Any_Num_C;
369 let mut any_num_c = Any_Num_C::new();
370 for i in 0..10
371 { println!("{} Any number (Any_Num_C) = {}", i, any_num_c.random_u16()); }
372
373 use cryptocol::random::Any_MD4;
375 let mut any_md4 = Any_MD4::new();
376 for i in 0..10
377 { println!("{} Any number (Any_MD4) = {}", i, any_md4.random_u16()); }
378
379 use cryptocol::random::Any_MD5;
381 let mut any_md5 = Any_MD5::new();
382 for i in 0..10
383 { println!("{} Any number (Any_MD5) = {}", i, any_md5.random_u16()); }
384
385 use cryptocol::random::Any_SHA0;
387 let mut any_sha0 = Any_SHA0::new();
388 for i in 0..10
389 { println!("{} Any number (Any_SHA0) = {}", i, any_sha0.random_u16()); }
390
391 use cryptocol::random::Any_SHA1;
393 let mut any_sha1 = Any_SHA1::new();
394 for i in 0..10
395 { println!("{} Any number (Any_SHA1) = {}", i, any_sha1.random_u16()); }
396
397 use cryptocol::random::Any_SHA2_256;
399 let mut any_sha2_256 = Any_SHA2_256::new();
400 for i in 0..10
401 { println!("{} Any number (Any_SHA2_256) = {}", i, any_sha2_256.random_u16()); }
402
403 use cryptocol::random::Any_SHA2_512;
405 let mut any_sha2_512 = Any_SHA2_512::new();
406 for i in 0..10
407 { println!("{} Any number (Any_SHA2_512) = {}", i, any_sha2_512.random_u16()); }
408
409 use cryptocol::random::Random_SHA2_512;
411 let mut rand_sha2_512 = Random_SHA2_512::new();
412 for i in 0..10
413 { println!("{} Random number (Random_SHA2_512) = {}", i, rand_sha2_512.random_u16()); }
414
415 use cryptocol::random::Random_Generic;
417 use cryptocol::hash::SHA1_Expanded;
418 type MySHA1 = SHA1_Expanded<5, 0x1111_1111, 0x4444_4444, 0x8888_8888, 0xcccc_cccc, 0xffff_ffff, 160>;
419 let mut any_sha1_expanded = Random_Generic::<500000000>::new_with_generators_seeds(MySHA1::new(), MySHA1::new(), 6445332556087625_u64, 43057945771605458_u64);
420 for i in 0..10
421 { println!("{} Any number (Random_Generic) = {}", i, any_sha1_expanded.random_u16()); }
422 println!("-------------------------------");
423}
424
425fn random_random_u32()
426{
427 println!("random_random_u32");
428 use cryptocol::random::Random;
430 let mut rand = Random::new();
431 for i in 0..10
432 { println!("{} Random number (Random) = {}", i, rand.random_u32()); }
433
434 use cryptocol::random::Any;
436 let mut any = Any::new();
437 for i in 0..10
438 { println!("{} Any number (Any) = {}", i, any.random_u32()); }
439
440 use cryptocol::random::Any_Num;
442 let mut any_num = Any_Num::new();
443 for i in 0..10
444 { println!("{} Any number (Any_Num) = {}", i, any_num.random_u32()); }
445
446 use cryptocol::random::Any_Num_C;
448 let mut any_num_c = Any_Num_C::new();
449 for i in 0..10
450 { println!("{} Any number (Any_Num_C) = {}", i, any_num_c.random_u32()); }
451
452 use cryptocol::random::Any_MD4;
454 let mut any_md4 = Any_MD4::new();
455 for i in 0..10
456 { println!("{} Any number (Any_MD4) = {}", i, any_md4.random_u32()); }
457
458 use cryptocol::random::Any_MD5;
460 let mut any_md5 = Any_MD5::new();
461 for i in 0..10
462 { println!("{} Any number (Any_MD5) = {}", i, any_md5.random_u32()); }
463
464 use cryptocol::random::Any_SHA0;
466 let mut any_sha0 = Any_SHA0::new();
467 for i in 0..10
468 { println!("{} Any number (Any_SHA0) = {}", i, any_sha0.random_u32()); }
469
470 use cryptocol::random::Any_SHA1;
472 let mut any_sha1 = Any_SHA1::new();
473 for i in 0..10
474 { println!("{} Any number (Any_SHA1) = {}", i, any_sha1.random_u32()); }
475
476 use cryptocol::random::Any_SHA2_256;
478 let mut any_sha2_256 = Any_SHA2_256::new();
479 for i in 0..10
480 { println!("{} Any number (Any_SHA2_256) = {}", i, any_sha2_256.random_u32()); }
481
482 use cryptocol::random::Any_SHA2_512;
484 let mut any_sha2_512 = Any_SHA2_512::new();
485 for i in 0..10
486 { println!("{} Any number (Any_SHA2_512) = {}", i, any_sha2_512.random_u32()); }
487
488 use cryptocol::random::Random_SHA2_512;
490 let mut rand_sha2_512 = Random_SHA2_512::new();
491 for i in 0..10
492 { println!("{} Random number (Random_SHA2_512) = {}", i, rand_sha2_512.random_u32()); }
493
494 use cryptocol::random::Random_Generic;
496 use cryptocol::hash::SHA2_256_Expanded;
497 type MySHA2 = SHA2_256_Expanded<0x1111_1111, 0x2222_2222, 0x4444_4444, 0x6666_6666, 0x8888_8888, 0xaaaa_aaaa, 0xcccc_cccc, 0xeeee_eeee, 128>;
498 let mut any_sha2_expanded = Random_Generic::<102030405060708090>::new_with_generators_seeds(MySHA2::new(), MySHA2::new(), 6445332556087625_u64, 43057945771605458_u64);
499 for i in 0..10
500 { println!("{} Any number (Random_Generic) = {}", i, any_sha2_expanded.random_u32()); }
501 println!("-------------------------------");
502}
503
504fn random_random_u64()
505{
506 println!("random_random_u64");
507 use cryptocol::random::Random;
509 let mut rand = Random::new();
510 for i in 0..10
511 { println!("{} Random number (Random) = {}", i, rand.random_u64()); }
512
513 use cryptocol::random::Any;
515 let mut any = Any::new();
516 for i in 0..10
517 { println!("{} Any number (Any) = {}", i, any.random_u64()); }
518
519 use cryptocol::random::Any_Num;
521 let mut any_num = Any_Num::new();
522 for i in 0..10
523 { println!("{} Any number (Any_Num) = {}", i, any_num.random_u64()); }
524
525 use cryptocol::random::Any_Num_C;
527 let mut any_num_c = Any_Num_C::new();
528 for i in 0..10
529 { println!("{} Any number (Any_Num_C) = {}", i, any_num_c.random_u64()); }
530
531 use cryptocol::random::Any_MD4;
533 let mut any_md4 = Any_MD4::new();
534 for i in 0..10
535 { println!("{} Any number (Any_MD4) = {}", i, any_md4.random_u64()); }
536
537 use cryptocol::random::Any_MD5;
539 let mut any_md5 = Any_MD5::new();
540 for i in 0..10
541 { println!("{} Any number (Any_MD5) = {}", i, any_md5.random_u64()); }
542
543 use cryptocol::random::Any_SHA0;
545 let mut any_sha0 = Any_SHA0::new();
546 for i in 0..10
547 { println!("{} Any number (Any_SHA0) = {}", i, any_sha0.random_u64()); }
548
549 use cryptocol::random::Any_SHA1;
551 let mut any_sha1 = Any_SHA1::new();
552 for i in 0..10
553 { println!("{} Any number (Any_SHA1) = {}", i, any_sha1.random_u64()); }
554
555 use cryptocol::random::Any_SHA2_256;
557 let mut any_sha2_256 = Any_SHA2_256::new();
558 for i in 0..10
559 { println!("{} Any number (Any_SHA2_256) = {}", i, any_sha2_256.random_u64()); }
560
561 use cryptocol::random::Any_SHA2_512;
563 let mut any_sha2_512 = Any_SHA2_512::new();
564 for i in 0..10
565 { println!("{} Any number (Any_SHA2_512) = {}", i, any_sha2_512.random_u64()); }
566
567 use cryptocol::random::Random_SHA2_512;
569 let mut rand_sha2_512 = Random_SHA2_512::new();
570 for i in 0..10
571 { println!("{} Random number (Random_SHA2_512) = {}", i, rand_sha2_512.random_u64()); }
572
573 use cryptocol::random::Random_Generic;
575 use cryptocol::hash::SHA2_512_Expanded;
576 type MySHA2 = SHA2_512_Expanded<0x1111_1111_1111_1111, 0x3333_3333_3333_3333, 0x5555_5555_5555_5555, 0x7777_7777_7777_7777, 0x9999_9999_9999_9999, 0xbbbb_bbbb_bbbb_bbbb, 0xdddd_dddd_dddd_dddd, 0xffff_ffff_ffff_ffff, 160>;
577 let mut any_sha2_expanded = Random_Generic::<100000>::new_with_generators_seeds(MySHA2::new(), MySHA2::new(), 6445332556087625_u64, 43057945771605458_u64);
578 for i in 0..10
579 { println!("{} Any number (Random_Generic) = {}", i, any_sha2_expanded.random_u64()); }
580 println!("-------------------------------");
581}
582
583fn random_random_u128()
584{
585 println!("random_random_u128");
586 use cryptocol::random::Random;
588 let mut rand = Random::new();
589 for i in 0..10
590 { println!("{} Random number (Random) = {}", i, rand.random_u128()); }
591
592 use cryptocol::random::Any;
594 let mut any = Any::new();
595 for i in 0..10
596 { println!("{} Any number (Any) = {}", i, any.random_u128()); }
597
598 use cryptocol::random::Any_Num;
600 let mut any_num = Any_Num::new();
601 for i in 0..10
602 { println!("{} Any number (Any_Num) = {}", i, any_num.random_u128()); }
603
604 use cryptocol::random::Any_Num_C;
606 let mut any_num_c = Any_Num_C::new();
607 for i in 0..10
608 { println!("{} Any number (Any_Num_C) = {}", i, any_num_c.random_u128()); }
609
610 use cryptocol::random::Any_MD4;
612 let mut any_md4 = Any_MD4::new();
613 for i in 0..10
614 { println!("{} Any number (Any_MD4) = {}", i, any_md4.random_u128()); }
615
616 use cryptocol::random::Any_MD5;
618 let mut any_md5 = Any_MD5::new();
619 for i in 0..10
620 { println!("{} Any number (Any_MD5) = {}", i, any_md5.random_u128()); }
621
622 use cryptocol::random::Any_SHA0;
624 let mut any_sha0 = Any_SHA0::new();
625 for i in 0..10
626 { println!("{} Any number (Any_SHA0) = {}", i, any_sha0.random_u128()); }
627
628 use cryptocol::random::Any_SHA1;
630 let mut any_sha1 = Any_SHA1::new();
631 for i in 0..10
632 { println!("{} Any number (Any_SHA1) = {}", i, any_sha1.random_u128()); }
633
634 use cryptocol::random::Any_SHA2_256;
636 let mut any_sha2_256 = Any_SHA2_256::new();
637 for i in 0..10
638 { println!("{} Any number (Any_SHA2_256) = {}", i, any_sha2_256.random_u128()); }
639
640 use cryptocol::random::Any_SHA2_512;
642 let mut any_sha2_512 = Any_SHA2_512::new();
643 for i in 0..10
644 { println!("{} Any number (Any_SHA2_512) = {}", i, any_sha2_512.random_u128()); }
645
646 use cryptocol::random::Random_SHA2_512;
648 let mut rand_sha2_512 = Random_SHA2_512::new();
649 for i in 0..10
650 { println!("{} Random number (Random_SHA2_512) = {}", i, rand_sha2_512.random_u128()); }
651
652 use cryptocol::random::{ Random_Generic, AnyNumber_Engine_C_Generic };
654 type MyAnyNumberEngineCExpanded = AnyNumber_Engine_C_Generic<1234567890987654321_u64, 987654321_u64>;
655 let mut any_num_c_expanded = Random_Generic::<258963147>::new_with(MyAnyNumberEngineCExpanded::new(), MyAnyNumberEngineCExpanded::new());
656 for i in 0..10
657 { println!("{} Any number (Random_Generic) = {}", i, any_num_c_expanded.random_u128()); }
658 println!("-------------------------------");
659}
660
661fn random_random_usize()
662{
663 println!("random_random_usize");
664 use cryptocol::random::Random;
666 let mut rand = Random::new();
667 for i in 0..10
668 { println!("{} Random number (Random) = {}", i, rand.random_usize()); }
669
670 use cryptocol::random::Any;
672 let mut any = Any::new();
673 for i in 0..10
674 { println!("{} Any number (Any) = {}", i, any.random_usize()); }
675
676 use cryptocol::random::Any_Num;
678 let mut any_num = Any_Num::new();
679 for i in 0..10
680 { println!("{} Any number (Any_Num) = {}", i, any_num.random_usize()); }
681
682 use cryptocol::random::Any_Num_C;
684 let mut any_num_c = Any_Num_C::new();
685 for i in 0..10
686 { println!("{} Any number (Any_Num_C) = {}", i, any_num_c.random_usize()); }
687
688 use cryptocol::random::Any_MD4;
690 let mut any_md4 = Any_MD4::new();
691 for i in 0..10
692 { println!("{} Any number (Any_MD4) = {}", i, any_md4.random_usize()); }
693
694 use cryptocol::random::Any_MD5;
696 let mut any_md5 = Any_MD5::new();
697 for i in 0..10
698 { println!("{} Any number (Any_MD5) = {}", i, any_md5.random_usize()); }
699
700 use cryptocol::random::Any_SHA0;
702 let mut any_sha0 = Any_SHA0::new();
703 for i in 0..10
704 { println!("{} Any number (Any_SHA0) = {}", i, any_sha0.random_usize()); }
705
706 use cryptocol::random::Any_SHA1;
708 let mut any_sha1 = Any_SHA1::new();
709 for i in 0..10
710 { println!("{} Any number (Any_SHA1) = {}", i, any_sha1.random_usize()); }
711
712 use cryptocol::random::Any_SHA2_256;
714 let mut any_sha2_256 = Any_SHA2_256::new();
715 for i in 0..10
716 { println!("{} Any number (Any_SHA2_256) = {}", i, any_sha2_256.random_usize()); }
717
718 use cryptocol::random::Any_SHA2_512;
720 let mut any_sha2_512 = Any_SHA2_512::new();
721 for i in 0..10
722 { println!("{} Any number (Any_SHA2_512) = {}", i, any_sha2_512.random_usize()); }
723
724 use cryptocol::random::Random_SHA2_512;
726 let mut rand_sha2_512 = Random_SHA2_512::new();
727 for i in 0..10
728 { println!("{} Random number (Random_SHA2_512) = {}", i, rand_sha2_512.random_usize()); }
729
730 use cryptocol::random::Random_Generic;
732 use cryptocol::hash::SHA2_512_Expanded;
733 type MySHA2 = SHA2_512_Expanded<0x1212_1212_1212_1212, 0x3434_3434_3434_3434, 0x5454_5454_5454_5454, 0x7878_7878_7878_7878, 0x9A9A_9A9A_9A9A_9A9A, 0xbcbc_bcbc_bcbc_bcbc, 0xdede_dede_dede_dede, 0xf0f0_f0f0_f0f0_f0f0, 240>;
734 let mut any_sha2_expanded1 = Random_Generic::<75315964852>::new_with(MySHA2::new(), MySHA2::new());
735 for i in 0..10
736 { println!("{} Any number (Random_Generic) = {}", i, any_sha2_expanded1.random_usize()); }
737 println!("-------------------------------");
738}
739
740fn random_random_uint()
741{
742 println!("random_random_uint");
743 use cryptocol::random::Random;
745 let mut rand = Random::new();
746 for i in 0..10
747 { println!("{} Random number (Random) = {}", i, rand.random_uint::<u8>()); }
748
749 use cryptocol::random::Any;
751 let mut any = Any::new();
752 for i in 0..10
753 { println!("{} Any number (Any) = {}", i, any.random_uint::<u16>()); }
754
755 use cryptocol::random::Any_Num;
757 let mut any_num = Any_Num::new();
758 for i in 0..10
759 { println!("{} Any number (Any_Num) = {}", i, any_num.random_uint::<u32>()); }
760
761 use cryptocol::random::Any_Num_C;
763 let mut any_num_c = Any_Num_C::new();
764 for i in 0..10
765 { println!("{} Any number (Any_Num_C) = {}", i, any_num_c.random_uint::<u64>()); }
766
767 use cryptocol::random::Any_MD4;
769 let mut any_md4 = Any_MD4::new();
770 for i in 0..10
771 { println!("{} Any number (Any_MD4) = {}", i, any_md4.random_uint::<u128>()); }
772
773 use cryptocol::random::Any_MD5;
775 let mut any_md5 = Any_MD5::new();
776 for i in 0..10
777 { println!("{} Any number (Any_MD5) = {}", i, any_md5.random_uint::<usize>()); }
778
779 use cryptocol::random::Any_SHA0;
781 let mut any_sha0 = Any_SHA0::new();
782 for i in 0..10
783 { println!("{} Any number (Any_SHA0) = {}", i, any_sha0.random_uint::<u8>()); }
784
785 use cryptocol::random::Any_SHA1;
787 let mut any_sha1 = Any_SHA1::new();
788 for i in 0..10
789 { println!("{} Any number (Any_SHA1) = {}", i, any_sha1.random_uint::<u16>()); }
790
791 use cryptocol::random::Any_SHA2_256;
793 let mut any_sha2_256 = Any_SHA2_256::new();
794 for i in 0..10
795 { println!("{} Any number (Any_SHA2_256) = {}", i, any_sha2_256.random_uint::<u32>()); }
796
797 use cryptocol::random::Any_SHA2_512;
799 let mut any_sha2_512 = Any_SHA2_512::new();
800 for i in 0..10
801 { println!("{} Any number (Any_SHA2_512) = {}", i, any_sha2_512.random_uint::<u64>()); }
802
803 use cryptocol::random::Random_SHA2_512;
805 let mut rand_sha2_512 = Random_SHA2_512::new();
806 for i in 0..10
807 { println!("{} Random number (Random_SHA2_512) = {}", i, rand_sha2_512.random_uint::<u128>()); }
808
809 use cryptocol::random::Random_Generic;
811 use cryptocol::hash::SHA2_512_Expanded;
812 type MySHA2 = SHA2_512_Expanded<0x1212_1212_1212_1212, 0x3434_3434_3434_3434, 0x5454_5454_5454_5454, 0x7878_7878_7878_7878, 0x9A9A_9A9A_9A9A_9A9A, 0xbcbc_bcbc_bcbc_bcbc, 0xdede_dede_dede_dede, 0xf0f0_f0f0_f0f0_f0f0, 240>;
813 let mut any_sha2_expanded2 = Random_Generic::<555555555>::new_with(MySHA2::new(), MySHA2::new());
814 for i in 0..10
815 { println!("{} Any number (Random_Generic) = {}", i, any_sha2_expanded2.random_uint::<u128>()); }
816 println!("-------------------------------");
817}
818
819fn random_random_under_uint()
820{
821 println!("random_random_under_uint");
822 use cryptocol::random::Random_SHA2_512;
823 let mut rand = Random_SHA2_512::new();
824 if let Some(num) = rand.random_under_uint(12_u8)
825 { println!("Random number u8 = {}", num); }
826 if let Some(num) = rand.random_under_uint(1234_u16)
827 { println!("Random number u16 = {}", num); }
828 if let Some(num) = rand.random_under_uint(12345678_u32)
829 { println!("Random number u32 = {}", num); }
830 if let Some(num) = rand.random_under_uint(1234567890123456_u64)
831 { println!("Random number u64 = {}", num); }
832 if let Some(num) = rand.random_under_uint(12345678901234567890_u128)
833 { println!("Random number u128 = {}", num); }
834 if let Some(num) = rand.random_under_uint(123456789_usize)
835 { println!("Random number usize = {}", num); }
836 if let Some(num) = rand.random_under_uint(0_usize)
837 { println!("Random number usize = {}", num); }
838 else
839 { println!("No random unsigned number number under 0!"); }
840 println!("-------------------------------");
841}
842
843fn random_random_under_uint_()
844{
845 println!("random_random_under_uint_");
846 use cryptocol::random::Any_Num;
847 let mut rand = Any_Num::new();
848
849 let num = rand.random_under_uint_(12_u8);
850 println!("Random number u8 = {}", num);
851
852 let num = rand.random_under_uint_(1234_u16);
853 println!("Random number u16 = {}", num);
854
855 let num = rand.random_under_uint_(12345678_u32);
856 println!("Random number u32 = {}", num);
857
858 let num = rand.random_under_uint_(1234567890123456_u64);
859 println!("Random number u64 = {}", num);
860
861 let num = rand.random_under_uint_(12345678901234567890_u128);
862 println!("Random number u128 = {}", num);
863
864 let num = rand.random_under_uint_::<usize>(123456789_usize);
865 println!("Random number usize = {}", num);
866
867 println!("-------------------------------");
871}
872
873fn random_random_minmax_uint()
874{
875 println!("random_random_minmax_uint");
876 use cryptocol::random::Any_MD4;
877 let mut rand = Any_MD4::new();
878 if let Some(num) = rand.random_minmax_uint(12_u8, 21)
879 { println!("Random number u8 = {}", num); }
880 if let Some(num) = rand.random_minmax_uint(1234_u16, 6321)
881 { println!("Random number u16 = {}", num); }
882 if let Some(num) = rand.random_minmax_uint(12345678_u32, 87654321)
883 { println!("Random number u32 = {}", num); }
884 if let Some(num) = rand.random_minmax_uint(1234567890123456_u64, 6543210987654321)
885 { println!("Random number u64 = {}", num); }
886 if let Some(num) = rand.random_minmax_uint(12345678901234567890_u128, 19876543210987654321)
887 { println!("Random number u128 = {}", num); }
888 if let Some(num) = rand.random_minmax_uint(123456789_usize, 987654321)
889 { println!("Random number usize = {}", num); }
890 if let Some(num) = rand.random_minmax_uint(10, 8_usize)
891 { println!("Random number usize = {}", num); }
892 else
893 { println!("No random unsigned number number greater than or equal to 10 and less than 8!"); }
894 println!("-------------------------------");
895}
896
897fn random_random_minmax_uint_()
898{
899 println!("random_random_minmax_uint_");
900 use cryptocol::random::Any_MD5;
901 let mut rand = Any_MD5::new();
902
903 let num = rand.random_minmax_uint_(12_u8, 21);
904 println!("Random number u8 = {}", num);
905
906 let num = rand.random_minmax_uint_(1234_u16, 6321);
907 println!("Random number u16 = {}", num);
908
909 let num = rand.random_minmax_uint_(12345678_u32, 87654321);
910 println!("Random number u32 = {}", num);
911
912 let num = rand.random_minmax_uint_(1234567890123456_u64, 6543210987654321);
913 println!("Random number u64 = {}", num);
914
915 let num = rand.random_minmax_uint_(12345678901234567890_u128, 19876543210987654321);
916 println!("Random number u128 = {}", num);
917
918 let num = rand.random_minmax_uint_(123456789_usize, 987654321);
919 println!("Random number usize = {}", num);
920
921 println!("-------------------------------");
925}
926
927fn random_random_odd_uint()
928{
929 println!("random_random_odd_uint");
930 use cryptocol::random::Any_SHA0;
931 let mut rand = Any_SHA0::new();
932 println!("Random odd number u8 = {}", rand.random_odd_uint::<u8>());
933 println!("Random odd number u16 = {}", rand.random_odd_uint::<u16>());
934 println!("Random odd number u32 = {}", rand.random_odd_uint::<u32>());
935 println!("Random odd number u64 = {}", rand.random_odd_uint::<u64>());
936 println!("Random odd number u128 = {}", rand.random_odd_uint::<u128>());
937 println!("Random odd number usize = {}", rand.random_odd_uint::<usize>());
938 println!("-------------------------------");
939}
940
941fn random_random_odd_under_uint()
942{
943 println!("random_random_odd_under_uint");
944 use cryptocol::random::Any_SHA1;
945 let mut rand = Any_SHA1::new();
946 if let Some(num) = rand.random_odd_under_uint(12_u8)
947 { println!("Random odd number u8 = {}", num); }
948 if let Some(num) = rand.random_odd_under_uint(1234_u16)
949 { println!("Random odd number u16 = {}", num); }
950 if let Some(num) = rand.random_odd_under_uint(12345678_u32)
951 { println!("Random odd number u32 = {}", num); }
952 if let Some(num) = rand.random_odd_under_uint(1234567890123456_u64)
953 { println!("Random odd number u64 = {}", num); }
954 if let Some(num) = rand.random_odd_under_uint(12345678901234567890_u128)
955 { println!("Random odd number u128 = {}", num); }
956 if let Some(num) = rand.random_odd_under_uint(123456789_usize)
957 { println!("Random odd number usize = {}", num); }
958 if let Some(num) = rand.random_odd_under_uint(0_usize)
959 { println!("Random odd number usize = {}", num); }
960 else
961 { println!("No random unsigned number number under 0!"); }
962 println!("-------------------------------");
963}
964
965fn random_random_odd_under_uint_()
966{
967 println!("random_random_odd_under_uint_");
968 use cryptocol::random::Any_SHA2_256;
969 let mut rand = Any_SHA2_256::new();
970
971 let num = rand.random_odd_under_uint_(12_u8);
972 println!("Random odd number u8 = {}", num);
973
974 let num = rand.random_odd_under_uint_(1234_u16);
975 println!("Random odd number u16 = {}", num);
976
977 let num = rand.random_odd_under_uint_(12345678_u32);
978 println!("Random odd number u32 = {}", num);
979
980 let num = rand.random_odd_under_uint_(1234567890123456_u64);
981 println!("Random odd number u64 = {}", num);
982
983 let num = rand.random_odd_under_uint_(12345678901234567890_u128);
984 println!("Random odd number u128 = {}", num);
985
986 let num = rand.random_odd_under_uint_::<usize>(123456789_usize);
987 println!("Random odd number usize = {}", num);
988
989 println!("-------------------------------");
993}
994
995fn random_random_with_msb_set_uint()
996{
997 println!("random_random_with_msb_set_uint");
998 use cryptocol::random::Random_SHA2_512;
999 let mut rand = Random_SHA2_512::new();
1000 println!("Random 8-bit number u8 = {}", rand.random_with_msb_set_uint::<u8>());
1001 println!("Random 16-bit number u16 = {}", rand.random_with_msb_set_uint::<u16>());
1002 println!("Random 32-bit number u32 = {}", rand.random_with_msb_set_uint::<u32>());
1003 println!("Random 64-bit number u64 = {}", rand.random_with_msb_set_uint::<u64>());
1004 println!("Random 128-bit number u128 = {}", rand.random_with_msb_set_uint::<u128>());
1005 println!("Random usize-sized number usize = {}", rand.random_with_msb_set_uint::<usize>());
1006 println!("-------------------------------");
1007}
1008
1009fn random_random_odd_with_msb_set_uint()
1010{
1011 println!("random_random_odd_with_msb_set_uint");
1012 use cryptocol::random::Random;
1013 let mut rand = Random::new();
1014 println!("Random 8-bit odd number u8 = {}", rand.random_with_msb_set_uint::<u8>());
1015 println!("Random 16-bit odd number u16 = {}", rand.random_with_msb_set_uint::<u16>());
1016 println!("Random 32-bit odd number u32 = {}", rand.random_with_msb_set_uint::<u32>());
1017 println!("Random 64-bit odd number u64 = {}", rand.random_with_msb_set_uint::<u64>());
1018 println!("Random 128-bit odd number u128 = {}", rand.random_with_msb_set_uint::<u128>());
1019 println!("Random usize-sized odd number usize = {}", rand.random_with_msb_set_uint::<usize>());
1020 println!("-------------------------------");
1021}
1022
1023fn random_random_prime_using_miller_rabin_uint()
1024{
1025 println!("random_random_prime_using_miller_rabin_uint");
1026 use cryptocol::random::Any;
1027 let mut rand = Any::new();
1028 println!("Random prime number u8 = {}", rand.random_prime_using_miller_rabin_uint::<u8>(5));
1029 println!("Random prime number u16 = {}", rand.random_prime_using_miller_rabin_uint::<u16>(5));
1030 println!("Random prime number u32 = {}", rand.random_prime_using_miller_rabin_uint::<u32>(5));
1031 println!("Random prime number u64 = {}", rand.random_prime_using_miller_rabin_uint::<u64>(5));
1032 println!("Random prime number u128 = {}", rand.random_prime_using_miller_rabin_uint::<u128>(5));
1033 println!("Random prime number usize = {}", rand.random_prime_using_miller_rabin_uint::<usize>(5));
1034 println!("-------------------------------");
1035}
1036
1037fn random_random_prime_with_msb_set_using_miller_rabin_uint()
1038{
1039 println!("random_random_prime_with_msb_set_using_miller_rabin_uint");
1040 use cryptocol::random::Random;
1041 let mut rand = Random::new();
1042 println!("Random 8-bit prime number u8 = {}", rand.random_prime_with_msb_set_using_miller_rabin_uint::<u8>(5));
1043 println!("Random 16-bit prime number u16 = {}", rand.random_prime_with_msb_set_using_miller_rabin_uint::<u16>(5));
1044 println!("Random 32-bit prime number u32 = {}", rand.random_prime_with_msb_set_using_miller_rabin_uint::<u32>(5));
1045 println!("Random 64-bit prime number u64 = {}", rand.random_prime_with_msb_set_using_miller_rabin_uint::<u64>(5));
1046 println!("Random 128-bit prime number u128 = {}", rand.random_prime_with_msb_set_using_miller_rabin_uint::<u128>(5));
1047 println!("Random usize-sized prime number usize = {}", rand.random_prime_with_msb_set_using_miller_rabin_uint::<usize>(5));
1048 println!("-------------------------------");
1049}
1050
1051fn random_random_array()
1052{
1053 println!("random_random_array");
1054 use cryptocol::random::Any;
1055 let mut rand = Any::new();
1056 let num: [u128; 20] = rand.random_array();
1057 for i in 0..20
1058 { println!("Random number {} => {}", i, num[i]); }
1059 println!("-------------------------------");
1060}
1061
1062fn random_put_random_array()
1063{
1064 println!("random_random_array");
1065 use cryptocol::random::Any_MD4;
1066 let mut rand = Any_MD4::new();
1067 let mut num = [0_u64; 32];
1068 rand.put_random_in_array(&mut num);
1069 for i in 0..32
1070 { println!("Random number {} => {}", i, num[i]); }
1071 println!("-------------------------------");
1072}
1073
1074fn random_random_biguint()
1075{
1076 println!("random_random_biguint");
1077 use cryptocol::define_utypes_with;
1078 use cryptocol::random::Any_MD5;
1079
1080 define_utypes_with!(u128);
1081 let mut rand = Any_MD5::new();
1082 let biguint: U512 = rand.random_biguint();
1083 println!("Random Number: {}", biguint);
1084 println!("-------------------------------");
1085}
1086
1087fn random_random_under_biguint()
1088{
1089 println!("random_random_under_biguint");
1090 use cryptocol::define_utypes_with;
1091 use cryptocol::random::Any_SHA0;
1092
1093 define_utypes_with!(u64);
1094 let mut rand = Any_SHA0::new();
1095 let ceiling = U1024::max().wrapping_div_uint(3_u8);
1096 if let Some(r) = rand.random_under_biguint(&ceiling)
1097 {
1098 println!("Random Number less than {} is\n{}", ceiling, r);
1099 assert!(r < ceiling);
1100 }
1101 println!("-------------------------------");
1102}
1103
1104fn random_random_under_biguint_()
1105{
1106 println!("random_random_under_biguint_");
1107 use cryptocol::define_utypes_with;
1108 use cryptocol::random::Any_SHA1;
1109
1110 define_utypes_with!(u32);
1111 let mut rand = Any_SHA1::new();
1112 let ceiling = U1024::max().wrapping_div_uint(3_u8);
1113 let r = rand.random_under_biguint_(&ceiling);
1114 println!("Random Number less than {} is\n{}", ceiling, r);
1115 assert!(r < ceiling);
1116 println!("-------------------------------");
1117}
1118
1119fn random_random_odd_biguint()
1120{
1121 println!("random_random_odd_biguint");
1122 use cryptocol::define_utypes_with;
1123 use cryptocol::random::Any_SHA2_256;
1124
1125 define_utypes_with!(u16);
1126 let mut rand = Any_SHA2_256::new();
1127 let ceiling = U1024::max().wrapping_div_uint(3_u8);
1128 let r = rand.random_under_biguint_(&ceiling);
1129 println!("Random Number less than {} is\n{}", ceiling, r);
1130 assert!(r < ceiling);
1131 println!("-------------------------------");
1132}
1133
1134fn random_random_odd_under_biguint()
1135{
1136 println!("random_random_odd_under_biguint");
1137 use cryptocol::define_utypes_with;
1138 use cryptocol::random::Any_MD4;
1139
1140 define_utypes_with!(u128);
1141 let mut rand = Any_MD4::new();
1142 let ceiling = U1024::max().wrapping_div_uint(4_u8);
1143 if let Some(r) = rand.random_odd_under_biguint(&ceiling)
1144 {
1145 println!("Random odd Number less than {} is\n{}", ceiling, r);
1146 assert!(r < ceiling);
1147 }
1148 println!("-------------------------------");
1149}
1150
1151fn random_random_odd_under_biguint_()
1152{
1153 println!("random_random_odd_under_biguint_");
1154 use cryptocol::define_utypes_with;
1155 use cryptocol::random::Any_SHA2_512;
1156
1157 define_utypes_with!(u8);
1158 let mut rand = Any_SHA2_512::new();
1159 let ceiling = U1024::max().wrapping_div_uint(3_u8);
1160 let r = rand.random_odd_under_biguint_(&ceiling);
1161 println!("Random odd Number less than {} is\n{}", ceiling, r);
1162 assert!(r < ceiling);
1163 println!("-------------------------------");
1164}
1165
1166fn random_random_with_msb_set_biguint()
1167{
1168 println!("random_random_with_msb_set_biguint");
1169 use cryptocol::define_utypes_with;
1170 use cryptocol::random::Any_MD5;
1171
1172 define_utypes_with!(u64);
1173 let mut rand = Any_MD5::new();
1174 let biguint: U512 = rand.random_with_msb_set_biguint();
1175 println!("Random Number: {}", biguint);
1176 println!("-------------------------------");
1177}
1178
1179fn random_random_odd_with_msb_set_biguint()
1180{
1181 println!("random_random_odd_with_msb_set_biguint");
1182 use cryptocol::define_utypes_with;
1183 use cryptocol::random::Any;
1184
1185 define_utypes_with!(u32);
1186 let mut rand = Any::new();
1187 let num:U512 = rand.random_odd_with_msb_set_biguint();
1188 println!("512-bit Random Odd Number = {}", num);
1189 assert!(num > U512::halfmax());
1190 assert!(num.is_odd());
1191 println!("-------------------------------");
1192}
1193
1194fn random_random_prime_using_miller_rabin_biguint()
1195{
1196 println!("random_random_prime_using_miller_rabin_biguint");
1197 use cryptocol::define_utypes_with;
1198 use cryptocol::random::Random;
1199
1200 define_utypes_with!(u16);
1201 let mut rand = Random::new();
1202 let num:U512 = rand.random_prime_using_miller_rabin_biguint(5);
1203 println!("Random Prime Number = {}", num);
1204 assert!(num.is_odd());
1205 println!("-------------------------------");
1206}
1207
1208fn random_random_prime_with_msb_set_using_miller_rabin_biguint()
1209{
1210 println!("random_random_prime_with_msb_set_using_miller_rabin_biguint");
1211 use cryptocol::define_utypes_with;
1212 use cryptocol::random::Any_SHA1;
1213
1214 define_utypes_with!(u16);
1215 let mut rand = Any_SHA1::new();
1216 let num:U512 = rand.random_prime_with_msb_set_using_miller_rabin_biguint(5);
1217 println!("512-bit Random Prime Number = {}", num);
1218 assert!(num.is_odd());
1219 println!("-------------------------------");
1220}
1221
1222
1223