3.0.ipv8.attestation.wallet.primitives.ec ========================================= .. py:module:: 3.0.ipv8.attestation.wallet.primitives.ec .. autoapi-nested-parse:: Ported from "The Weil Pairing on Elliptic Curves and Its Cryptographic Applications" - Appendix D by Alex Edward Aftuk. Functions --------- .. autoapisummary:: 3.0.ipv8.attestation.wallet.primitives.ec.esum 3.0.ipv8.attestation.wallet.primitives.ec.H 3.0.ipv8.attestation.wallet.primitives.ec.millercalc 3.0.ipv8.attestation.wallet.primitives.ec.weilpairing Module Contents --------------- .. py:function:: esum(mod: int, p: str | tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value], q: str | tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value]) -> str | tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value] Perform Elliptic Curve addition of points P and Q over Fp^2. .. py:function:: H(mod: int, p: str | tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value], q: str | tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value], x: 3.0.ipv8.attestation.wallet.primitives.value.FP2Value, y: 3.0.ipv8.attestation.wallet.primitives.value.FP2Value) -> 3.0.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). .. py:function:: millercalc(mod: int, M: int, p: tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value], R: tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value]) -> 3.0.ipv8.attestation.wallet.primitives.value.FP2Value Perform the Miller calculation for message M point P and coordinates given by R. .. py:function:: weilpairing(mod: int, m: int, P: tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value], Q: tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value], S: tuple[3.0.ipv8.attestation.wallet.primitives.value.FP2Value, 3.0.ipv8.attestation.wallet.primitives.value.FP2Value]) -> 3.0.ipv8.attestation.wallet.primitives.value.FP2Value Create a Weil pairing for message m, points P and Q and DH secret S.