!      %Marcel Fourn (hecc@bitrot.dyndns.org    %Marcel Fourn (hecc@bitrot.dyndns.org Elliptic Point Modified Jacobian coordinates, four parameters x,y,z and A*z^4 (A being the first curve-parameter), like affine coordinates (xz^2,yz^3) OElliptic Point Jacobian coordinates, three parameter x, y and z, like affine (xz^2,yz^3) RElliptic Point Projective coordinates, three parameters x, y and z, like affine (xz,yz) :Elliptic Point Affine coordinates, two parameters x and y #class of all Elliptic Curve Points gfunction returning the appropriate INF in the specific ECP-Format, for generic higher-level-algorithms -generic getter, returning the affine x-value .generic getters, returning the affine y-value 7add an elliptic point onto itself, base for padd a a c add 2 elliptic points `class of all Elliptic Curves, has the form y^2=x^3+A*x+B mod P, the parameters being A, B and P !0extended euclidean algorithm, recursive variant !computing the modular inverse of a " m the number to invert  the modulus the inverted value Rthis is a generic handle for Point Multiplication. The implementation may change. the point to multiply times to multiply the point the curve to operate on the result-point #double and add for generic ECP $%:generic verify, if generic ECP is on EC via getx and gety (the elliptic curve point which we check the curve to test on is the point on the curve? 9given a generator and a curve, generate a point randomly ^a generator (a point on the curve which multiplied gets to be every other point on the curve)  the curve 'the random point which will be the key          &        !"#$%hecc-0.2#Codec.Encryption.ECC.StandardCurvesCodec.Encryption.ECC.Base StandardCurvestdc_pstdc_astdc_bstdc_xpstdc_ypp521p256EPmjInfmjEPjInfjEPpInfpEPaInfaECPinfgetxgetypdoublepaddECmodinvpmulisongenkeyeeuklbaseGHC.Realmoddnadd montgladderbinary