blob: 9aaad3cabe3384e6de81697e209c0e09d05d45ae [file] [log] [blame]
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8278],{3905:(t,e,a)=>{a.d(e,{Zo:()=>o,kt:()=>s});var n=a(7294);function l(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function p(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?r(Object(a),!0).forEach((function(e){l(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):r(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function i(t,e){if(null==t)return{};var a,n,l=function(t,e){if(null==t)return{};var a,n,l={},r=Object.keys(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||(l[a]=t[a]);return l}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(l[a]=t[a])}return l}var k=n.createContext({}),m=function(t){var e=n.useContext(k),a=e;return t&&(a="function"==typeof t?t(e):p(p({},e),t)),a},o=function(t){var e=m(t.components);return n.createElement(k.Provider,{value:e},t.children)},c="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},d=n.forwardRef((function(t,e){var a=t.components,l=t.mdxType,r=t.originalType,k=t.parentName,o=i(t,["components","mdxType","originalType","parentName"]),c=m(a),d=l,s=c["".concat(k,".").concat(d)]||c[d]||u[d]||r;return a?n.createElement(s,p(p({ref:e},o),{},{components:a})):n.createElement(s,p({ref:e},o))}));function s(t,e){var a=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var r=a.length,p=new Array(r);p[0]=d;var i={};for(var k in e)hasOwnProperty.call(e,k)&&(i[k]=e[k]);i.originalType=t,i[c]="string"==typeof t?t:l,p[1]=i;for(var m=2;m<r;m++)p[m]=a[m];return n.createElement.apply(null,p)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},79:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>o,contentTitle:()=>k,default:()=>d,frontMatter:()=>i,metadata:()=>m,toc:()=>c});var n=a(7462),l=a(3366),r=(a(7294),a(3905)),p=["components"],i={id:"ecp",title:"ECP",sidebar_label:"ECP"},k=void 0,m={unversionedId:"cryptojs/ecp",id:"cryptojs/ecp",title:"ECP",description:"ECP",source:"@site/../docs/cryptojs/ecp.md",sourceDirName:"cryptojs",slug:"/cryptojs/ecp",permalink:"/docs/cryptojs/ecp",draft:!1,tags:[],version:"current",frontMatter:{id:"ecp",title:"ECP",sidebar_label:"ECP"},sidebar:"docs",previous:{title:"ECDH",permalink:"/docs/cryptojs/ecdh"},next:{title:"ECP2",permalink:"/docs/cryptojs/ecp2"}},o={},c=[{value:"ECP",id:"ecp",level:2},{value:"new ECP()",id:"new-ecp",level:3},{value:"ecP.is_infinity(1)",id:"ecpis_infinity1",level:3},{value:"ecP.cswap()",id:"ecpcswap",level:3},{value:"ecP.cmove()",id:"ecpcmove",level:3},{value:"ecP.select()",id:"ecpselect",level:3},{value:"ecP.copy(P)",id:"ecpcopyp",level:3},{value:"ecP.neg()",id:"ecpneg",level:3},{value:"ecP.inf()",id:"ecpinf",level:3},{value:"ecP.setxy(ix, iy)",id:"ecpsetxyix-iy",level:3},{value:"ecP.setxi(ix, s)",id:"ecpsetxiix-s",level:3},{value:"ecP.setx(ix)",id:"ecpsetxix",level:3},{value:"ecP.affine()",id:"ecpaffine",level:3},{value:"ecP.getX()",id:"ecpgetx",level:3},{value:"ecP.getY()",id:"ecpgety",level:3},{value:"ecP.getS()",id:"ecpgets",level:3},{value:"ecP.getx()",id:"ecpgetx-1",level:3},{value:"ecP.gety()",id:"ecpgety-1",level:3},{value:"ecP.getz()",id:"ecpgetz",level:3},{value:"ecP.toBytes(b)",id:"ecptobytesb",level:3},{value:"ecP.toString() \u21d2",id:"ecptostring-",level:3},{value:"ecP.dbl()",id:"ecpdbl",level:3},{value:"ecP.add()",id:"ecpadd",level:3},{value:"ecP.sub(Q)",id:"ecpsubq",level:3},{value:"ecP.pinmul(e, bts)",id:"ecppinmule-bts",level:3},{value:"ecP.cfp()",id:"ecpcfp",level:3},{value:"ecP.mul(e)",id:"ecpmule",level:3},{value:"ecP.mul2(e, Q, f)",id:"ecpmul2e-q-f",level:3},{value:"ECP.generator()",id:"ecpgenerator",level:3},{value:"ECP.fromBytes(b)",id:"ecpfrombytesb",level:3},{value:"ECP.RHS(x)",id:"ecprhsx",level:3}],u={toc:c};function d(t){var e=t.components,a=(0,l.Z)(t,p);return(0,r.kt)("wrapper",(0,n.Z)({},u,a,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("a",{name:"ECP"}),(0,r.kt)("h2",{id:"ecp"},"ECP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": global class",(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP"},"ECP"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#new_ECP_new"},"new ECP()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("em",{parentName:"li"},"instance"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+is_infinity"},".is_infinity(1)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+cswap"},".cswap()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+cmove"},".cmove()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+select"},".select()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+copy"},".copy(P)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+neg"},".neg()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+inf"},".inf()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+setxy"},".setxy(ix, iy)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+setxi"},".setxi(ix, s)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+setx"},".setx(ix)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+affine"},".affine()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+getX"},".getX()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+getY"},".getY()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+getS"},".getS()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+getx"},".getx()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+gety"},".gety()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+getz"},".getz()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+toBytes"},".toBytes(b)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+toString"},".toString()")," \u21d2"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+dbl"},".dbl()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+add"},".add()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+sub"},".sub(Q)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+pinmul"},".pinmul(e, bts)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+cfp"},".cfp()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+mul"},".mul(e)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP+mul2"},".mul2(e, Q, f)")))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("em",{parentName:"li"},"static"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP.generator"},".generator()")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP.fromBytes"},".fromBytes(b)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#ECP.RHS"},".RHS(x)"))))))),(0,r.kt)("a",{name:"new_ECP_new"}),(0,r.kt)("h3",{id:"new-ecp"},"new ECP()"),(0,r.kt)("p",null,"Creates an instance of ECP"),(0,r.kt)("a",{name:"ECP+is_infinity"}),(0,r.kt)("h3",{id:"ecpis_infinity1"},"ecP.is_infinity(1)"),(0,r.kt)("p",null,"Tests for ECP point equal to infinity"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"if infinity, else returns 0")))),(0,r.kt)("a",{name:"ECP+cswap"}),(0,r.kt)("h3",{id:"ecpcswap"},"ecP.cswap()"),(0,r.kt)("p",null,"conditional swap of this and Q dependant on dCopy ECP point to another ECP point"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+cmove"}),(0,r.kt)("h3",{id:"ecpcmove"},"ecP.cmove()"),(0,r.kt)("p",null,"conditional move of Q to P dependant on d"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+select"}),(0,r.kt)("h3",{id:"ecpselect"},"ecP.select()"),(0,r.kt)("p",null,"Constant time select from pre-computed table"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+copy"}),(0,r.kt)("h3",{id:"ecpcopyp"},"ecP.copy(P)"),(0,r.kt)("p",null,"Copy ECP point to another ECP point"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"P"),(0,r.kt)("td",{parentName:"tr",align:null},"ECP instance")))),(0,r.kt)("a",{name:"ECP+neg"}),(0,r.kt)("h3",{id:"ecpneg"},"ecP.neg()"),(0,r.kt)("p",null,"set this=-this"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+inf"}),(0,r.kt)("h3",{id:"ecpinf"},"ecP.inf()"),(0,r.kt)("p",null,"Set ECP to point-at-infinity"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+setxy"}),(0,r.kt)("h3",{id:"ecpsetxyix-iy"},"ecP.setxy(ix, iy)"),(0,r.kt)("p",null,"set this=(x,y)"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ix"),(0,r.kt)("td",{parentName:"tr",align:null},"x-value")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"iy"),(0,r.kt)("td",{parentName:"tr",align:null},"y-value")))),(0,r.kt)("a",{name:"ECP+setxi"}),(0,r.kt)("h3",{id:"ecpsetxiix-s"},"ecP.setxi(ix, s)"),(0,r.kt)("p",null,"set this=x, where x is ctx.BIG, y is derived from sign s"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ix"),(0,r.kt)("td",{parentName:"tr",align:null},"x-value")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"s"),(0,r.kt)("td",{parentName:"tr",align:null},"sign to derive y")))),(0,r.kt)("a",{name:"ECP+setx"}),(0,r.kt)("h3",{id:"ecpsetxix"},"ecP.setx(ix)"),(0,r.kt)("p",null,"set this=x, y calculated from curve equation"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ix"),(0,r.kt)("td",{parentName:"tr",align:null},"x-value")))),(0,r.kt)("a",{name:"ECP+affine"}),(0,r.kt)("h3",{id:"ecpaffine"},"ecP.affine()"),(0,r.kt)("p",null,"convert this to affine, from (x,y,z) to (x,y)"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+getX"}),(0,r.kt)("h3",{id:"ecpgetx"},"ecP.getX()"),(0,r.kt)("p",null,"extract affine x as ctx.FP2"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+getY"}),(0,r.kt)("h3",{id:"ecpgety"},"ecP.getY()"),(0,r.kt)("p",null,"extract affine y as ctx.FP2"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+getS"}),(0,r.kt)("h3",{id:"ecpgets"},"ecP.getS()"),(0,r.kt)("p",null,"get sign of Y"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+getx"}),(0,r.kt)("h3",{id:"ecpgetx-1"},"ecP.getx()"),(0,r.kt)("p",null,"extract x as ctx.FP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+gety"}),(0,r.kt)("h3",{id:"ecpgety-1"},"ecP.gety()"),(0,r.kt)("p",null,"extract y as ctx.FP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+getz"}),(0,r.kt)("h3",{id:"ecpgetz"},"ecP.getz()"),(0,r.kt)("p",null,"extract z as ctx.FP"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+toBytes"}),(0,r.kt)("h3",{id:"ecptobytesb"},"ecP.toBytes(b)"),(0,r.kt)("p",null,"convert this to byte arrayextract projective x"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"b"),(0,r.kt)("td",{parentName:"tr",align:null},"byte array output")))),(0,r.kt)("a",{name:"ECP+toString"}),(0,r.kt)("h3",{id:"ecptostring-"},"ecP.toString() \u21d2"),(0,r.kt)("p",null,"convert this to hex string"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"Returns"),": hex string",(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+dbl"}),(0,r.kt)("h3",{id:"ecpdbl"},"ecP.dbl()"),(0,r.kt)("p",null,"this+=this"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+add"}),(0,r.kt)("h3",{id:"ecpadd"},"ecP.add()"),(0,r.kt)("p",null,"Adds ECP instances"),(0,r.kt)("p",null,"param Q ECP instance"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+sub"}),(0,r.kt)("h3",{id:"ecpsubq"},"ecP.sub(Q)"),(0,r.kt)("p",null,"Subtracts ECP instance Q from this"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Q"),(0,r.kt)("td",{parentName:"tr",align:null},"ECP instance")))),(0,r.kt)("a",{name:"ECP+pinmul"}),(0,r.kt)("h3",{id:"ecppinmule-bts"},"ecP.pinmul(e, bts)"),(0,r.kt)("p",null,"constant time multiply by small integer of length bts - use ladder"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"e"),(0,r.kt)("td",{parentName:"tr",align:null},"small integer")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"bts"),(0,r.kt)("td",{parentName:"tr",align:null},"e bit length")))),(0,r.kt)("a",{name:"ECP+cfp"}),(0,r.kt)("h3",{id:"ecpcfp"},"ecP.cfp()"),(0,r.kt)("p",null,"multiply this by the curves cofactor"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP+mul"}),(0,r.kt)("h3",{id:"ecpmule"},"ecP.mul(e)"),(0,r.kt)("p",null,"Multiplies an ECP instance P by a BIG, side-channel resistant"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"e"),(0,r.kt)("td",{parentName:"tr",align:null},"BIG number multiplier")))),(0,r.kt)("a",{name:"ECP+mul2"}),(0,r.kt)("h3",{id:"ecpmul2e-q-f"},"ecP.mul2(e, Q, f)"),(0,r.kt)("p",null,"Return e.this+f.Q"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"e"),(0,r.kt)("td",{parentName:"tr",align:null},"BIG number multiplier")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Q"),(0,r.kt)("td",{parentName:"tr",align:null},"ECP instance")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"f"),(0,r.kt)("td",{parentName:"tr",align:null},"BIG number multiplier")))),(0,r.kt)("a",{name:"ECP.generator"}),(0,r.kt)("h3",{id:"ecpgenerator"},"ECP.generator()"),(0,r.kt)("p",null,"Set group generator"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("a",{name:"ECP.fromBytes"}),(0,r.kt)("h3",{id:"ecpfrombytesb"},"ECP.fromBytes(b)"),(0,r.kt)("p",null,"convert from byte array to point"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"b"),(0,r.kt)("td",{parentName:"tr",align:null},"input byte array")))),(0,r.kt)("a",{name:"ECP.RHS"}),(0,r.kt)("h3",{id:"ecprhsx"},"ECP.RHS(x)"),(0,r.kt)("p",null,"Calculate RHS of the curve equation"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,r.kt)("a",{parentName:"p",href:"#ECP"},(0,r.kt)("code",null,"ECP")),(0,r.kt)("br",{parentName:"p"}),"\n",(0,r.kt)("strong",{parentName:"p"},"this"),": ",(0,r.kt)("code",null,'{"{"}ECP{"}"}')," "),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Param"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"x"),(0,r.kt)("td",{parentName:"tr",align:null},"x-value")))))}d.isMDXComponent=!0}}]);