Fix ristretto255 equals

This commit is contained in:
Paul Miller 2023-02-27 15:07:45 +00:00
parent 088edd0fbb
commit e64a9d654c
No known key found for this signature in database
GPG Key ID: 697079DA6878B89B

@ -312,7 +312,7 @@ export class RistrettoPoint {
constructor(private readonly ep: ExtendedPoint) {} constructor(private readonly ep: ExtendedPoint) {}
static fromAffine(ap: AffinePoint<bigint>) { static fromAffine(ap: AffinePoint<bigint>) {
return new RistrettoPoint(ed25519.ExtendedPoint.fromAffine(ap)) return new RistrettoPoint(ed25519.ExtendedPoint.fromAffine(ap));
} }
/** /**
@ -407,7 +407,7 @@ export class RistrettoPoint {
equals(other: RistrettoPoint): boolean { equals(other: RistrettoPoint): boolean {
assertRstPoint(other); assertRstPoint(other);
const { ex: X1, ey: Y1 } = this.ep; const { ex: X1, ey: Y1 } = this.ep;
const { ex: X2, ey: Y2 } = this.ep; const { ex: X2, ey: Y2 } = other.ep;
const mod = ed25519.CURVE.Fp.create; const mod = ed25519.CURVE.Fp.create;
// (x1 * y2 == y1 * x2) | (y1 * y2 == x1 * x2) // (x1 * y2 == y1 * x2) | (y1 * y2 == x1 * x2)
const one = mod(X1 * Y2) === mod(Y1 * X2); const one = mod(X1 * Y2) === mod(Y1 * X2);
@ -440,6 +440,6 @@ export const hash_to_ristretto255 = (msg: Uint8Array, options: htf.htfBasicOpts)
const d = options.DST; const d = options.DST;
const DST = typeof d === 'string' ? utf8ToBytes(d) : d; const DST = typeof d === 'string' ? utf8ToBytes(d) : d;
const uniform_bytes = htf.expand_message_xmd(msg, DST, 64, sha512); const uniform_bytes = htf.expand_message_xmd(msg, DST, 64, sha512);
const P = RistrettoPoint.hashToCurve(uniform_bytes) const P = RistrettoPoint.hashToCurve(uniform_bytes);
return P; return P;
}; };