xref: /php-src/ext/gmp/tests/gmp_cryptography.phpt (revision 47942be1)
1--TEST--
2test some of the simple operations done in ECC cryptography (GH-16870)
3--EXTENSIONS--
4gmp
5--FILE--
6<?php
7$big_128 = gmp_init("275458973678998164972199298356823445708", 10);
8$big_256 = gmp_init("105897378200704506708747774951422238999742054168150946506894304230846229930690", 10);
9$big_384 = gmp_init("6416793922163250205142333121845147158821454739198730072980369042145699078647151545580979451456624745026383368515606", 10);
10$big_521 = gmp_init("1780138296718969229154737597263093326930734138014367844231086609903991655888322554437298817404082596582997382075361284417827317144352840347188199593652743789", 10);
11
12// in ecc crypto key lengths of 256, 384 and 521 (yes, 521, not 512) are typical,
13// and the calculations seem to include squaring and cubing the key,
14// so test those operations
15var_dump((string) gmp_pow($big_128, 2));
16var_dump((string) gmp_pow($big_128, 3));
17
18var_dump((string) gmp_pow($big_256, 2));
19var_dump((string) gmp_pow($big_256, 3));
20
21var_dump((string) gmp_pow($big_384, 2));
22var_dump((string) gmp_pow($big_384, 3));
23
24var_dump((string) gmp_pow($big_521, 2));
25var_dump((string) gmp_pow($big_521, 3));
26
27?>
28--EXPECT--
29string(77) "75877646180287003845291692588996321992008024509271171205840397374930023621264"
30string(116) "20901178542000013443295783507452967008255111311111391381095411786512605029527130998551663048238767676593252458334912"
31string(155) "11214254709783046066761897074581165564696209875788503860615296581570239055173596662994580613114615553617959320367624022951770022252133452732995602203876100"
32string(232) "1187560172240926986956555551805946700914014146395850601682624192167183140821546786142042010581624015945796617035803644080855311724420346850512769661608026325318823192181186500090109111010574371273491473985103578154963883352347509000"
33string(230) "41175244239511227932271803271789465275501438128816738161335879819867157609061333189838579416997011220296835767015204168726569753974321567200401024149587401209307771709029048946370759582286096704404540466667318675170269947865547236"
34string(345) "264213056979683026715444213001489498112251992104549535125497320782388835160296854596249682279610208850530256165562505337646325742090947380083481042994421218556776724906795900034870043631716997303728488772811762108912277655229349137086580494553471889656657230883768271890897138746582039089128053875620299138149315547875444447674573987934196165016"
35string(313) "3168892355445512933444812965909472020409957119791476182178991646344151155563236535370283312345943041041662641584330401473731788344553589640556705580180081371688996848117690101021660395072221488243400947129794119144961728431002781350889740682623487619845390287149216977767858293453242551076767446272230208078076521"
36string(469) "5641066640108537808257411937508162073054596465771071759059984994432846497317882144255197676537588304873835452821393566559424565939427398239568910381599042586683472720047480341060077571873252225062218300704671408283921205864218742798766467986541832811143938893251282757214673131758780892167922492222473153470483402146144945253685265421614344082690235633775622262137908096304889066587289890823326962594240368957840634699139830536223598719285051876381571976198029149478069"
37