![]() |
|
#4
|
||||
|
||||
|
Uhmm I'm not expert in Delphi (ASM is better) but g,y are TECPoint data types.
Tecpoint is a record :TECPoint = Record XCoordinate, YCoordinate : TFGInt; Infinity : Boolean; You can manipulate TECPOINT to convert to string ( ECPointToECPointString) or reverse (ECPointStringToECPoint). TEcpoints are this y^2 = x^3 + a*x + b and they are points on a elliptic curve. Maybe this can help you: ECPointKMultiple(g, p, a, x, y); 'Code: Begin // setting up parameters writeln('setting up EC parameters ...'); Base256StringToFGInt('222222aatzzzznnn', p); ok := true; While ok Do Begin FindPrimeGoodCurveAndPoint(p, a, b, h, n, 60, g); IsECSuperSingular(p, a, b, ok); If ok Then Begin FGIntDestroy(a); FGIntDestroy(b); FGIntDestroy(h); FGIntDestroy(n); ECPointDestroy(g); End; End; Base256StringToFGInt('ergezam', x); ECPointKMultiple(g, p, a, x, y); Base10StringToFGInt('63557', k); Base2StringToFGInt('1', one); FGIntGCD(k, n, temp); While Not (FGIntCompareAbs(one, temp) = Eq) Do Begin FGIntDestroy(temp); FGIntAddBis(k, one); FGIntGCD(k, n, temp); End; FGIntDestroy(temp); FGIntDestroy(one); // with all these precautions everything is set up for signing/verifying T := 'A black hole is a place where God divided by zero'; writeln('Signing the following string: ', T); ECDSASign(T, p, a, x, n, k, g, r, s); writeln('Verifying signature...'); ECDSAVerify(T, r, s, p, a, n, g, y, ok); If ok Then writeln('Verification complete: signature is valid') Else writeln('Signature is not valid'); FGIntDestroy(p); FGIntDestroy(a); FGIntDestroy(n); FGIntDestroy(k); FGIntDestroy(h); FGIntDestroy(x); ECPointDestroy(g); ECPointDestroy(y); readln; 'End CODE
__________________
omnino lo qui quae que quod somos es pulvis en el ventus. TAOS -The opposite of courage in our society is not cowardice, but conformity- Last edited by taos; 07-26-2007 at 19:08. |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Looking for FGInt signature pack for IDA Pro | Stingered | General Discussion | 12 | 08-30-2023 21:13 |