blob: 6efbe1462d80a38f23179e26c53e71454b2986be [file] [log] [blame]
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9839],{3905:(t,e,n)=>{n.d(e,{Zo:()=>k,kt:()=>b});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function l(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?p(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function i(t,e){if(null==t)return{};var n,a,r=function(t,e){if(null==t)return{};var n,a,r={},p=Object.keys(t);for(a=0;a<p.length;a++)n=p[a],e.indexOf(n)>=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(t);for(a=0;a<p.length;a++)n=p[a],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var o=a.createContext({}),m=function(t){var e=a.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):l(l({},e),t)),n},k=function(t){var e=m(t.components);return a.createElement(o.Provider,{value:e},t.children)},d="mdxType",s={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},u=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,p=t.originalType,o=t.parentName,k=i(t,["components","mdxType","originalType","parentName"]),d=m(n),u=r,b=d["".concat(o,".").concat(u)]||d[u]||s[u]||p;return n?a.createElement(b,l(l({ref:e},k),{},{components:n})):a.createElement(b,l({ref:e},k))}));function b(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var p=n.length,l=new Array(p);l[0]=u;var i={};for(var o in e)hasOwnProperty.call(e,o)&&(i[o]=e[o]);i.originalType=t,i[d]="string"==typeof t?t:r,l[1]=i;for(var m=2;m<p;m++)l[m]=n[m];return a.createElement.apply(null,l)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},7094:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>k,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>m,toc:()=>d});var a=n(7462),r=n(3366),p=(n(7294),n(3905)),l=["components"],i={id:"dbig",title:"DBIG",sidebar_label:"DBIG"},o=void 0,m={unversionedId:"cryptojs/dbig",id:"cryptojs/dbig",title:"DBIG",description:"DBIG",source:"@site/../docs/cryptojs/dbig.md",sourceDirName:"cryptojs",slug:"/cryptojs/dbig",permalink:"/docs/cryptojs/dbig",draft:!1,tags:[],version:"current",frontMatter:{id:"dbig",title:"DBIG",sidebar_label:"DBIG"},sidebar:"docs",previous:{title:"BLS256",permalink:"/docs/cryptojs/bls256"},next:{title:"ECDH",permalink:"/docs/cryptojs/ecdh"}},k={},d=[{value:"DBIG",id:"dbig",level:2},{value:"new DBIG()",id:"new-dbig",level:3},{value:"dbiG.zero() \u21d2",id:"dbigzero-",level:3},{value:"dbiG.copy() \u21d2",id:"dbigcopy-",level:3},{value:"dbiG.hcopy() \u21d2",id:"dbighcopy-",level:3},{value:"dbiG.norm() \u21d2",id:"dbignorm-",level:3},{value:"dbiG.muladd()",id:"dbigmuladd",level:3},{value:"dbiG.shr() \u21d2",id:"dbigshr-",level:3},{value:"dbiG.shl() \u21d2",id:"dbigshl-",level:3},{value:"dbiG.cmove()",id:"dbigcmove",level:3},{value:"dbiG.add() \u21d2",id:"dbigadd-",level:3},{value:"dbiG.sub() \u21d2",id:"dbigsub-",level:3},{value:"dbiG.nbits() \u21d2",id:"dbignbits-",level:3},{value:"dbiG.toString() \u21d2",id:"dbigtostring-",level:3},{value:"dbiG.mod() \u21d2",id:"dbigmod-",level:3},{value:"dbiG.div() \u21d2",id:"dbigdiv-",level:3},{value:"dbiG.split() \u21d2",id:"dbigsplit-",level:3},{value:"DBIG.comp() \u21d2",id:"dbigcomp-",level:3}],s={toc:d};function u(t){var e=t.components,n=(0,r.Z)(t,l);return(0,p.kt)("wrapper",(0,a.Z)({},s,n,{components:e,mdxType:"MDXLayout"}),(0,p.kt)("a",{name:"DBIG"}),(0,p.kt)("h2",{id:"dbig"},"DBIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": global class",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}')," "),(0,p.kt)("ul",null,(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG"},"DBIG"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#new_DBIG_new"},"new DBIG()")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("em",{parentName:"li"},"instance"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+zero"},".zero()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+copy"},".copy()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+hcopy"},".hcopy()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+norm"},".norm()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+muladd"},".muladd()")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+shr"},".shr()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+shl"},".shl()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+cmove"},".cmove()")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+add"},".add()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+sub"},".sub()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+nbits"},".nbits()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+toString"},".toString()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+mod"},".mod()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+div"},".div()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG+split"},".split()")," \u21d2"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("em",{parentName:"li"},"static"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#DBIG.comp"},".comp()")," \u21d2")))))),(0,p.kt)("a",{name:"new_DBIG_new"}),(0,p.kt)("h3",{id:"new-dbig"},"new DBIG()"),(0,p.kt)("p",null,"General purpose Constructor"),(0,p.kt)("a",{name:"DBIG+zero"}),(0,p.kt)("h3",{id:"dbigzero-"},"dbiG.zero() \u21d2"),(0,p.kt)("p",null,"set to zero"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}')," "),(0,p.kt)("a",{name:"DBIG+copy"}),(0,p.kt)("h3",{id:"dbigcopy-"},"dbiG.copy() \u21d2"),(0,p.kt)("p",null,"set to b"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": DBIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b DBIG number "),(0,p.kt)("a",{name:"DBIG+hcopy"}),(0,p.kt)("h3",{id:"dbighcopy-"},"dbiG.hcopy() \u21d2"),(0,p.kt)("p",null,"copy from ctx.BIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": DBIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b BIG number "),(0,p.kt)("a",{name:"DBIG+norm"}),(0,p.kt)("h3",{id:"dbignorm-"},"dbiG.norm() \u21d2"),(0,p.kt)("p",null,"normalise DBIG - force all digits ","<"," 2^BASEBITS"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": DBIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}')," "),(0,p.kt)("a",{name:"DBIG+muladd"}),(0,p.kt)("h3",{id:"dbigmuladd"},"dbiG.muladd()"),(0,p.kt)("p",null,"this","[i]","+=x","*","y+c, and return high part"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}')," "),(0,p.kt)("a",{name:"DBIG+shr"}),(0,p.kt)("h3",{id:"dbigshr-"},"dbiG.shr() \u21d2"),(0,p.kt)("p",null,"General shift right by k bits"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": k Number of bits to shift "),(0,p.kt)("a",{name:"DBIG+shl"}),(0,p.kt)("h3",{id:"dbigshl-"},"dbiG.shl() \u21d2"),(0,p.kt)("p",null,"General shift left by k bits"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": k Number of bits to shift "),(0,p.kt)("a",{name:"DBIG+cmove"}),(0,p.kt)("h3",{id:"dbigcmove"},"dbiG.cmove()"),(0,p.kt)("p",null,"Conditional move of BIG depending on d using XOR - no branches"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b DBIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": d DBIG number "),(0,p.kt)("a",{name:"DBIG+add"}),(0,p.kt)("h3",{id:"dbigadd-"},"dbiG.add() \u21d2"),(0,p.kt)("p",null,"Sum two DBIG mumbers"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this+=x",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": x DBIG object "),(0,p.kt)("a",{name:"DBIG+sub"}),(0,p.kt)("h3",{id:"dbigsub-"},"dbiG.sub() \u21d2"),(0,p.kt)("p",null,"Subtract DBIG from one another"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this-=x",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": x BIG object "),(0,p.kt)("a",{name:"DBIG+nbits"}),(0,p.kt)("h3",{id:"dbignbits-"},"dbiG.nbits() \u21d2"),(0,p.kt)("p",null,"length in bits"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": The number of bigs in DBIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}')," "),(0,p.kt)("a",{name:"DBIG+toString"}),(0,p.kt)("h3",{id:"dbigtostring-"},"dbiG.toString() \u21d2"),(0,p.kt)("p",null,"Convert to string"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": string representation of a BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}')," "),(0,p.kt)("a",{name:"DBIG+mod"}),(0,p.kt)("h3",{id:"dbigmod-"},"dbiG.mod() \u21d2"),(0,p.kt)("p",null,"reduces this DBIG mod a ctx.BIG, and returns the ctx.BIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}')," "),(0,p.kt)("a",{name:"DBIG+div"}),(0,p.kt)("h3",{id:"dbigdiv-"},"dbiG.div() \u21d2"),(0,p.kt)("p",null,"this/=c"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": DBIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Paramter"),": c divisor "),(0,p.kt)("a",{name:"DBIG+split"}),(0,p.kt)("h3",{id:"dbigsplit-"},"dbiG.split() \u21d2"),(0,p.kt)("p",null,"split this DBIG at position n, return higher half, keep lower half"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": lower half BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Paramter"),": n Position to splitdivisor "),(0,p.kt)("a",{name:"DBIG.comp"}),(0,p.kt)("h3",{id:"dbigcomp-"},"DBIG.comp() \u21d2"),(0,p.kt)("p",null,"Compare a and b"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#DBIG"},(0,p.kt)("code",null,"DBIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": 0 if a==b, -1 if a","<","b, +1 if a",">","b",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}DBIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": a DBIG number (normalised)",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b DBIG number (normalised"))}u.isMDXComponent=!0}}]);