blob: 90d137d19c690477878873d2749e2574176d1ef6 [file] [log] [blame]
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2517],{3905:(t,e,a)=>{a.d(e,{Zo:()=>i,kt:()=>s});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function l(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?l(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function m(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},l=Object.keys(t);for(n=0;n<l.length;n++)a=l[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n<l.length;n++)a=l[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var k=n.createContext({}),o=function(t){var e=n.useContext(k),a=e;return t&&(a="function"==typeof t?t(e):p(p({},e),t)),a},i=function(t){var e=o(t.components);return n.createElement(k.Provider,{value:e},t.children)},F="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},u=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,k=t.parentName,i=m(t,["components","mdxType","originalType","parentName"]),F=o(a),u=r,s=F["".concat(k,".").concat(u)]||F[u]||d[u]||l;return a?n.createElement(s,p(p({ref:e},i),{},{components:a})):n.createElement(s,p({ref:e},i))}));function s(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,p=new Array(l);p[0]=u;var m={};for(var k in e)hasOwnProperty.call(e,k)&&(m[k]=e[k]);m.originalType=t,m[F]="string"==typeof t?t:r,p[1]=m;for(var o=2;o<l;o++)p[o]=a[o];return n.createElement.apply(null,p)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},7149:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>i,contentTitle:()=>k,default:()=>u,frontMatter:()=>m,metadata:()=>o,toc:()=>F});var n=a(7462),r=a(3366),l=(a(7294),a(3905)),p=["components"],m={id:"ff",title:"FF",sidebar_label:"FF"},k=void 0,o={unversionedId:"cryptojs/ff",id:"cryptojs/ff",title:"FF",description:"FF",source:"@site/../docs/cryptojs/ff.md",sourceDirName:"cryptojs",slug:"/cryptojs/ff",permalink:"/docs/cryptojs/ff",draft:!1,tags:[],version:"current",frontMatter:{id:"ff",title:"FF",sidebar_label:"FF"},sidebar:"docs",previous:{title:"ECP8",permalink:"/docs/cryptojs/ecp8"},next:{title:"FP",permalink:"/docs/cryptojs/fp"}},i={},F=[{value:"FF",id:"ff",level:2},{value:"new FF()",id:"new-ff",level:3},{value:"fF.set(m)",id:"ffsetm",level:3},{value:"fF.copy(b)",id:"ffcopyb",level:3},{value:"fF.rcopy(b)",id:"ffrcopyb",level:3},{value:"fF.dsucopy()",id:"ffdsucopy",level:3},{value:"fF.dscopy()",id:"ffdscopy",level:3},{value:"fF.sducopy()",id:"ffsducopy",level:3},{value:"fF.iszilch()",id:"ffiszilch",level:3},{value:"fF.shrw()",id:"ffshrw",level:3},{value:"fF.shlw()",id:"ffshlw",level:3},{value:"fF.parity()",id:"ffparity",level:3},{value:"fF.radd()",id:"ffradd",level:3},{value:"fF.rinc()",id:"ffrinc",level:3},{value:"fF.rsub()",id:"ffrsub",level:3},{value:"fF.rdec()",id:"ffrdec",level:3},{value:"fF.add()",id:"ffadd",level:3},{value:"fF.sub()",id:"ffsub",level:3},{value:"fF.revsub()",id:"ffrevsub",level:3},{value:"fF.inc()",id:"ffinc",level:3},{value:"fF.rnorm()",id:"ffrnorm",level:3},{value:"fF.shl()",id:"ffshl",level:3},{value:"fF.shr()",id:"ffshr",level:3},{value:"fF.toString()",id:"fftostring",level:3},{value:"fF.toBytes()",id:"fftobytes",level:3},{value:"fF.karmul()",id:"ffkarmul",level:3},{value:"fF.lmul()",id:"fflmul",level:3},{value:"fF.mod()",id:"ffmod",level:3},{value:"fF.reduce(N, ND) \u21d2",id:"ffreducen-nd-",level:3},{value:"fF.dmod(b) \u21d2",id:"ffdmodb-",level:3},{value:"fF.invmodp()",id:"ffinvmodp",level:3},{value:"fF.nres()",id:"ffnres",level:3},{value:"fF.invmod2m()",id:"ffinvmod2m",level:3},{value:"fF.randomnum()",id:"ffrandomnum",level:3},{value:"fF.modmul()",id:"ffmodmul",level:3},{value:"fF.modsqr()",id:"ffmodsqr",level:3},{value:"fF.skpow(e, p)",id:"ffskpowe-p",level:3},{value:"fF.skspow(e, p)",id:"ffskspowe-p",level:3},{value:"fF.power(e, p)",id:"ffpowere-p",level:3},{value:"fF.pow(e, p)",id:"ffpowe-p",level:3},{value:"fF.pow2(e, y, f, p)",id:"ffpow2e-y-f-p",level:3},{value:"fF.cfactor(s) \u21d2",id:"ffcfactors-",level:3},{value:"FF.comp(a, b) \u21d2",id:"ffcompa-b-",level:3},{value:"FF.cswap()",id:"ffcswap",level:3},{value:"FF.mul()",id:"ffmul",level:3},{value:"FF.sqr()",id:"ffsqr",level:3},{value:"FF.prime(p, rmg)",id:"ffprimep-rmg",level:3}],d={toc:F};function u(t){var e=t.components,a=(0,r.Z)(t,p);return(0,l.kt)("wrapper",(0,n.Z)({},d,a,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("a",{name:"FF"}),(0,l.kt)("h2",{id:"ff"},"FF"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": global class",(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF"},"FF"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#new_FF_new"},"new FF()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("em",{parentName:"li"},"instance"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+set"},".set(m)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+copy"},".copy(b)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+rcopy"},".rcopy(b)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+dsucopy"},".dsucopy()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+dscopy"},".dscopy()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+sducopy"},".sducopy()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+iszilch"},".iszilch()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+shrw"},".shrw()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+shlw"},".shlw()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+parity"},".parity()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+radd"},".radd()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+rinc"},".rinc()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+rsub"},".rsub()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+rdec"},".rdec()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+add"},".add()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+sub"},".sub()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+revsub"},".revsub()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+inc"},".inc()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+rnorm"},".rnorm()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+shl"},".shl()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+shr"},".shr()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+toString"},".toString()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+toBytes"},".toBytes()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+karmul"},".karmul()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+lmul"},".lmul()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+mod"},".mod()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+reduce"},".reduce(N, ND)")," \u21d2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+dmod"},".dmod(b)")," \u21d2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+invmodp"},".invmodp()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+nres"},".nres()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+invmod2m"},".invmod2m()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+randomnum"},".randomnum()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+modmul"},".modmul()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+modsqr"},".modsqr()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+skpow"},".skpow(e, p)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+skspow"},".skspow(e, p)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+power"},".power(e, p)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+pow"},".pow(e, p)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+pow2"},".pow2(e, y, f, p)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF+cfactor"},".cfactor(s)")," \u21d2"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("em",{parentName:"li"},"static"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF.comp"},".comp(a, b)")," \u21d2"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF.cswap"},".cswap()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF.mul"},".mul()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF.sqr"},".sqr()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FF.prime"},".prime(p, rmg)"))))))),(0,l.kt)("a",{name:"new_FF_new"}),(0,l.kt)("h3",{id:"new-ff"},"new FF()"),(0,l.kt)("p",null,"Creates an instance of FF."),(0,l.kt)("a",{name:"FF+set"}),(0,l.kt)("h3",{id:"ffsetm"},"fF.set(m)"),(0,l.kt)("p",null,"set to integer"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"m"),(0,l.kt)("td",{parentName:"tr",align:null},"Integer value to be set to")))),(0,l.kt)("a",{name:"FF+copy"}),(0,l.kt)("h3",{id:"ffcopyb"},"fF.copy(b)"),(0,l.kt)("p",null,"copy from FF b"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"b"),(0,l.kt)("td",{parentName:"tr",align:null},"FF element to copy from")))),(0,l.kt)("a",{name:"FF+rcopy"}),(0,l.kt)("h3",{id:"ffrcopyb"},"fF.rcopy(b)"),(0,l.kt)("p",null,"copy from FF b"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"b"),(0,l.kt)("td",{parentName:"tr",align:null},"FF element to copy from")))),(0,l.kt)("a",{name:"FF+dsucopy"}),(0,l.kt)("h3",{id:"ffdsucopy"},"fF.dsucopy()"),(0,l.kt)("p",null,"x=y","<","<","n"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+dscopy"}),(0,l.kt)("h3",{id:"ffdscopy"},"fF.dscopy()"),(0,l.kt)("p",null,"x=y"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+sducopy"}),(0,l.kt)("h3",{id:"ffsducopy"},"fF.sducopy()"),(0,l.kt)("p",null,"x=y",">",">","n"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+iszilch"}),(0,l.kt)("h3",{id:"ffiszilch"},"fF.iszilch()"),(0,l.kt)("p",null,"test equals 0"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+shrw"}),(0,l.kt)("h3",{id:"ffshrw"},"fF.shrw()"),(0,l.kt)("p",null,"shift right by BIGBITS-bit words"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+shlw"}),(0,l.kt)("h3",{id:"ffshlw"},"fF.shlw()"),(0,l.kt)("p",null,"shift left by BIGBITS-bit words"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+parity"}),(0,l.kt)("h3",{id:"ffparity"},"fF.parity()"),(0,l.kt)("p",null,"extract last bit"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+radd"}),(0,l.kt)("h3",{id:"ffradd"},"fF.radd()"),(0,l.kt)("p",null,"recursive add"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+rinc"}),(0,l.kt)("h3",{id:"ffrinc"},"fF.rinc()"),(0,l.kt)("p",null,"recursive inc"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+rsub"}),(0,l.kt)("h3",{id:"ffrsub"},"fF.rsub()"),(0,l.kt)("p",null,"recursive sub"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+rdec"}),(0,l.kt)("h3",{id:"ffrdec"},"fF.rdec()"),(0,l.kt)("p",null,"recursive dec"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+add"}),(0,l.kt)("h3",{id:"ffadd"},"fF.add()"),(0,l.kt)("p",null,"simple add"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+sub"}),(0,l.kt)("h3",{id:"ffsub"},"fF.sub()"),(0,l.kt)("p",null,"simple sub"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+revsub"}),(0,l.kt)("h3",{id:"ffrevsub"},"fF.revsub()"),(0,l.kt)("p",null,"reverse sub"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+inc"}),(0,l.kt)("h3",{id:"ffinc"},"fF.inc()"),(0,l.kt)("p",null,"increment/decrement by a small integer"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+rnorm"}),(0,l.kt)("h3",{id:"ffrnorm"},"fF.rnorm()"),(0,l.kt)("p",null,"normalise - but hold any overflow in top part unless n","<","0"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+shl"}),(0,l.kt)("h3",{id:"ffshl"},"fF.shl()"),(0,l.kt)("p",null,"shift left by one bit"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+shr"}),(0,l.kt)("h3",{id:"ffshr"},"fF.shr()"),(0,l.kt)("p",null,"shift right by one bit"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+toString"}),(0,l.kt)("h3",{id:"fftostring"},"fF.toString()"),(0,l.kt)("p",null,"Convert to Hex String"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+toBytes"}),(0,l.kt)("h3",{id:"fftobytes"},"fF.toBytes()"),(0,l.kt)("p",null,"Convert FFs to/from byte arrays"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+karmul"}),(0,l.kt)("h3",{id:"ffkarmul"},"fF.karmul()"),(0,l.kt)("p",null,"z=x","*","y, t is workspace"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+lmul"}),(0,l.kt)("h3",{id:"fflmul"},"fF.lmul()"),(0,l.kt)("p",null,"return low part of product this","*","y"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+mod"}),(0,l.kt)("h3",{id:"ffmod"},"fF.mod()"),(0,l.kt)("p",null,"Set b=b mod c"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+reduce"}),(0,l.kt)("h3",{id:"ffreducen-nd-"},"fF.reduce(N, ND) \u21d2"),(0,l.kt)("p",null,"return this mod modulus"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"Returns"),": this mod N",(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"N"),(0,l.kt)("td",{parentName:"tr",align:null},"Mmodulus")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ND"),(0,l.kt)("td",{parentName:"tr",align:null},"Montgomery Constant")))),(0,l.kt)("a",{name:"FF+dmod"}),(0,l.kt)("h3",{id:"ffdmodb-"},"fF.dmod(b) \u21d2"),(0,l.kt)("p",null,"Reduces a double-length FF with respect to a given modulus"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"Returns"),": this mod N",(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"b"),(0,l.kt)("td",{parentName:"tr",align:null},"Mmodulus")))),(0,l.kt)("a",{name:"FF+invmodp"}),(0,l.kt)("h3",{id:"ffinvmodp"},"fF.invmodp()"),(0,l.kt)("p",null,"Set return=1/this mod p. Binary method - a","<","p on entry"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+nres"}),(0,l.kt)("h3",{id:"ffnres"},"fF.nres()"),(0,l.kt)("p",null,"nresidue mod m"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+invmod2m"}),(0,l.kt)("h3",{id:"ffinvmod2m"},"fF.invmod2m()"),(0,l.kt)("p",null,"U=1/a mod 2^m - Arazi & Qi"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+randomnum"}),(0,l.kt)("h3",{id:"ffrandomnum"},"fF.randomnum()"),(0,l.kt)("p",null,"generate random x"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+modmul"}),(0,l.kt)("h3",{id:"ffmodmul"},"fF.modmul()"),(0,l.kt)("p",null,"this","*","=y mod p"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+modsqr"}),(0,l.kt)("h3",{id:"ffmodsqr"},"fF.modsqr()"),(0,l.kt)("p",null,"this","*","=y mod p"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF+skpow"}),(0,l.kt)("h3",{id:"ffskpowe-p"},"fF.skpow(e, p)"),(0,l.kt)("p",null,"this=this^e mod p using side-channel resistant Montgomery Ladder, for large e"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"e"),(0,l.kt)("td",{parentName:"tr",align:null},"exponent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"p"),(0,l.kt)("td",{parentName:"tr",align:null},"modulus")))),(0,l.kt)("a",{name:"FF+skspow"}),(0,l.kt)("h3",{id:"ffskspowe-p"},"fF.skspow(e, p)"),(0,l.kt)("p",null,"this=this^e mod p using side-channel resistant Montgomery Ladder, for short e"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"e"),(0,l.kt)("td",{parentName:"tr",align:null},"exponent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"p"),(0,l.kt)("td",{parentName:"tr",align:null},"modulus")))),(0,l.kt)("a",{name:"FF+power"}),(0,l.kt)("h3",{id:"ffpowere-p"},"fF.power(e, p)"),(0,l.kt)("p",null,"raise to an integer power - right-to-left method"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"e"),(0,l.kt)("td",{parentName:"tr",align:null},"exponent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"p"),(0,l.kt)("td",{parentName:"tr",align:null},"modulus")))),(0,l.kt)("a",{name:"FF+pow"}),(0,l.kt)("h3",{id:"ffpowe-p"},"fF.pow(e, p)"),(0,l.kt)("p",null,"this=this^e mod p, faster but not side channel resistant"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"e"),(0,l.kt)("td",{parentName:"tr",align:null},"exponent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"p"),(0,l.kt)("td",{parentName:"tr",align:null},"modulus")))),(0,l.kt)("a",{name:"FF+pow2"}),(0,l.kt)("h3",{id:"ffpow2e-y-f-p"},"fF.pow2(e, y, f, p)"),(0,l.kt)("p",null,"double exponentiation r=x^e.y^f mod p"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"e"),(0,l.kt)("td",{parentName:"tr",align:null},"exponent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"y"),(0,l.kt)("td",{parentName:"tr",align:null},"FF instance")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f"),(0,l.kt)("td",{parentName:"tr",align:null},"exponent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"p"),(0,l.kt)("td",{parentName:"tr",align:null},"modulus")))),(0,l.kt)("a",{name:"FF+cfactor"}),(0,l.kt)("h3",{id:"ffcfactors-"},"fF.cfactor(s) \u21d2"),(0,l.kt)("p",null,"Test if an FF has factor in common with integer s"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"Returns"),": true or false",(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"s"),(0,l.kt)("td",{parentName:"tr",align:null},"integerexponent")))),(0,l.kt)("a",{name:"FF.comp"}),(0,l.kt)("h3",{id:"ffcompa-b-"},"FF.comp(a, b) \u21d2"),(0,l.kt)("p",null,"compare a and b - must be normalised, and of same length"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"Returns"),": zero of error codetrue or false",(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"a"),(0,l.kt)("td",{parentName:"tr",align:null},"FF number")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"b"),(0,l.kt)("td",{parentName:"tr",align:null},"FF number")))),(0,l.kt)("a",{name:"FF.cswap"}),(0,l.kt)("h3",{id:"ffcswap"},"FF.cswap()"),(0,l.kt)("p",null,"in-place swapping using xor - side channel resistant - lengths must be the same"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF.mul"}),(0,l.kt)("h3",{id:"ffmul"},"FF.mul()"),(0,l.kt)("p",null,"z=x","*","y. Assumes x and y are of same length."),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF.sqr"}),(0,l.kt)("h3",{id:"ffsqr"},"FF.sqr()"),(0,l.kt)("p",null,"z=x^2"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("a",{name:"FF.prime"}),(0,l.kt)("h3",{id:"ffprimep-rmg"},"FF.prime(p, rmg)"),(0,l.kt)("p",null,"Miller-Rabin test for primality."),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,l.kt)("a",{parentName:"p",href:"#FF"},(0,l.kt)("code",null,"FF")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FF{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"p"),(0,l.kt)("td",{parentName:"tr",align:null},"FF instance to be tested")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"rmg"),(0,l.kt)("td",{parentName:"tr",align:null},"an instance of a Cryptographically Secure Random Number Generator")))))}u.isMDXComponent=!0}}]);