This commit updates alot of the bls / curve interfaces. Key points are that Point1 and Point2 have been abstracted to both just be point, in order to reduce code reuse. More methods have been added to the curve, and this switches bls to use the product of pairings.
This also fixes a vulnerability with authentication proof of knowledge of a secret key in bgls, where it was possible to perform a rogue public key attack on a user if they acted as a signing oracle.
This commit updates alot of the bls / curve interfaces. Key points are that Point1 and Point2 have been abstracted to both just be point, in order to reduce code reuse. More methods have been added to the curve, and this switches bls to use the product of pairings.
This also fixes a vulnerability with authentication proof of knowledge of a secret key in bgls, where it was possible to perform a rogue public key attack on a user if they acted as a signing oracle.