50WM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL&Marcel Fourn (hecc@bitrot.dyndns.org) Safe-Infered    &Marcel Fourn (hecc@bitrot.dyndns.org) Safe-Infered!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 +build point from one in affine coordinates get bitlength get contents of the curve -generic getter, returning the affine x-value !.generic getters, returning the affine y-value "5add an elliptic point onto itself, base for padd a a #add 2 elliptic points $nclass of (non-hyper) Elliptic Curves, has the form y^2+x*y=x^3+A*x^2+B mod P, the parameters being A, B and P &All Elliptic Curves, binary *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) 0RElliptic Point Projective coordinates, three parameters x, y and z, like affine (xz,yz) 3:Elliptic Point Affine coordinates, two parameters x and y 6#class of all Elliptic Curve Points 7gfunction returning the appropriate INF in the specific ECP-Format, for generic higher-level-algorithms 8+build point from one in affine coordinates 9get bitlength :get contents of the curve ;-generic getter, returning the affine x-value <.generic getters, returning the affine y-value =5add an elliptic point onto itself, base for padd a a >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 A!computing the modular inverse of a M m BRthis is a generic handle for Point Multiplication. The implementation may change. D:generic verify, if generic ECP is on EC via getx and gety H!computing the modular inverse of a emod m IRthis is a generic handle for Point Multiplication. The implementation may change. J:generic verify, if generic ECP is on EC via getx and gety G !"#$%&'()*+,-./0123456789:;<=>?@Athe number to invert  the modulus the inverted value Bthe point to multiply times to multiply the point the result-point CD(the elliptic curve point which we check is the point on the curve? EFGHthe point to invert the inverted point Ithe point to multiply times to multiply the point the result-point J(the elliptic curve point which we check is the point on the curve? KLNOPQRSTUVWXYZ[\8 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL86789:;<=>?@ABDC354021-/.*,+FGE !"#&'()$%HIJKL& !"#$%&'()*,+-/.0213546789:;<=>?@ABCDEFGHIJKLNOPQRSTUVWXYZ[\]       !"##$%&'()(*+*,-,./.01234567899:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX hecc-0.3.3Codec.Crypto.ECC.StandardCurvesCodec.Crypto.ECC.BaseStandardCurveF2stdcF_lstdcF_pstdcF_astdcF_bstdcF_xpstdcF_yp StandardCurvestdc_lstdc_pstdc_astdc_bstdc_xpstdc_ypp521p256p384k283b283EPpF2InfpF2EPaF2InfaF2ECPF2infF2fromAffineCoordsF2getBitLengthF2 getCurveF2getxF2getyF2 pdoubleF2paddF2ECSCECurvegetAgetBgetPEPmjInfmjEPjInfjEPpInfpEPaInfaECPinffromAffineCoords getBitLengthgetCurvegetxgetypdoublepaddECmodinvpmulbinaryison p521point p256point p384point modinvF2KpmulF2isonF2 b283point k283pointbaseGHC.Realmod $fECPF2EPpF2 $fShowEPpF2 $fECPF2EPaF2 $fShowEPaF2 $fECurveECSC $fShowECSC $fECPEPmj $fShowEPmj$fECPEPj $fShowEPj$fECPEPp $fShowEPp$fECPEPa $fShowEPa$fShowEC