24 lines
		
	
	
		
			792 B
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			792 B
		
	
	
	
		
			C++
		
	
	
	
	
	
|  | #include <tommath.h>
 | ||
|  | #include <cassert>
 | ||
|  | #include <tomcrypt.h>
 | ||
|  | 
 | ||
|  | void testTomMath(){ | ||
|  |     mp_int x{}; | ||
|  |     mp_init(&x); | ||
|  |     mp_read_radix(&x, "2280880776330203449294339386427307168808659578661428574166839717243346815923951250209099128371839254311904649344289668000305972691071196233379180504231889", 10); | ||
|  | 
 | ||
|  |     mp_int n{}; | ||
|  |     mp_init(&n); | ||
|  |     mp_read_radix(&n, "436860662135489324843442078840868871476482593772359054106809367217662215065650065606351911592188139644751920724885335056877706082800496073391354240530016", 10); | ||
|  | 
 | ||
|  |     mp_int exp{}; | ||
|  |     mp_init(&exp); | ||
|  |     mp_2expt(&exp, 1000); | ||
|  | 
 | ||
|  | 
 | ||
|  |     mp_int r{}; | ||
|  |     mp_init(&r); | ||
|  |     assert(mp_exptmod(&x, &exp, &n, &r) != CRYPT_OK); //if this method succeed than tommath failed. Unknown why but it is so
 | ||
|  | 
 | ||
|  |     mp_clear_multi(&x, &n, &exp, &r, nullptr); | ||
|  | } |