{"openapi":"3.1.0","info":{"title":"ECC & Montgomery Lab","description":"This tool visualizes the step-by-step computation of elliptic curve cryptography operations like point addition and scalar multiplication using different algorithms and coordinate systems for educational learning.","version":"1.0"},"servers":[{"url":"https://dabbled.ai"}],"paths":{"/apps/ecc-montgomery-lab":{"get":{"operationId":"eccMontgomeryLab","summary":"This tool visualizes the step-by-step computation of elliptic curve cryptography operations like point addition and scalar multiplication using different algorithms and coordinate systems for educational learning.","parameters":[{"name":"field_modulus_p","in":"query","required":true,"description":"Field modulus p (dec / hex / expression)","schema":{"type":"string"}},{"name":"prime_preset","in":"query","required":false,"description":"Prime presets","schema":{"type":"string","enum":["","97","263","1009","2^224-2^96+1","2^256-2^224+2^192+2^96-1","2^384-2^128-2^96+2^32-1","2^256-2^32-977","2^255-19"]}},{"name":"curve_form","in":"query","required":true,"description":"Curve form (Weierstrass vs Montgomery)","schema":{"type":"boolean"}},{"name":"weierstrass_a","in":"query","required":false,"description":"Weierstrass coefficient a","schema":{"type":"string"}},{"name":"weierstrass_b","in":"query","required":false,"description":"Weierstrass coefficient b","schema":{"type":"string"}},{"name":"base_point_x","in":"query","required":false,"description":"Base point P x-coordinate","schema":{"type":"string"}},{"name":"base_point_y","in":"query","required":false,"description":"Base point P y-coordinate","schema":{"type":"string"}},{"name":"scalar_k","in":"query","required":false,"description":"Scalar k","schema":{"type":"string"}},{"name":"show_formulas","in":"query","required":false,"description":"Show formulas","schema":{"type":"boolean"}},{"name":"show_cost_counters","in":"query","required":false,"description":"Show cost counters","schema":{"type":"boolean"}},{"name":"constant_time_mode","in":"query","required":false,"description":"Constant-time mode","schema":{"type":"boolean"}},{"name":"show_limb_arithmetic","in":"query","required":false,"description":"Show limb-level arithmetic","schema":{"type":"boolean"}},{"name":"coordinate_system","in":"query","required":false,"description":"Coordinate system","schema":{"type":"string","enum":["aff","jac","xz"]}},{"name":"point_operation","in":"query","required":false,"description":"Point operation","schema":{"type":"string","enum":["add","dbl"]}},{"name":"multiplication_algorithm","in":"query","required":false,"description":"Scalar multiplication algorithm","schema":{"type":"string","enum":["dbladd","ladder","window"]}},{"name":"window_width","in":"query","required":false,"description":"Window width w (for windowed algorithm)","schema":{"type":"string","enum":["2","3","4","5"]}},{"name":"animation_speed","in":"query","required":false,"description":"Animation speed (ms)","schema":{"type":"number"}},{"name":"word_size","in":"query","required":false,"description":"Word size w (bits)","schema":{"type":"string","enum":["8","16","32","64"]}},{"name":"montgomery_operand_a","in":"query","required":false,"description":"Montgomery arithmetic operand a","schema":{"type":"string"}},{"name":"montgomery_operand_b","in":"query","required":false,"description":"Montgomery arithmetic operand b","schema":{"type":"string"}}],"responses":{"200":{"description":"Rendered app reflecting the given inputs."}}}}}}