2.13.ipv8.attestation.wallet.primitives.ec

Ported from “The Weil Pairing on Elliptic Curves and Its Cryptographic Applications” - Appendix D by Alex Edward Aftuk.

Module Contents

Functions

2.13.ipv8.attestation.wallet.primitives.ec.esum(mod: int, p: str | tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value], q: str | tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value]) str | tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value]

Perform Elliptic Curve addition of points P and Q over Fp^2.

2.13.ipv8.attestation.wallet.primitives.ec.H(mod: int, p: str | tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value], q: str | tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value], x: 2.13.ipv8.attestation.wallet.primitives.value.FP2Value, y: 2.13.ipv8.attestation.wallet.primitives.value.FP2Value) 2.13.ipv8.attestation.wallet.primitives.value.FP2Value

Perform the h_{T,T} function for the Miller calculation with divisors P and Q for coordinate (x,y).

2.13.ipv8.attestation.wallet.primitives.ec.millercalc(mod: int, M: int, p: tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value], R: tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value]) 2.13.ipv8.attestation.wallet.primitives.value.FP2Value

Perform the Miller calculation for message M point P and coordinates given by R.

2.13.ipv8.attestation.wallet.primitives.ec.weilpairing(mod: int, m: int, P: tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value], Q: tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value], S: tuple[2.13.ipv8.attestation.wallet.primitives.value.FP2Value, 2.13.ipv8.attestation.wallet.primitives.value.FP2Value]) 2.13.ipv8.attestation.wallet.primitives.value.FP2Value

Create a Weil pairing for message m, points P and Q and DH secret S.