12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372 |
- function createCryptoJS() {
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
- }) : x)(function (x) {
- if (typeof require !== "undefined")
- return require.apply(this, arguments);
- throw new Error('Dynamic require of "' + x + '" is not supported');
- });
- var __commonJS = (cb, mod) => function __require2() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
- };
- // (disabled):crypto
- var require_crypto = __commonJS({
- "(disabled):crypto"() {
- }
- });
- // core.js
- var require_core = __commonJS({
- "core.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory();
- } else if (typeof define === "function" && define.amd) {
- define([], factory);
- } else {
- root.CryptoJS = factory();
- }
- })(exports, function () {
- var CryptoJS = CryptoJS || function (Math2, undefined2) {
- var crypto;
- if (typeof window !== "undefined" && window.crypto) {
- crypto = window.crypto;
- }
- if (typeof self !== "undefined" && self.crypto) {
- crypto = self.crypto;
- }
- if (typeof globalThis !== "undefined" && globalThis.crypto) {
- crypto = globalThis.crypto;
- }
- if (!crypto && typeof window !== "undefined" && window.msCrypto) {
- crypto = window.msCrypto;
- }
- if (!crypto && typeof global !== "undefined" && global.crypto) {
- crypto = global.crypto;
- }
- if (!crypto && typeof __require === "function") {
- try {
- crypto = require_crypto();
- } catch (err) {
- }
- }
- var cryptoSecureRandomInt = function () {
- if (crypto) {
- if (typeof crypto.getRandomValues === "function") {
- try {
- return crypto.getRandomValues(new Uint32Array(1))[0];
- } catch (err) {
- }
- }
- if (typeof crypto.randomBytes === "function") {
- try {
- return crypto.randomBytes(4).readInt32LE();
- } catch (err) {
- }
- }
- }
- throw new Error("Native crypto module could not be used to get secure random number.");
- };
- var create = Object.create || function () {
- function F() {
- }
- return function (obj) {
- var subtype;
- F.prototype = obj;
- subtype = new F();
- F.prototype = null;
- return subtype;
- };
- }();
- var C = {};
- var C_lib = C.lib = {};
- var Base = C_lib.Base = function () {
- return {
- /**
- * Creates a new object that inherits from this object.
- *
- * @param {Object} overrides Properties to copy into the new object.
- *
- * @return {Object} The new object.
- *
- * @static
- *
- * @example
- *
- * var MyType = CryptoJS.lib.Base.extend({
- * field: 'value',
- *
- * method: function () {
- * }
- * });
- */
- extend: function (overrides) {
- var subtype = create(this);
- if (overrides) {
- subtype.mixIn(overrides);
- }
- if (!subtype.hasOwnProperty("init") || this.init === subtype.init) {
- subtype.init = function () {
- subtype.$super.init.apply(this, arguments);
- };
- }
- subtype.init.prototype = subtype;
- subtype.$super = this;
- return subtype;
- },
- /**
- * Extends this object and runs the init method.
- * Arguments to create() will be passed to init().
- *
- * @return {Object} The new object.
- *
- * @static
- *
- * @example
- *
- * var instance = MyType.create();
- */
- create: function () {
- var instance = this.extend();
- instance.init.apply(instance, arguments);
- return instance;
- },
- /**
- * Initializes a newly created object.
- * Override this method to add some logic when your objects are created.
- *
- * @example
- *
- * var MyType = CryptoJS.lib.Base.extend({
- * init: function () {
- * // ...
- * }
- * });
- */
- init: function () {
- },
- /**
- * Copies properties into this object.
- *
- * @param {Object} properties The properties to mix in.
- *
- * @example
- *
- * MyType.mixIn({
- * field: 'value'
- * });
- */
- mixIn: function (properties) {
- for (var propertyName in properties) {
- if (properties.hasOwnProperty(propertyName)) {
- this[propertyName] = properties[propertyName];
- }
- }
- if (properties.hasOwnProperty("toString")) {
- this.toString = properties.toString;
- }
- },
- /**
- * Creates a copy of this object.
- *
- * @return {Object} The clone.
- *
- * @example
- *
- * var clone = instance.clone();
- */
- clone: function () {
- return this.init.prototype.extend(this);
- }
- };
- }();
- var WordArray = C_lib.WordArray = Base.extend({
- /**
- * Initializes a newly created word array.
- *
- * @param {Array} words (Optional) An array of 32-bit words.
- * @param {number} sigBytes (Optional) The number of significant bytes in the words.
- *
- * @example
- *
- * var wordArray = CryptoJS.lib.WordArray.create();
- * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
- * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
- */
- init: function (words, sigBytes) {
- words = this.words = words || [];
- if (sigBytes != undefined2) {
- this.sigBytes = sigBytes;
- } else {
- this.sigBytes = words.length * 4;
- }
- },
- /**
- * Converts this word array to a string.
- *
- * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
- *
- * @return {string} The stringified word array.
- *
- * @example
- *
- * var string = wordArray + '';
- * var string = wordArray.toString();
- * var string = wordArray.toString(CryptoJS.enc.Utf8);
- */
- toString: function (encoder) {
- return (encoder || Hex).stringify(this);
- },
- /**
- * Concatenates a word array to this word array.
- *
- * @param {WordArray} wordArray The word array to append.
- *
- * @return {WordArray} This word array.
- *
- * @example
- *
- * wordArray1.concat(wordArray2);
- */
- concat: function (wordArray) {
- var thisWords = this.words;
- var thatWords = wordArray.words;
- var thisSigBytes = this.sigBytes;
- var thatSigBytes = wordArray.sigBytes;
- this.clamp();
- if (thisSigBytes % 4) {
- for (var i = 0; i < thatSigBytes; i++) {
- var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 255;
- thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8;
- }
- } else {
- for (var j = 0; j < thatSigBytes; j += 4) {
- thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2];
- }
- }
- this.sigBytes += thatSigBytes;
- return this;
- },
- /**
- * Removes insignificant bits.
- *
- * @example
- *
- * wordArray.clamp();
- */
- clamp: function () {
- var words = this.words;
- var sigBytes = this.sigBytes;
- words[sigBytes >>> 2] &= 4294967295 << 32 - sigBytes % 4 * 8;
- words.length = Math2.ceil(sigBytes / 4);
- },
- /**
- * Creates a copy of this word array.
- *
- * @return {WordArray} The clone.
- *
- * @example
- *
- * var clone = wordArray.clone();
- */
- clone: function () {
- var clone = Base.clone.call(this);
- clone.words = this.words.slice(0);
- return clone;
- },
- /**
- * Creates a word array filled with random bytes.
- *
- * @param {number} nBytes The number of random bytes to generate.
- *
- * @return {WordArray} The random word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.lib.WordArray.random(16);
- */
- random: function (nBytes) {
- var words = [];
- for (var i = 0; i < nBytes; i += 4) {
- words.push(cryptoSecureRandomInt());
- }
- return new WordArray.init(words, nBytes);
- }
- });
- var C_enc = C.enc = {};
- var Hex = C_enc.Hex = {
- /**
- * Converts a word array to a hex string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The hex string.
- *
- * @static
- *
- * @example
- *
- * var hexString = CryptoJS.enc.Hex.stringify(wordArray);
- */
- stringify: function (wordArray) {
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
- var hexChars = [];
- for (var i = 0; i < sigBytes; i++) {
- var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
- hexChars.push((bite >>> 4).toString(16));
- hexChars.push((bite & 15).toString(16));
- }
- return hexChars.join("");
- },
- /**
- * Converts a hex string to a word array.
- *
- * @param {string} hexStr The hex string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Hex.parse(hexString);
- */
- parse: function (hexStr) {
- var hexStrLength = hexStr.length;
- var words = [];
- for (var i = 0; i < hexStrLength; i += 2) {
- words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4;
- }
- return new WordArray.init(words, hexStrLength / 2);
- }
- };
- var Latin1 = C_enc.Latin1 = {
- /**
- * Converts a word array to a Latin1 string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The Latin1 string.
- *
- * @static
- *
- * @example
- *
- * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
- */
- stringify: function (wordArray) {
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
- var latin1Chars = [];
- for (var i = 0; i < sigBytes; i++) {
- var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
- latin1Chars.push(String.fromCharCode(bite));
- }
- return latin1Chars.join("");
- },
- /**
- * Converts a Latin1 string to a word array.
- *
- * @param {string} latin1Str The Latin1 string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
- */
- parse: function (latin1Str) {
- var latin1StrLength = latin1Str.length;
- var words = [];
- for (var i = 0; i < latin1StrLength; i++) {
- words[i >>> 2] |= (latin1Str.charCodeAt(i) & 255) << 24 - i % 4 * 8;
- }
- return new WordArray.init(words, latin1StrLength);
- }
- };
- var Utf8 = C_enc.Utf8 = {
- /**
- * Converts a word array to a UTF-8 string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The UTF-8 string.
- *
- * @static
- *
- * @example
- *
- * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
- */
- stringify: function (wordArray) {
- try {
- return decodeURIComponent(escape(Latin1.stringify(wordArray)));
- } catch (e) {
- throw new Error("Malformed UTF-8 data");
- }
- },
- /**
- * Converts a UTF-8 string to a word array.
- *
- * @param {string} utf8Str The UTF-8 string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
- */
- parse: function (utf8Str) {
- return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
- }
- };
- var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
- /**
- * Resets this block algorithm's data buffer to its initial state.
- *
- * @example
- *
- * bufferedBlockAlgorithm.reset();
- */
- reset: function () {
- this._data = new WordArray.init();
- this._nDataBytes = 0;
- },
- /**
- * Adds new data to this block algorithm's buffer.
- *
- * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
- *
- * @example
- *
- * bufferedBlockAlgorithm._append('data');
- * bufferedBlockAlgorithm._append(wordArray);
- */
- _append: function (data) {
- if (typeof data == "string") {
- data = Utf8.parse(data);
- }
- this._data.concat(data);
- this._nDataBytes += data.sigBytes;
- },
- /**
- * Processes available data blocks.
- *
- * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
- *
- * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
- *
- * @return {WordArray} The processed data.
- *
- * @example
- *
- * var processedData = bufferedBlockAlgorithm._process();
- * var processedData = bufferedBlockAlgorithm._process(!!'flush');
- */
- _process: function (doFlush) {
- var processedWords;
- var data = this._data;
- var dataWords = data.words;
- var dataSigBytes = data.sigBytes;
- var blockSize = this.blockSize;
- var blockSizeBytes = blockSize * 4;
- var nBlocksReady = dataSigBytes / blockSizeBytes;
- if (doFlush) {
- nBlocksReady = Math2.ceil(nBlocksReady);
- } else {
- nBlocksReady = Math2.max((nBlocksReady | 0) - this._minBufferSize, 0);
- }
- var nWordsReady = nBlocksReady * blockSize;
- var nBytesReady = Math2.min(nWordsReady * 4, dataSigBytes);
- if (nWordsReady) {
- for (var offset = 0; offset < nWordsReady; offset += blockSize) {
- this._doProcessBlock(dataWords, offset);
- }
- processedWords = dataWords.splice(0, nWordsReady);
- data.sigBytes -= nBytesReady;
- }
- return new WordArray.init(processedWords, nBytesReady);
- },
- /**
- * Creates a copy of this object.
- *
- * @return {Object} The clone.
- *
- * @example
- *
- * var clone = bufferedBlockAlgorithm.clone();
- */
- clone: function () {
- var clone = Base.clone.call(this);
- clone._data = this._data.clone();
- return clone;
- },
- _minBufferSize: 0
- });
- var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
- /**
- * Configuration options.
- */
- cfg: Base.extend(),
- /**
- * Initializes a newly created hasher.
- *
- * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
- *
- * @example
- *
- * var hasher = CryptoJS.algo.SHA256.create();
- */
- init: function (cfg) {
- this.cfg = this.cfg.extend(cfg);
- this.reset();
- },
- /**
- * Resets this hasher to its initial state.
- *
- * @example
- *
- * hasher.reset();
- */
- reset: function () {
- BufferedBlockAlgorithm.reset.call(this);
- this._doReset();
- },
- /**
- * Updates this hasher with a message.
- *
- * @param {WordArray|string} messageUpdate The message to append.
- *
- * @return {Hasher} This hasher.
- *
- * @example
- *
- * hasher.update('message');
- * hasher.update(wordArray);
- */
- update: function (messageUpdate) {
- this._append(messageUpdate);
- this._process();
- return this;
- },
- /**
- * Finalizes the hash computation.
- * Note that the finalize operation is effectively a destructive, read-once operation.
- *
- * @param {WordArray|string} messageUpdate (Optional) A final message update.
- *
- * @return {WordArray} The hash.
- *
- * @example
- *
- * var hash = hasher.finalize();
- * var hash = hasher.finalize('message');
- * var hash = hasher.finalize(wordArray);
- */
- finalize: function (messageUpdate) {
- if (messageUpdate) {
- this._append(messageUpdate);
- }
- var hash = this._doFinalize();
- return hash;
- },
- blockSize: 512 / 32,
- /**
- * Creates a shortcut function to a hasher's object interface.
- *
- * @param {Hasher} hasher The hasher to create a helper for.
- *
- * @return {Function} The shortcut function.
- *
- * @static
- *
- * @example
- *
- * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
- */
- _createHelper: function (hasher) {
- return function (message, cfg) {
- return new hasher.init(cfg).finalize(message);
- };
- },
- /**
- * Creates a shortcut function to the HMAC's object interface.
- *
- * @param {Hasher} hasher The hasher to use in this HMAC helper.
- *
- * @return {Function} The shortcut function.
- *
- * @static
- *
- * @example
- *
- * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
- */
- _createHmacHelper: function (hasher) {
- return function (message, key) {
- return new C_algo.HMAC.init(hasher, key).finalize(message);
- };
- }
- });
- var C_algo = C.algo = {};
- return C;
- }(Math);
- return CryptoJS;
- });
- }
- });
- // x64-core.js
- var require_x64_core = __commonJS({
- "x64-core.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function (undefined2) {
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var X32WordArray = C_lib.WordArray;
- var C_x64 = C.x64 = {};
- var X64Word = C_x64.Word = Base.extend({
- /**
- * Initializes a newly created 64-bit word.
- *
- * @param {number} high The high 32 bits.
- * @param {number} low The low 32 bits.
- *
- * @example
- *
- * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
- */
- init: function (high, low) {
- this.high = high;
- this.low = low;
- }
- /**
- * Bitwise NOTs this word.
- *
- * @return {X64Word} A new x64-Word object after negating.
- *
- * @example
- *
- * var negated = x64Word.not();
- */
- // not: function () {
- // var high = ~this.high;
- // var low = ~this.low;
- // return X64Word.create(high, low);
- // },
- /**
- * Bitwise ANDs this word with the passed word.
- *
- * @param {X64Word} word The x64-Word to AND with this word.
- *
- * @return {X64Word} A new x64-Word object after ANDing.
- *
- * @example
- *
- * var anded = x64Word.and(anotherX64Word);
- */
- // and: function (word) {
- // var high = this.high & word.high;
- // var low = this.low & word.low;
- // return X64Word.create(high, low);
- // },
- /**
- * Bitwise ORs this word with the passed word.
- *
- * @param {X64Word} word The x64-Word to OR with this word.
- *
- * @return {X64Word} A new x64-Word object after ORing.
- *
- * @example
- *
- * var ored = x64Word.or(anotherX64Word);
- */
- // or: function (word) {
- // var high = this.high | word.high;
- // var low = this.low | word.low;
- // return X64Word.create(high, low);
- // },
- /**
- * Bitwise XORs this word with the passed word.
- *
- * @param {X64Word} word The x64-Word to XOR with this word.
- *
- * @return {X64Word} A new x64-Word object after XORing.
- *
- * @example
- *
- * var xored = x64Word.xor(anotherX64Word);
- */
- // xor: function (word) {
- // var high = this.high ^ word.high;
- // var low = this.low ^ word.low;
- // return X64Word.create(high, low);
- // },
- /**
- * Shifts this word n bits to the left.
- *
- * @param {number} n The number of bits to shift.
- *
- * @return {X64Word} A new x64-Word object after shifting.
- *
- * @example
- *
- * var shifted = x64Word.shiftL(25);
- */
- // shiftL: function (n) {
- // if (n < 32) {
- // var high = (this.high << n) | (this.low >>> (32 - n));
- // var low = this.low << n;
- // } else {
- // var high = this.low << (n - 32);
- // var low = 0;
- // }
- // return X64Word.create(high, low);
- // },
- /**
- * Shifts this word n bits to the right.
- *
- * @param {number} n The number of bits to shift.
- *
- * @return {X64Word} A new x64-Word object after shifting.
- *
- * @example
- *
- * var shifted = x64Word.shiftR(7);
- */
- // shiftR: function (n) {
- // if (n < 32) {
- // var low = (this.low >>> n) | (this.high << (32 - n));
- // var high = this.high >>> n;
- // } else {
- // var low = this.high >>> (n - 32);
- // var high = 0;
- // }
- // return X64Word.create(high, low);
- // },
- /**
- * Rotates this word n bits to the left.
- *
- * @param {number} n The number of bits to rotate.
- *
- * @return {X64Word} A new x64-Word object after rotating.
- *
- * @example
- *
- * var rotated = x64Word.rotL(25);
- */
- // rotL: function (n) {
- // return this.shiftL(n).or(this.shiftR(64 - n));
- // },
- /**
- * Rotates this word n bits to the right.
- *
- * @param {number} n The number of bits to rotate.
- *
- * @return {X64Word} A new x64-Word object after rotating.
- *
- * @example
- *
- * var rotated = x64Word.rotR(7);
- */
- // rotR: function (n) {
- // return this.shiftR(n).or(this.shiftL(64 - n));
- // },
- /**
- * Adds this word with the passed word.
- *
- * @param {X64Word} word The x64-Word to add with this word.
- *
- * @return {X64Word} A new x64-Word object after adding.
- *
- * @example
- *
- * var added = x64Word.add(anotherX64Word);
- */
- // add: function (word) {
- // var low = (this.low + word.low) | 0;
- // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;
- // var high = (this.high + word.high + carry) | 0;
- // return X64Word.create(high, low);
- // }
- });
- var X64WordArray = C_x64.WordArray = Base.extend({
- /**
- * Initializes a newly created word array.
- *
- * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
- * @param {number} sigBytes (Optional) The number of significant bytes in the words.
- *
- * @example
- *
- * var wordArray = CryptoJS.x64.WordArray.create();
- *
- * var wordArray = CryptoJS.x64.WordArray.create([
- * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
- * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
- * ]);
- *
- * var wordArray = CryptoJS.x64.WordArray.create([
- * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
- * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
- * ], 10);
- */
- init: function (words, sigBytes) {
- words = this.words = words || [];
- if (sigBytes != undefined2) {
- this.sigBytes = sigBytes;
- } else {
- this.sigBytes = words.length * 8;
- }
- },
- /**
- * Converts this 64-bit word array to a 32-bit word array.
- *
- * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
- *
- * @example
- *
- * var x32WordArray = x64WordArray.toX32();
- */
- toX32: function () {
- var x64Words = this.words;
- var x64WordsLength = x64Words.length;
- var x32Words = [];
- for (var i = 0; i < x64WordsLength; i++) {
- var x64Word = x64Words[i];
- x32Words.push(x64Word.high);
- x32Words.push(x64Word.low);
- }
- return X32WordArray.create(x32Words, this.sigBytes);
- },
- /**
- * Creates a copy of this word array.
- *
- * @return {X64WordArray} The clone.
- *
- * @example
- *
- * var clone = x64WordArray.clone();
- */
- clone: function () {
- var clone = Base.clone.call(this);
- var words = clone.words = this.words.slice(0);
- var wordsLength = words.length;
- for (var i = 0; i < wordsLength; i++) {
- words[i] = words[i].clone();
- }
- return clone;
- }
- });
- })();
- return CryptoJS;
- });
- }
- });
- // lib-typedarrays.js
- var require_lib_typedarrays = __commonJS({
- "lib-typedarrays.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- if (typeof ArrayBuffer != "function") {
- return;
- }
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var superInit = WordArray.init;
- var subInit = WordArray.init = function (typedArray) {
- if (typedArray instanceof ArrayBuffer) {
- typedArray = new Uint8Array(typedArray);
- }
- if (typedArray instanceof Int8Array || typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array) {
- typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);
- }
- if (typedArray instanceof Uint8Array) {
- var typedArrayByteLength = typedArray.byteLength;
- var words = [];
- for (var i = 0; i < typedArrayByteLength; i++) {
- words[i >>> 2] |= typedArray[i] << 24 - i % 4 * 8;
- }
- superInit.call(this, words, typedArrayByteLength);
- } else {
- superInit.apply(this, arguments);
- }
- };
- subInit.prototype = WordArray;
- })();
- return CryptoJS.lib.WordArray;
- });
- }
- });
- // enc-utf16.js
- var require_enc_utf16 = __commonJS({
- "enc-utf16.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var C_enc = C.enc;
- var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
- /**
- * Converts a word array to a UTF-16 BE string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The UTF-16 BE string.
- *
- * @static
- *
- * @example
- *
- * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
- */
- stringify: function (wordArray) {
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
- var utf16Chars = [];
- for (var i = 0; i < sigBytes; i += 2) {
- var codePoint = words[i >>> 2] >>> 16 - i % 4 * 8 & 65535;
- utf16Chars.push(String.fromCharCode(codePoint));
- }
- return utf16Chars.join("");
- },
- /**
- * Converts a UTF-16 BE string to a word array.
- *
- * @param {string} utf16Str The UTF-16 BE string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
- */
- parse: function (utf16Str) {
- var utf16StrLength = utf16Str.length;
- var words = [];
- for (var i = 0; i < utf16StrLength; i++) {
- words[i >>> 1] |= utf16Str.charCodeAt(i) << 16 - i % 2 * 16;
- }
- return WordArray.create(words, utf16StrLength * 2);
- }
- };
- C_enc.Utf16LE = {
- /**
- * Converts a word array to a UTF-16 LE string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The UTF-16 LE string.
- *
- * @static
- *
- * @example
- *
- * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
- */
- stringify: function (wordArray) {
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
- var utf16Chars = [];
- for (var i = 0; i < sigBytes; i += 2) {
- var codePoint = swapEndian(words[i >>> 2] >>> 16 - i % 4 * 8 & 65535);
- utf16Chars.push(String.fromCharCode(codePoint));
- }
- return utf16Chars.join("");
- },
- /**
- * Converts a UTF-16 LE string to a word array.
- *
- * @param {string} utf16Str The UTF-16 LE string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
- */
- parse: function (utf16Str) {
- var utf16StrLength = utf16Str.length;
- var words = [];
- for (var i = 0; i < utf16StrLength; i++) {
- words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << 16 - i % 2 * 16);
- }
- return WordArray.create(words, utf16StrLength * 2);
- }
- };
- function swapEndian(word) {
- return word << 8 & 4278255360 | word >>> 8 & 16711935;
- }
- })();
- return CryptoJS.enc.Utf16;
- });
- }
- });
- // enc-base64.js
- var require_enc_base64 = __commonJS({
- "enc-base64.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var C_enc = C.enc;
- var Base64 = C_enc.Base64 = {
- /**
- * Converts a word array to a Base64 string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @return {string} The Base64 string.
- *
- * @static
- *
- * @example
- *
- * var base64String = CryptoJS.enc.Base64.stringify(wordArray);
- */
- stringify: function (wordArray) {
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
- var map = this._map;
- wordArray.clamp();
- var base64Chars = [];
- for (var i = 0; i < sigBytes; i += 3) {
- var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
- var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255;
- var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255;
- var triplet = byte1 << 16 | byte2 << 8 | byte3;
- for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {
- base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63));
- }
- }
- var paddingChar = map.charAt(64);
- if (paddingChar) {
- while (base64Chars.length % 4) {
- base64Chars.push(paddingChar);
- }
- }
- return base64Chars.join("");
- },
- /**
- * Converts a Base64 string to a word array.
- *
- * @param {string} base64Str The Base64 string.
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Base64.parse(base64String);
- */
- parse: function (base64Str) {
- var base64StrLength = base64Str.length;
- var map = this._map;
- var reverseMap = this._reverseMap;
- if (!reverseMap) {
- reverseMap = this._reverseMap = [];
- for (var j = 0; j < map.length; j++) {
- reverseMap[map.charCodeAt(j)] = j;
- }
- }
- var paddingChar = map.charAt(64);
- if (paddingChar) {
- var paddingIndex = base64Str.indexOf(paddingChar);
- if (paddingIndex !== -1) {
- base64StrLength = paddingIndex;
- }
- }
- return parseLoop(base64Str, base64StrLength, reverseMap);
- },
- _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
- };
- function parseLoop(base64Str, base64StrLength, reverseMap) {
- var words = [];
- var nBytes = 0;
- for (var i = 0; i < base64StrLength; i++) {
- if (i % 4) {
- var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;
- var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;
- var bitsCombined = bits1 | bits2;
- words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;
- nBytes++;
- }
- }
- return WordArray.create(words, nBytes);
- }
- })();
- return CryptoJS.enc.Base64;
- });
- }
- });
- // enc-base64url.js
- var require_enc_base64url = __commonJS({
- "enc-base64url.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var C_enc = C.enc;
- var Base64url = C_enc.Base64url = {
- /**
- * Converts a word array to a Base64url string.
- *
- * @param {WordArray} wordArray The word array.
- *
- * @param {boolean} urlSafe Whether to use url safe
- *
- * @return {string} The Base64url string.
- *
- * @static
- *
- * @example
- *
- * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);
- */
- stringify: function (wordArray, urlSafe = true) {
- var words = wordArray.words;
- var sigBytes = wordArray.sigBytes;
- var map = urlSafe ? this._safe_map : this._map;
- wordArray.clamp();
- var base64Chars = [];
- for (var i = 0; i < sigBytes; i += 3) {
- var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
- var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255;
- var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255;
- var triplet = byte1 << 16 | byte2 << 8 | byte3;
- for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {
- base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63));
- }
- }
- var paddingChar = map.charAt(64);
- if (paddingChar) {
- while (base64Chars.length % 4) {
- base64Chars.push(paddingChar);
- }
- }
- return base64Chars.join("");
- },
- /**
- * Converts a Base64url string to a word array.
- *
- * @param {string} base64Str The Base64url string.
- *
- * @param {boolean} urlSafe Whether to use url safe
- *
- * @return {WordArray} The word array.
- *
- * @static
- *
- * @example
- *
- * var wordArray = CryptoJS.enc.Base64url.parse(base64String);
- */
- parse: function (base64Str, urlSafe = true) {
- var base64StrLength = base64Str.length;
- var map = urlSafe ? this._safe_map : this._map;
- var reverseMap = this._reverseMap;
- if (!reverseMap) {
- reverseMap = this._reverseMap = [];
- for (var j = 0; j < map.length; j++) {
- reverseMap[map.charCodeAt(j)] = j;
- }
- }
- var paddingChar = map.charAt(64);
- if (paddingChar) {
- var paddingIndex = base64Str.indexOf(paddingChar);
- if (paddingIndex !== -1) {
- base64StrLength = paddingIndex;
- }
- }
- return parseLoop(base64Str, base64StrLength, reverseMap);
- },
- _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
- _safe_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
- };
- function parseLoop(base64Str, base64StrLength, reverseMap) {
- var words = [];
- var nBytes = 0;
- for (var i = 0; i < base64StrLength; i++) {
- if (i % 4) {
- var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;
- var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;
- var bitsCombined = bits1 | bits2;
- words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;
- nBytes++;
- }
- }
- return WordArray.create(words, nBytes);
- }
- })();
- return CryptoJS.enc.Base64url;
- });
- }
- });
- // md5.js
- var require_md5 = __commonJS({
- "md5.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function (Math2) {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_algo = C.algo;
- var T = [];
- (function () {
- for (var i = 0; i < 64; i++) {
- T[i] = Math2.abs(Math2.sin(i + 1)) * 4294967296 | 0;
- }
- })();
- var MD5 = C_algo.MD5 = Hasher.extend({
- _doReset: function () {
- this._hash = new WordArray.init([
- 1732584193,
- 4023233417,
- 2562383102,
- 271733878
- ]);
- },
- _doProcessBlock: function (M, offset) {
- for (var i = 0; i < 16; i++) {
- var offset_i = offset + i;
- var M_offset_i = M[offset_i];
- M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360;
- }
- var H = this._hash.words;
- var M_offset_0 = M[offset + 0];
- var M_offset_1 = M[offset + 1];
- var M_offset_2 = M[offset + 2];
- var M_offset_3 = M[offset + 3];
- var M_offset_4 = M[offset + 4];
- var M_offset_5 = M[offset + 5];
- var M_offset_6 = M[offset + 6];
- var M_offset_7 = M[offset + 7];
- var M_offset_8 = M[offset + 8];
- var M_offset_9 = M[offset + 9];
- var M_offset_10 = M[offset + 10];
- var M_offset_11 = M[offset + 11];
- var M_offset_12 = M[offset + 12];
- var M_offset_13 = M[offset + 13];
- var M_offset_14 = M[offset + 14];
- var M_offset_15 = M[offset + 15];
- var a = H[0];
- var b = H[1];
- var c = H[2];
- var d = H[3];
- a = FF(a, b, c, d, M_offset_0, 7, T[0]);
- d = FF(d, a, b, c, M_offset_1, 12, T[1]);
- c = FF(c, d, a, b, M_offset_2, 17, T[2]);
- b = FF(b, c, d, a, M_offset_3, 22, T[3]);
- a = FF(a, b, c, d, M_offset_4, 7, T[4]);
- d = FF(d, a, b, c, M_offset_5, 12, T[5]);
- c = FF(c, d, a, b, M_offset_6, 17, T[6]);
- b = FF(b, c, d, a, M_offset_7, 22, T[7]);
- a = FF(a, b, c, d, M_offset_8, 7, T[8]);
- d = FF(d, a, b, c, M_offset_9, 12, T[9]);
- c = FF(c, d, a, b, M_offset_10, 17, T[10]);
- b = FF(b, c, d, a, M_offset_11, 22, T[11]);
- a = FF(a, b, c, d, M_offset_12, 7, T[12]);
- d = FF(d, a, b, c, M_offset_13, 12, T[13]);
- c = FF(c, d, a, b, M_offset_14, 17, T[14]);
- b = FF(b, c, d, a, M_offset_15, 22, T[15]);
- a = GG(a, b, c, d, M_offset_1, 5, T[16]);
- d = GG(d, a, b, c, M_offset_6, 9, T[17]);
- c = GG(c, d, a, b, M_offset_11, 14, T[18]);
- b = GG(b, c, d, a, M_offset_0, 20, T[19]);
- a = GG(a, b, c, d, M_offset_5, 5, T[20]);
- d = GG(d, a, b, c, M_offset_10, 9, T[21]);
- c = GG(c, d, a, b, M_offset_15, 14, T[22]);
- b = GG(b, c, d, a, M_offset_4, 20, T[23]);
- a = GG(a, b, c, d, M_offset_9, 5, T[24]);
- d = GG(d, a, b, c, M_offset_14, 9, T[25]);
- c = GG(c, d, a, b, M_offset_3, 14, T[26]);
- b = GG(b, c, d, a, M_offset_8, 20, T[27]);
- a = GG(a, b, c, d, M_offset_13, 5, T[28]);
- d = GG(d, a, b, c, M_offset_2, 9, T[29]);
- c = GG(c, d, a, b, M_offset_7, 14, T[30]);
- b = GG(b, c, d, a, M_offset_12, 20, T[31]);
- a = HH(a, b, c, d, M_offset_5, 4, T[32]);
- d = HH(d, a, b, c, M_offset_8, 11, T[33]);
- c = HH(c, d, a, b, M_offset_11, 16, T[34]);
- b = HH(b, c, d, a, M_offset_14, 23, T[35]);
- a = HH(a, b, c, d, M_offset_1, 4, T[36]);
- d = HH(d, a, b, c, M_offset_4, 11, T[37]);
- c = HH(c, d, a, b, M_offset_7, 16, T[38]);
- b = HH(b, c, d, a, M_offset_10, 23, T[39]);
- a = HH(a, b, c, d, M_offset_13, 4, T[40]);
- d = HH(d, a, b, c, M_offset_0, 11, T[41]);
- c = HH(c, d, a, b, M_offset_3, 16, T[42]);
- b = HH(b, c, d, a, M_offset_6, 23, T[43]);
- a = HH(a, b, c, d, M_offset_9, 4, T[44]);
- d = HH(d, a, b, c, M_offset_12, 11, T[45]);
- c = HH(c, d, a, b, M_offset_15, 16, T[46]);
- b = HH(b, c, d, a, M_offset_2, 23, T[47]);
- a = II(a, b, c, d, M_offset_0, 6, T[48]);
- d = II(d, a, b, c, M_offset_7, 10, T[49]);
- c = II(c, d, a, b, M_offset_14, 15, T[50]);
- b = II(b, c, d, a, M_offset_5, 21, T[51]);
- a = II(a, b, c, d, M_offset_12, 6, T[52]);
- d = II(d, a, b, c, M_offset_3, 10, T[53]);
- c = II(c, d, a, b, M_offset_10, 15, T[54]);
- b = II(b, c, d, a, M_offset_1, 21, T[55]);
- a = II(a, b, c, d, M_offset_8, 6, T[56]);
- d = II(d, a, b, c, M_offset_15, 10, T[57]);
- c = II(c, d, a, b, M_offset_6, 15, T[58]);
- b = II(b, c, d, a, M_offset_13, 21, T[59]);
- a = II(a, b, c, d, M_offset_4, 6, T[60]);
- d = II(d, a, b, c, M_offset_11, 10, T[61]);
- c = II(c, d, a, b, M_offset_2, 15, T[62]);
- b = II(b, c, d, a, M_offset_9, 21, T[63]);
- H[0] = H[0] + a | 0;
- H[1] = H[1] + b | 0;
- H[2] = H[2] + c | 0;
- H[3] = H[3] + d | 0;
- },
- _doFinalize: function () {
- var data = this._data;
- var dataWords = data.words;
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
- dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
- var nBitsTotalH = Math2.floor(nBitsTotal / 4294967296);
- var nBitsTotalL = nBitsTotal;
- dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 16711935 | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 4278255360;
- dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 16711935 | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 4278255360;
- data.sigBytes = (dataWords.length + 1) * 4;
- this._process();
- var hash = this._hash;
- var H = hash.words;
- for (var i = 0; i < 4; i++) {
- var H_i = H[i];
- H[i] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360;
- }
- return hash;
- },
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
- return clone;
- }
- });
- function FF(a, b, c, d, x, s, t) {
- var n = a + (b & c | ~b & d) + x + t;
- return (n << s | n >>> 32 - s) + b;
- }
- function GG(a, b, c, d, x, s, t) {
- var n = a + (b & d | c & ~d) + x + t;
- return (n << s | n >>> 32 - s) + b;
- }
- function HH(a, b, c, d, x, s, t) {
- var n = a + (b ^ c ^ d) + x + t;
- return (n << s | n >>> 32 - s) + b;
- }
- function II(a, b, c, d, x, s, t) {
- var n = a + (c ^ (b | ~d)) + x + t;
- return (n << s | n >>> 32 - s) + b;
- }
- C.MD5 = Hasher._createHelper(MD5);
- C.HmacMD5 = Hasher._createHmacHelper(MD5);
- })(Math);
- return CryptoJS.MD5;
- });
- }
- });
- // sha1.js
- var require_sha1 = __commonJS({
- "sha1.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_algo = C.algo;
- var W = [];
- var SHA1 = C_algo.SHA1 = Hasher.extend({
- _doReset: function () {
- this._hash = new WordArray.init([
- 1732584193,
- 4023233417,
- 2562383102,
- 271733878,
- 3285377520
- ]);
- },
- _doProcessBlock: function (M, offset) {
- var H = this._hash.words;
- var a = H[0];
- var b = H[1];
- var c = H[2];
- var d = H[3];
- var e = H[4];
- for (var i = 0; i < 80; i++) {
- if (i < 16) {
- W[i] = M[offset + i] | 0;
- } else {
- var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
- W[i] = n << 1 | n >>> 31;
- }
- var t = (a << 5 | a >>> 27) + e + W[i];
- if (i < 20) {
- t += (b & c | ~b & d) + 1518500249;
- } else if (i < 40) {
- t += (b ^ c ^ d) + 1859775393;
- } else if (i < 60) {
- t += (b & c | b & d | c & d) - 1894007588;
- } else {
- t += (b ^ c ^ d) - 899497514;
- }
- e = d;
- d = c;
- c = b << 30 | b >>> 2;
- b = a;
- a = t;
- }
- H[0] = H[0] + a | 0;
- H[1] = H[1] + b | 0;
- H[2] = H[2] + c | 0;
- H[3] = H[3] + d | 0;
- H[4] = H[4] + e | 0;
- },
- _doFinalize: function () {
- var data = this._data;
- var dataWords = data.words;
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
- dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
- dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 4294967296);
- dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;
- data.sigBytes = dataWords.length * 4;
- this._process();
- return this._hash;
- },
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
- return clone;
- }
- });
- C.SHA1 = Hasher._createHelper(SHA1);
- C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
- })();
- return CryptoJS.SHA1;
- });
- }
- });
- // sha256.js
- var require_sha256 = __commonJS({
- "sha256.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function (Math2) {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_algo = C.algo;
- var H = [];
- var K = [];
- (function () {
- function isPrime(n2) {
- var sqrtN = Math2.sqrt(n2);
- for (var factor = 2; factor <= sqrtN; factor++) {
- if (!(n2 % factor)) {
- return false;
- }
- }
- return true;
- }
- function getFractionalBits(n2) {
- return (n2 - (n2 | 0)) * 4294967296 | 0;
- }
- var n = 2;
- var nPrime = 0;
- while (nPrime < 64) {
- if (isPrime(n)) {
- if (nPrime < 8) {
- H[nPrime] = getFractionalBits(Math2.pow(n, 1 / 2));
- }
- K[nPrime] = getFractionalBits(Math2.pow(n, 1 / 3));
- nPrime++;
- }
- n++;
- }
- })();
- var W = [];
- var SHA256 = C_algo.SHA256 = Hasher.extend({
- _doReset: function () {
- this._hash = new WordArray.init(H.slice(0));
- },
- _doProcessBlock: function (M, offset) {
- var H2 = this._hash.words;
- var a = H2[0];
- var b = H2[1];
- var c = H2[2];
- var d = H2[3];
- var e = H2[4];
- var f = H2[5];
- var g = H2[6];
- var h = H2[7];
- for (var i = 0; i < 64; i++) {
- if (i < 16) {
- W[i] = M[offset + i] | 0;
- } else {
- var gamma0x = W[i - 15];
- var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;
- var gamma1x = W[i - 2];
- var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;
- W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
- }
- var ch = e & f ^ ~e & g;
- var maj = a & b ^ a & c ^ b & c;
- var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);
- var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);
- var t1 = h + sigma1 + ch + K[i] + W[i];
- var t2 = sigma0 + maj;
- h = g;
- g = f;
- f = e;
- e = d + t1 | 0;
- d = c;
- c = b;
- b = a;
- a = t1 + t2 | 0;
- }
- H2[0] = H2[0] + a | 0;
- H2[1] = H2[1] + b | 0;
- H2[2] = H2[2] + c | 0;
- H2[3] = H2[3] + d | 0;
- H2[4] = H2[4] + e | 0;
- H2[5] = H2[5] + f | 0;
- H2[6] = H2[6] + g | 0;
- H2[7] = H2[7] + h | 0;
- },
- _doFinalize: function () {
- var data = this._data;
- var dataWords = data.words;
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
- dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
- dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math2.floor(nBitsTotal / 4294967296);
- dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;
- data.sigBytes = dataWords.length * 4;
- this._process();
- return this._hash;
- },
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
- return clone;
- }
- });
- C.SHA256 = Hasher._createHelper(SHA256);
- C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
- })(Math);
- return CryptoJS.SHA256;
- });
- }
- });
- // sha224.js
- var require_sha224 = __commonJS({
- "sha224.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_sha256());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./sha256"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var C_algo = C.algo;
- var SHA256 = C_algo.SHA256;
- var SHA224 = C_algo.SHA224 = SHA256.extend({
- _doReset: function () {
- this._hash = new WordArray.init([
- 3238371032,
- 914150663,
- 812702999,
- 4144912697,
- 4290775857,
- 1750603025,
- 1694076839,
- 3204075428
- ]);
- },
- _doFinalize: function () {
- var hash = SHA256._doFinalize.call(this);
- hash.sigBytes -= 4;
- return hash;
- }
- });
- C.SHA224 = SHA256._createHelper(SHA224);
- C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
- })();
- return CryptoJS.SHA224;
- });
- }
- });
- // sha512.js
- var require_sha512 = __commonJS({
- "sha512.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_x64_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./x64-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var Hasher = C_lib.Hasher;
- var C_x64 = C.x64;
- var X64Word = C_x64.Word;
- var X64WordArray = C_x64.WordArray;
- var C_algo = C.algo;
- function X64Word_create() {
- return X64Word.create.apply(X64Word, arguments);
- }
- var K = [
- X64Word_create(1116352408, 3609767458),
- X64Word_create(1899447441, 602891725),
- X64Word_create(3049323471, 3964484399),
- X64Word_create(3921009573, 2173295548),
- X64Word_create(961987163, 4081628472),
- X64Word_create(1508970993, 3053834265),
- X64Word_create(2453635748, 2937671579),
- X64Word_create(2870763221, 3664609560),
- X64Word_create(3624381080, 2734883394),
- X64Word_create(310598401, 1164996542),
- X64Word_create(607225278, 1323610764),
- X64Word_create(1426881987, 3590304994),
- X64Word_create(1925078388, 4068182383),
- X64Word_create(2162078206, 991336113),
- X64Word_create(2614888103, 633803317),
- X64Word_create(3248222580, 3479774868),
- X64Word_create(3835390401, 2666613458),
- X64Word_create(4022224774, 944711139),
- X64Word_create(264347078, 2341262773),
- X64Word_create(604807628, 2007800933),
- X64Word_create(770255983, 1495990901),
- X64Word_create(1249150122, 1856431235),
- X64Word_create(1555081692, 3175218132),
- X64Word_create(1996064986, 2198950837),
- X64Word_create(2554220882, 3999719339),
- X64Word_create(2821834349, 766784016),
- X64Word_create(2952996808, 2566594879),
- X64Word_create(3210313671, 3203337956),
- X64Word_create(3336571891, 1034457026),
- X64Word_create(3584528711, 2466948901),
- X64Word_create(113926993, 3758326383),
- X64Word_create(338241895, 168717936),
- X64Word_create(666307205, 1188179964),
- X64Word_create(773529912, 1546045734),
- X64Word_create(1294757372, 1522805485),
- X64Word_create(1396182291, 2643833823),
- X64Word_create(1695183700, 2343527390),
- X64Word_create(1986661051, 1014477480),
- X64Word_create(2177026350, 1206759142),
- X64Word_create(2456956037, 344077627),
- X64Word_create(2730485921, 1290863460),
- X64Word_create(2820302411, 3158454273),
- X64Word_create(3259730800, 3505952657),
- X64Word_create(3345764771, 106217008),
- X64Word_create(3516065817, 3606008344),
- X64Word_create(3600352804, 1432725776),
- X64Word_create(4094571909, 1467031594),
- X64Word_create(275423344, 851169720),
- X64Word_create(430227734, 3100823752),
- X64Word_create(506948616, 1363258195),
- X64Word_create(659060556, 3750685593),
- X64Word_create(883997877, 3785050280),
- X64Word_create(958139571, 3318307427),
- X64Word_create(1322822218, 3812723403),
- X64Word_create(1537002063, 2003034995),
- X64Word_create(1747873779, 3602036899),
- X64Word_create(1955562222, 1575990012),
- X64Word_create(2024104815, 1125592928),
- X64Word_create(2227730452, 2716904306),
- X64Word_create(2361852424, 442776044),
- X64Word_create(2428436474, 593698344),
- X64Word_create(2756734187, 3733110249),
- X64Word_create(3204031479, 2999351573),
- X64Word_create(3329325298, 3815920427),
- X64Word_create(3391569614, 3928383900),
- X64Word_create(3515267271, 566280711),
- X64Word_create(3940187606, 3454069534),
- X64Word_create(4118630271, 4000239992),
- X64Word_create(116418474, 1914138554),
- X64Word_create(174292421, 2731055270),
- X64Word_create(289380356, 3203993006),
- X64Word_create(460393269, 320620315),
- X64Word_create(685471733, 587496836),
- X64Word_create(852142971, 1086792851),
- X64Word_create(1017036298, 365543100),
- X64Word_create(1126000580, 2618297676),
- X64Word_create(1288033470, 3409855158),
- X64Word_create(1501505948, 4234509866),
- X64Word_create(1607167915, 987167468),
- X64Word_create(1816402316, 1246189591)
- ];
- var W = [];
- (function () {
- for (var i = 0; i < 80; i++) {
- W[i] = X64Word_create();
- }
- })();
- var SHA512 = C_algo.SHA512 = Hasher.extend({
- _doReset: function () {
- this._hash = new X64WordArray.init([
- new X64Word.init(1779033703, 4089235720),
- new X64Word.init(3144134277, 2227873595),
- new X64Word.init(1013904242, 4271175723),
- new X64Word.init(2773480762, 1595750129),
- new X64Word.init(1359893119, 2917565137),
- new X64Word.init(2600822924, 725511199),
- new X64Word.init(528734635, 4215389547),
- new X64Word.init(1541459225, 327033209)
- ]);
- },
- _doProcessBlock: function (M, offset) {
- var H = this._hash.words;
- var H0 = H[0];
- var H1 = H[1];
- var H2 = H[2];
- var H3 = H[3];
- var H4 = H[4];
- var H5 = H[5];
- var H6 = H[6];
- var H7 = H[7];
- var H0h = H0.high;
- var H0l = H0.low;
- var H1h = H1.high;
- var H1l = H1.low;
- var H2h = H2.high;
- var H2l = H2.low;
- var H3h = H3.high;
- var H3l = H3.low;
- var H4h = H4.high;
- var H4l = H4.low;
- var H5h = H5.high;
- var H5l = H5.low;
- var H6h = H6.high;
- var H6l = H6.low;
- var H7h = H7.high;
- var H7l = H7.low;
- var ah = H0h;
- var al = H0l;
- var bh = H1h;
- var bl = H1l;
- var ch = H2h;
- var cl = H2l;
- var dh = H3h;
- var dl = H3l;
- var eh = H4h;
- var el = H4l;
- var fh = H5h;
- var fl = H5l;
- var gh = H6h;
- var gl = H6l;
- var hh = H7h;
- var hl = H7l;
- for (var i = 0; i < 80; i++) {
- var Wil;
- var Wih;
- var Wi = W[i];
- if (i < 16) {
- Wih = Wi.high = M[offset + i * 2] | 0;
- Wil = Wi.low = M[offset + i * 2 + 1] | 0;
- } else {
- var gamma0x = W[i - 15];
- var gamma0xh = gamma0x.high;
- var gamma0xl = gamma0x.low;
- var gamma0h = (gamma0xh >>> 1 | gamma0xl << 31) ^ (gamma0xh >>> 8 | gamma0xl << 24) ^ gamma0xh >>> 7;
- var gamma0l = (gamma0xl >>> 1 | gamma0xh << 31) ^ (gamma0xl >>> 8 | gamma0xh << 24) ^ (gamma0xl >>> 7 | gamma0xh << 25);
- var gamma1x = W[i - 2];
- var gamma1xh = gamma1x.high;
- var gamma1xl = gamma1x.low;
- var gamma1h = (gamma1xh >>> 19 | gamma1xl << 13) ^ (gamma1xh << 3 | gamma1xl >>> 29) ^ gamma1xh >>> 6;
- var gamma1l = (gamma1xl >>> 19 | gamma1xh << 13) ^ (gamma1xl << 3 | gamma1xh >>> 29) ^ (gamma1xl >>> 6 | gamma1xh << 26);
- var Wi7 = W[i - 7];
- var Wi7h = Wi7.high;
- var Wi7l = Wi7.low;
- var Wi16 = W[i - 16];
- var Wi16h = Wi16.high;
- var Wi16l = Wi16.low;
- Wil = gamma0l + Wi7l;
- Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0);
- Wil = Wil + gamma1l;
- Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0);
- Wil = Wil + Wi16l;
- Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0);
- Wi.high = Wih;
- Wi.low = Wil;
- }
- var chh = eh & fh ^ ~eh & gh;
- var chl = el & fl ^ ~el & gl;
- var majh = ah & bh ^ ah & ch ^ bh & ch;
- var majl = al & bl ^ al & cl ^ bl & cl;
- var sigma0h = (ah >>> 28 | al << 4) ^ (ah << 30 | al >>> 2) ^ (ah << 25 | al >>> 7);
- var sigma0l = (al >>> 28 | ah << 4) ^ (al << 30 | ah >>> 2) ^ (al << 25 | ah >>> 7);
- var sigma1h = (eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9);
- var sigma1l = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9);
- var Ki = K[i];
- var Kih = Ki.high;
- var Kil = Ki.low;
- var t1l = hl + sigma1l;
- var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0);
- var t1l = t1l + chl;
- var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0);
- var t1l = t1l + Kil;
- var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0);
- var t1l = t1l + Wil;
- var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0);
- var t2l = sigma0l + majl;
- var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0);
- hh = gh;
- hl = gl;
- gh = fh;
- gl = fl;
- fh = eh;
- fl = el;
- el = dl + t1l | 0;
- eh = dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;
- dh = ch;
- dl = cl;
- ch = bh;
- cl = bl;
- bh = ah;
- bl = al;
- al = t1l + t2l | 0;
- ah = t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0) | 0;
- }
- H0l = H0.low = H0l + al;
- H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0);
- H1l = H1.low = H1l + bl;
- H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0);
- H2l = H2.low = H2l + cl;
- H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0);
- H3l = H3.low = H3l + dl;
- H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0);
- H4l = H4.low = H4l + el;
- H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0);
- H5l = H5.low = H5l + fl;
- H5.high = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0);
- H6l = H6.low = H6l + gl;
- H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0);
- H7l = H7.low = H7l + hl;
- H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0);
- },
- _doFinalize: function () {
- var data = this._data;
- var dataWords = data.words;
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
- dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
- dataWords[(nBitsLeft + 128 >>> 10 << 5) + 30] = Math.floor(nBitsTotal / 4294967296);
- dataWords[(nBitsLeft + 128 >>> 10 << 5) + 31] = nBitsTotal;
- data.sigBytes = dataWords.length * 4;
- this._process();
- var hash = this._hash.toX32();
- return hash;
- },
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
- return clone;
- },
- blockSize: 1024 / 32
- });
- C.SHA512 = Hasher._createHelper(SHA512);
- C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
- })();
- return CryptoJS.SHA512;
- });
- }
- });
- // sha384.js
- var require_sha384 = __commonJS({
- "sha384.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_x64_core(), require_sha512());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./x64-core", "./sha512"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_x64 = C.x64;
- var X64Word = C_x64.Word;
- var X64WordArray = C_x64.WordArray;
- var C_algo = C.algo;
- var SHA512 = C_algo.SHA512;
- var SHA384 = C_algo.SHA384 = SHA512.extend({
- _doReset: function () {
- this._hash = new X64WordArray.init([
- new X64Word.init(3418070365, 3238371032),
- new X64Word.init(1654270250, 914150663),
- new X64Word.init(2438529370, 812702999),
- new X64Word.init(355462360, 4144912697),
- new X64Word.init(1731405415, 4290775857),
- new X64Word.init(2394180231, 1750603025),
- new X64Word.init(3675008525, 1694076839),
- new X64Word.init(1203062813, 3204075428)
- ]);
- },
- _doFinalize: function () {
- var hash = SHA512._doFinalize.call(this);
- hash.sigBytes -= 16;
- return hash;
- }
- });
- C.SHA384 = SHA512._createHelper(SHA384);
- C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
- })();
- return CryptoJS.SHA384;
- });
- }
- });
- // sha3.js
- var require_sha3 = __commonJS({
- "sha3.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_x64_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./x64-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function (Math2) {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_x64 = C.x64;
- var X64Word = C_x64.Word;
- var C_algo = C.algo;
- var RHO_OFFSETS = [];
- var PI_INDEXES = [];
- var ROUND_CONSTANTS = [];
- (function () {
- var x = 1, y = 0;
- for (var t = 0; t < 24; t++) {
- RHO_OFFSETS[x + 5 * y] = (t + 1) * (t + 2) / 2 % 64;
- var newX = y % 5;
- var newY = (2 * x + 3 * y) % 5;
- x = newX;
- y = newY;
- }
- for (var x = 0; x < 5; x++) {
- for (var y = 0; y < 5; y++) {
- PI_INDEXES[x + 5 * y] = y + (2 * x + 3 * y) % 5 * 5;
- }
- }
- var LFSR = 1;
- for (var i = 0; i < 24; i++) {
- var roundConstantMsw = 0;
- var roundConstantLsw = 0;
- for (var j = 0; j < 7; j++) {
- if (LFSR & 1) {
- var bitPosition = (1 << j) - 1;
- if (bitPosition < 32) {
- roundConstantLsw ^= 1 << bitPosition;
- } else {
- roundConstantMsw ^= 1 << bitPosition - 32;
- }
- }
- if (LFSR & 128) {
- LFSR = LFSR << 1 ^ 113;
- } else {
- LFSR <<= 1;
- }
- }
- ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
- }
- })();
- var T = [];
- (function () {
- for (var i = 0; i < 25; i++) {
- T[i] = X64Word.create();
- }
- })();
- var SHA3 = C_algo.SHA3 = Hasher.extend({
- /**
- * Configuration options.
- *
- * @property {number} outputLength
- * The desired number of bits in the output hash.
- * Only values permitted are: 224, 256, 384, 512.
- * Default: 512
- */
- cfg: Hasher.cfg.extend({
- outputLength: 512
- }),
- _doReset: function () {
- var state = this._state = [];
- for (var i = 0; i < 25; i++) {
- state[i] = new X64Word.init();
- }
- this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
- },
- _doProcessBlock: function (M, offset) {
- var state = this._state;
- var nBlockSizeLanes = this.blockSize / 2;
- for (var i = 0; i < nBlockSizeLanes; i++) {
- var M2i = M[offset + 2 * i];
- var M2i1 = M[offset + 2 * i + 1];
- M2i = (M2i << 8 | M2i >>> 24) & 16711935 | (M2i << 24 | M2i >>> 8) & 4278255360;
- M2i1 = (M2i1 << 8 | M2i1 >>> 24) & 16711935 | (M2i1 << 24 | M2i1 >>> 8) & 4278255360;
- var lane = state[i];
- lane.high ^= M2i1;
- lane.low ^= M2i;
- }
- for (var round = 0; round < 24; round++) {
- for (var x = 0; x < 5; x++) {
- var tMsw = 0, tLsw = 0;
- for (var y = 0; y < 5; y++) {
- var lane = state[x + 5 * y];
- tMsw ^= lane.high;
- tLsw ^= lane.low;
- }
- var Tx = T[x];
- Tx.high = tMsw;
- Tx.low = tLsw;
- }
- for (var x = 0; x < 5; x++) {
- var Tx4 = T[(x + 4) % 5];
- var Tx1 = T[(x + 1) % 5];
- var Tx1Msw = Tx1.high;
- var Tx1Lsw = Tx1.low;
- var tMsw = Tx4.high ^ (Tx1Msw << 1 | Tx1Lsw >>> 31);
- var tLsw = Tx4.low ^ (Tx1Lsw << 1 | Tx1Msw >>> 31);
- for (var y = 0; y < 5; y++) {
- var lane = state[x + 5 * y];
- lane.high ^= tMsw;
- lane.low ^= tLsw;
- }
- }
- for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
- var tMsw;
- var tLsw;
- var lane = state[laneIndex];
- var laneMsw = lane.high;
- var laneLsw = lane.low;
- var rhoOffset = RHO_OFFSETS[laneIndex];
- if (rhoOffset < 32) {
- tMsw = laneMsw << rhoOffset | laneLsw >>> 32 - rhoOffset;
- tLsw = laneLsw << rhoOffset | laneMsw >>> 32 - rhoOffset;
- } else {
- tMsw = laneLsw << rhoOffset - 32 | laneMsw >>> 64 - rhoOffset;
- tLsw = laneMsw << rhoOffset - 32 | laneLsw >>> 64 - rhoOffset;
- }
- var TPiLane = T[PI_INDEXES[laneIndex]];
- TPiLane.high = tMsw;
- TPiLane.low = tLsw;
- }
- var T0 = T[0];
- var state0 = state[0];
- T0.high = state0.high;
- T0.low = state0.low;
- for (var x = 0; x < 5; x++) {
- for (var y = 0; y < 5; y++) {
- var laneIndex = x + 5 * y;
- var lane = state[laneIndex];
- var TLane = T[laneIndex];
- var Tx1Lane = T[(x + 1) % 5 + 5 * y];
- var Tx2Lane = T[(x + 2) % 5 + 5 * y];
- lane.high = TLane.high ^ ~Tx1Lane.high & Tx2Lane.high;
- lane.low = TLane.low ^ ~Tx1Lane.low & Tx2Lane.low;
- }
- }
- var lane = state[0];
- var roundConstant = ROUND_CONSTANTS[round];
- lane.high ^= roundConstant.high;
- lane.low ^= roundConstant.low;
- }
- },
- _doFinalize: function () {
- var data = this._data;
- var dataWords = data.words;
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
- var blockSizeBits = this.blockSize * 32;
- dataWords[nBitsLeft >>> 5] |= 1 << 24 - nBitsLeft % 32;
- dataWords[(Math2.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits >>> 5) - 1] |= 128;
- data.sigBytes = dataWords.length * 4;
- this._process();
- var state = this._state;
- var outputLengthBytes = this.cfg.outputLength / 8;
- var outputLengthLanes = outputLengthBytes / 8;
- var hashWords = [];
- for (var i = 0; i < outputLengthLanes; i++) {
- var lane = state[i];
- var laneMsw = lane.high;
- var laneLsw = lane.low;
- laneMsw = (laneMsw << 8 | laneMsw >>> 24) & 16711935 | (laneMsw << 24 | laneMsw >>> 8) & 4278255360;
- laneLsw = (laneLsw << 8 | laneLsw >>> 24) & 16711935 | (laneLsw << 24 | laneLsw >>> 8) & 4278255360;
- hashWords.push(laneLsw);
- hashWords.push(laneMsw);
- }
- return new WordArray.init(hashWords, outputLengthBytes);
- },
- clone: function () {
- var clone = Hasher.clone.call(this);
- var state = clone._state = this._state.slice(0);
- for (var i = 0; i < 25; i++) {
- state[i] = state[i].clone();
- }
- return clone;
- }
- });
- C.SHA3 = Hasher._createHelper(SHA3);
- C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
- })(Math);
- return CryptoJS.SHA3;
- });
- }
- });
- // ripemd160.js
- var require_ripemd160 = __commonJS({
- "ripemd160.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function (Math2) {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var Hasher = C_lib.Hasher;
- var C_algo = C.algo;
- var _zl = WordArray.create([
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 12,
- 13,
- 14,
- 15,
- 7,
- 4,
- 13,
- 1,
- 10,
- 6,
- 15,
- 3,
- 12,
- 0,
- 9,
- 5,
- 2,
- 14,
- 11,
- 8,
- 3,
- 10,
- 14,
- 4,
- 9,
- 15,
- 8,
- 1,
- 2,
- 7,
- 0,
- 6,
- 13,
- 11,
- 5,
- 12,
- 1,
- 9,
- 11,
- 10,
- 0,
- 8,
- 12,
- 4,
- 13,
- 3,
- 7,
- 15,
- 14,
- 5,
- 6,
- 2,
- 4,
- 0,
- 5,
- 9,
- 7,
- 12,
- 2,
- 10,
- 14,
- 1,
- 3,
- 8,
- 11,
- 6,
- 15,
- 13
- ]);
- var _zr = WordArray.create([
- 5,
- 14,
- 7,
- 0,
- 9,
- 2,
- 11,
- 4,
- 13,
- 6,
- 15,
- 8,
- 1,
- 10,
- 3,
- 12,
- 6,
- 11,
- 3,
- 7,
- 0,
- 13,
- 5,
- 10,
- 14,
- 15,
- 8,
- 12,
- 4,
- 9,
- 1,
- 2,
- 15,
- 5,
- 1,
- 3,
- 7,
- 14,
- 6,
- 9,
- 11,
- 8,
- 12,
- 2,
- 10,
- 0,
- 4,
- 13,
- 8,
- 6,
- 4,
- 1,
- 3,
- 11,
- 15,
- 0,
- 5,
- 12,
- 2,
- 13,
- 9,
- 7,
- 10,
- 14,
- 12,
- 15,
- 10,
- 4,
- 1,
- 5,
- 8,
- 7,
- 6,
- 2,
- 13,
- 14,
- 0,
- 3,
- 9,
- 11
- ]);
- var _sl = WordArray.create([
- 11,
- 14,
- 15,
- 12,
- 5,
- 8,
- 7,
- 9,
- 11,
- 13,
- 14,
- 15,
- 6,
- 7,
- 9,
- 8,
- 7,
- 6,
- 8,
- 13,
- 11,
- 9,
- 7,
- 15,
- 7,
- 12,
- 15,
- 9,
- 11,
- 7,
- 13,
- 12,
- 11,
- 13,
- 6,
- 7,
- 14,
- 9,
- 13,
- 15,
- 14,
- 8,
- 13,
- 6,
- 5,
- 12,
- 7,
- 5,
- 11,
- 12,
- 14,
- 15,
- 14,
- 15,
- 9,
- 8,
- 9,
- 14,
- 5,
- 6,
- 8,
- 6,
- 5,
- 12,
- 9,
- 15,
- 5,
- 11,
- 6,
- 8,
- 13,
- 12,
- 5,
- 12,
- 13,
- 14,
- 11,
- 8,
- 5,
- 6
- ]);
- var _sr = WordArray.create([
- 8,
- 9,
- 9,
- 11,
- 13,
- 15,
- 15,
- 5,
- 7,
- 7,
- 8,
- 11,
- 14,
- 14,
- 12,
- 6,
- 9,
- 13,
- 15,
- 7,
- 12,
- 8,
- 9,
- 11,
- 7,
- 7,
- 12,
- 7,
- 6,
- 15,
- 13,
- 11,
- 9,
- 7,
- 15,
- 11,
- 8,
- 6,
- 6,
- 14,
- 12,
- 13,
- 5,
- 14,
- 13,
- 13,
- 7,
- 5,
- 15,
- 5,
- 8,
- 11,
- 14,
- 14,
- 6,
- 14,
- 6,
- 9,
- 12,
- 9,
- 12,
- 5,
- 15,
- 8,
- 8,
- 5,
- 12,
- 9,
- 12,
- 5,
- 14,
- 6,
- 8,
- 13,
- 6,
- 5,
- 15,
- 13,
- 11,
- 11
- ]);
- var _hl = WordArray.create([0, 1518500249, 1859775393, 2400959708, 2840853838]);
- var _hr = WordArray.create([1352829926, 1548603684, 1836072691, 2053994217, 0]);
- var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({
- _doReset: function () {
- this._hash = WordArray.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]);
- },
- _doProcessBlock: function (M, offset) {
- for (var i = 0; i < 16; i++) {
- var offset_i = offset + i;
- var M_offset_i = M[offset_i];
- M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360;
- }
- var H = this._hash.words;
- var hl = _hl.words;
- var hr = _hr.words;
- var zl = _zl.words;
- var zr = _zr.words;
- var sl = _sl.words;
- var sr = _sr.words;
- var al, bl, cl, dl, el;
- var ar, br, cr, dr, er;
- ar = al = H[0];
- br = bl = H[1];
- cr = cl = H[2];
- dr = dl = H[3];
- er = el = H[4];
- var t;
- for (var i = 0; i < 80; i += 1) {
- t = al + M[offset + zl[i]] | 0;
- if (i < 16) {
- t += f1(bl, cl, dl) + hl[0];
- } else if (i < 32) {
- t += f2(bl, cl, dl) + hl[1];
- } else if (i < 48) {
- t += f3(bl, cl, dl) + hl[2];
- } else if (i < 64) {
- t += f4(bl, cl, dl) + hl[3];
- } else {
- t += f5(bl, cl, dl) + hl[4];
- }
- t = t | 0;
- t = rotl(t, sl[i]);
- t = t + el | 0;
- al = el;
- el = dl;
- dl = rotl(cl, 10);
- cl = bl;
- bl = t;
- t = ar + M[offset + zr[i]] | 0;
- if (i < 16) {
- t += f5(br, cr, dr) + hr[0];
- } else if (i < 32) {
- t += f4(br, cr, dr) + hr[1];
- } else if (i < 48) {
- t += f3(br, cr, dr) + hr[2];
- } else if (i < 64) {
- t += f2(br, cr, dr) + hr[3];
- } else {
- t += f1(br, cr, dr) + hr[4];
- }
- t = t | 0;
- t = rotl(t, sr[i]);
- t = t + er | 0;
- ar = er;
- er = dr;
- dr = rotl(cr, 10);
- cr = br;
- br = t;
- }
- t = H[1] + cl + dr | 0;
- H[1] = H[2] + dl + er | 0;
- H[2] = H[3] + el + ar | 0;
- H[3] = H[4] + al + br | 0;
- H[4] = H[0] + bl + cr | 0;
- H[0] = t;
- },
- _doFinalize: function () {
- var data = this._data;
- var dataWords = data.words;
- var nBitsTotal = this._nDataBytes * 8;
- var nBitsLeft = data.sigBytes * 8;
- dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
- dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotal << 8 | nBitsTotal >>> 24) & 16711935 | (nBitsTotal << 24 | nBitsTotal >>> 8) & 4278255360;
- data.sigBytes = (dataWords.length + 1) * 4;
- this._process();
- var hash = this._hash;
- var H = hash.words;
- for (var i = 0; i < 5; i++) {
- var H_i = H[i];
- H[i] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360;
- }
- return hash;
- },
- clone: function () {
- var clone = Hasher.clone.call(this);
- clone._hash = this._hash.clone();
- return clone;
- }
- });
- function f1(x, y, z) {
- return x ^ y ^ z;
- }
- function f2(x, y, z) {
- return x & y | ~x & z;
- }
- function f3(x, y, z) {
- return (x | ~y) ^ z;
- }
- function f4(x, y, z) {
- return x & z | y & ~z;
- }
- function f5(x, y, z) {
- return x ^ (y | ~z);
- }
- function rotl(x, n) {
- return x << n | x >>> 32 - n;
- }
- C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
- C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
- })(Math);
- return CryptoJS.RIPEMD160;
- });
- }
- });
- // hmac.js
- var require_hmac = __commonJS({
- "hmac.js"(exports, module) {
- (function (root, factory) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var C_enc = C.enc;
- var Utf8 = C_enc.Utf8;
- var C_algo = C.algo;
- var HMAC = C_algo.HMAC = Base.extend({
- /**
- * Initializes a newly created HMAC.
- *
- * @param {Hasher} hasher The hash algorithm to use.
- * @param {WordArray|string} key The secret key.
- *
- * @example
- *
- * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
- */
- init: function (hasher, key) {
- hasher = this._hasher = new hasher.init();
- if (typeof key == "string") {
- key = Utf8.parse(key);
- }
- var hasherBlockSize = hasher.blockSize;
- var hasherBlockSizeBytes = hasherBlockSize * 4;
- if (key.sigBytes > hasherBlockSizeBytes) {
- key = hasher.finalize(key);
- }
- key.clamp();
- var oKey = this._oKey = key.clone();
- var iKey = this._iKey = key.clone();
- var oKeyWords = oKey.words;
- var iKeyWords = iKey.words;
- for (var i = 0; i < hasherBlockSize; i++) {
- oKeyWords[i] ^= 1549556828;
- iKeyWords[i] ^= 909522486;
- }
- oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
- this.reset();
- },
- /**
- * Resets this HMAC to its initial state.
- *
- * @example
- *
- * hmacHasher.reset();
- */
- reset: function () {
- var hasher = this._hasher;
- hasher.reset();
- hasher.update(this._iKey);
- },
- /**
- * Updates this HMAC with a message.
- *
- * @param {WordArray|string} messageUpdate The message to append.
- *
- * @return {HMAC} This HMAC instance.
- *
- * @example
- *
- * hmacHasher.update('message');
- * hmacHasher.update(wordArray);
- */
- update: function (messageUpdate) {
- this._hasher.update(messageUpdate);
- return this;
- },
- /**
- * Finalizes the HMAC computation.
- * Note that the finalize operation is effectively a destructive, read-once operation.
- *
- * @param {WordArray|string} messageUpdate (Optional) A final message update.
- *
- * @return {WordArray} The HMAC.
- *
- * @example
- *
- * var hmac = hmacHasher.finalize();
- * var hmac = hmacHasher.finalize('message');
- * var hmac = hmacHasher.finalize(wordArray);
- */
- finalize: function (messageUpdate) {
- var hasher = this._hasher;
- var innerHash = hasher.finalize(messageUpdate);
- hasher.reset();
- var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
- return hmac;
- }
- });
- })();
- });
- }
- });
- // pbkdf2.js
- var require_pbkdf2 = __commonJS({
- "pbkdf2.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_sha1(), require_hmac());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./sha1", "./hmac"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var WordArray = C_lib.WordArray;
- var C_algo = C.algo;
- var SHA1 = C_algo.SHA1;
- var HMAC = C_algo.HMAC;
- var PBKDF2 = C_algo.PBKDF2 = Base.extend({
- /**
- * Configuration options.
- *
- * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
- * @property {Hasher} hasher The hasher to use. Default: SHA1
- * @property {number} iterations The number of iterations to perform. Default: 1
- */
- cfg: Base.extend({
- keySize: 128 / 32,
- hasher: SHA1,
- iterations: 1
- }),
- /**
- * Initializes a newly created key derivation function.
- *
- * @param {Object} cfg (Optional) The configuration options to use for the derivation.
- *
- * @example
- *
- * var kdf = CryptoJS.algo.PBKDF2.create();
- * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
- * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
- */
- init: function (cfg) {
- this.cfg = this.cfg.extend(cfg);
- },
- /**
- * Computes the Password-Based Key Derivation Function 2.
- *
- * @param {WordArray|string} password The password.
- * @param {WordArray|string} salt A salt.
- *
- * @return {WordArray} The derived key.
- *
- * @example
- *
- * var key = kdf.compute(password, salt);
- */
- compute: function (password, salt) {
- var cfg = this.cfg;
- var hmac = HMAC.create(cfg.hasher, password);
- var derivedKey = WordArray.create();
- var blockIndex = WordArray.create([1]);
- var derivedKeyWords = derivedKey.words;
- var blockIndexWords = blockIndex.words;
- var keySize = cfg.keySize;
- var iterations = cfg.iterations;
- while (derivedKeyWords.length < keySize) {
- var block = hmac.update(salt).finalize(blockIndex);
- hmac.reset();
- var blockWords = block.words;
- var blockWordsLength = blockWords.length;
- var intermediate = block;
- for (var i = 1; i < iterations; i++) {
- intermediate = hmac.finalize(intermediate);
- hmac.reset();
- var intermediateWords = intermediate.words;
- for (var j = 0; j < blockWordsLength; j++) {
- blockWords[j] ^= intermediateWords[j];
- }
- }
- derivedKey.concat(block);
- blockIndexWords[0]++;
- }
- derivedKey.sigBytes = keySize * 4;
- return derivedKey;
- }
- });
- C.PBKDF2 = function (password, salt, cfg) {
- return PBKDF2.create(cfg).compute(password, salt);
- };
- })();
- return CryptoJS.PBKDF2;
- });
- }
- });
- // evpkdf.js
- var require_evpkdf = __commonJS({
- "evpkdf.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_sha1(), require_hmac());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./sha1", "./hmac"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var WordArray = C_lib.WordArray;
- var C_algo = C.algo;
- var MD5 = C_algo.MD5;
- var EvpKDF = C_algo.EvpKDF = Base.extend({
- /**
- * Configuration options.
- *
- * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
- * @property {Hasher} hasher The hash algorithm to use. Default: MD5
- * @property {number} iterations The number of iterations to perform. Default: 1
- */
- cfg: Base.extend({
- keySize: 128 / 32,
- hasher: MD5,
- iterations: 1
- }),
- /**
- * Initializes a newly created key derivation function.
- *
- * @param {Object} cfg (Optional) The configuration options to use for the derivation.
- *
- * @example
- *
- * var kdf = CryptoJS.algo.EvpKDF.create();
- * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
- * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
- */
- init: function (cfg) {
- this.cfg = this.cfg.extend(cfg);
- },
- /**
- * Derives a key from a password.
- *
- * @param {WordArray|string} password The password.
- * @param {WordArray|string} salt A salt.
- *
- * @return {WordArray} The derived key.
- *
- * @example
- *
- * var key = kdf.compute(password, salt);
- */
- compute: function (password, salt) {
- var block;
- var cfg = this.cfg;
- var hasher = cfg.hasher.create();
- var derivedKey = WordArray.create();
- var derivedKeyWords = derivedKey.words;
- var keySize = cfg.keySize;
- var iterations = cfg.iterations;
- while (derivedKeyWords.length < keySize) {
- if (block) {
- hasher.update(block);
- }
- block = hasher.update(password).finalize(salt);
- hasher.reset();
- for (var i = 1; i < iterations; i++) {
- block = hasher.finalize(block);
- hasher.reset();
- }
- derivedKey.concat(block);
- }
- derivedKey.sigBytes = keySize * 4;
- return derivedKey;
- }
- });
- C.EvpKDF = function (password, salt, cfg) {
- return EvpKDF.create(cfg).compute(password, salt);
- };
- })();
- return CryptoJS.EvpKDF;
- });
- }
- });
- // cipher-core.js
- var require_cipher_core = __commonJS({
- "cipher-core.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_evpkdf());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./evpkdf"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.lib.Cipher || function (undefined2) {
- var C = CryptoJS;
- var C_lib = C.lib;
- var Base = C_lib.Base;
- var WordArray = C_lib.WordArray;
- var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
- var C_enc = C.enc;
- var Utf8 = C_enc.Utf8;
- var Base64 = C_enc.Base64;
- var C_algo = C.algo;
- var EvpKDF = C_algo.EvpKDF;
- var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({
- /**
- * Configuration options.
- *
- * @property {WordArray} iv The IV to use for this operation.
- */
- cfg: Base.extend(),
- /**
- * Creates this cipher in encryption mode.
- *
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {Cipher} A cipher instance.
- *
- * @static
- *
- * @example
- *
- * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
- */
- createEncryptor: function (key, cfg) {
- return this.create(this._ENC_XFORM_MODE, key, cfg);
- },
- /**
- * Creates this cipher in decryption mode.
- *
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {Cipher} A cipher instance.
- *
- * @static
- *
- * @example
- *
- * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
- */
- createDecryptor: function (key, cfg) {
- return this.create(this._DEC_XFORM_MODE, key, cfg);
- },
- /**
- * Initializes a newly created cipher.
- *
- * @param {number} xformMode Either the encryption or decryption transormation mode constant.
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @example
- *
- * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
- */
- init: function (xformMode, key, cfg) {
- this.cfg = this.cfg.extend(cfg);
- this._xformMode = xformMode;
- this._key = key;
- this.reset();
- },
- /**
- * Resets this cipher to its initial state.
- *
- * @example
- *
- * cipher.reset();
- */
- reset: function () {
- BufferedBlockAlgorithm.reset.call(this);
- this._doReset();
- },
- /**
- * Adds data to be encrypted or decrypted.
- *
- * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
- *
- * @return {WordArray} The data after processing.
- *
- * @example
- *
- * var encrypted = cipher.process('data');
- * var encrypted = cipher.process(wordArray);
- */
- process: function (dataUpdate) {
- this._append(dataUpdate);
- return this._process();
- },
- /**
- * Finalizes the encryption or decryption process.
- * Note that the finalize operation is effectively a destructive, read-once operation.
- *
- * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
- *
- * @return {WordArray} The data after final processing.
- *
- * @example
- *
- * var encrypted = cipher.finalize();
- * var encrypted = cipher.finalize('data');
- * var encrypted = cipher.finalize(wordArray);
- */
- finalize: function (dataUpdate) {
- if (dataUpdate) {
- this._append(dataUpdate);
- }
- var finalProcessedData = this._doFinalize();
- return finalProcessedData;
- },
- keySize: 128 / 32,
- ivSize: 128 / 32,
- _ENC_XFORM_MODE: 1,
- _DEC_XFORM_MODE: 2,
- /**
- * Creates shortcut functions to a cipher's object interface.
- *
- * @param {Cipher} cipher The cipher to create a helper for.
- *
- * @return {Object} An object with encrypt and decrypt shortcut functions.
- *
- * @static
- *
- * @example
- *
- * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
- */
- _createHelper: function () {
- function selectCipherStrategy(key) {
- if (typeof key == "string") {
- return PasswordBasedCipher;
- } else {
- return SerializableCipher;
- }
- }
- return function (cipher) {
- return {
- encrypt: function (message, key, cfg) {
- return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
- },
- decrypt: function (ciphertext, key, cfg) {
- return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
- }
- };
- };
- }()
- });
- var StreamCipher = C_lib.StreamCipher = Cipher.extend({
- _doFinalize: function () {
- var finalProcessedBlocks = this._process(true);
- return finalProcessedBlocks;
- },
- blockSize: 1
- });
- var C_mode = C.mode = {};
- var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({
- /**
- * Creates this mode for encryption.
- *
- * @param {Cipher} cipher A block cipher instance.
- * @param {Array} iv The IV words.
- *
- * @static
- *
- * @example
- *
- * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
- */
- createEncryptor: function (cipher, iv) {
- return this.Encryptor.create(cipher, iv);
- },
- /**
- * Creates this mode for decryption.
- *
- * @param {Cipher} cipher A block cipher instance.
- * @param {Array} iv The IV words.
- *
- * @static
- *
- * @example
- *
- * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
- */
- createDecryptor: function (cipher, iv) {
- return this.Decryptor.create(cipher, iv);
- },
- /**
- * Initializes a newly created mode.
- *
- * @param {Cipher} cipher A block cipher instance.
- * @param {Array} iv The IV words.
- *
- * @example
- *
- * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
- */
- init: function (cipher, iv) {
- this._cipher = cipher;
- this._iv = iv;
- }
- });
- var CBC = C_mode.CBC = function () {
- var CBC2 = BlockCipherMode.extend();
- CBC2.Encryptor = CBC2.extend({
- /**
- * Processes the data block at offset.
- *
- * @param {Array} words The data words to operate on.
- * @param {number} offset The offset where the block starts.
- *
- * @example
- *
- * mode.processBlock(data.words, offset);
- */
- processBlock: function (words, offset) {
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
- xorBlock.call(this, words, offset, blockSize);
- cipher.encryptBlock(words, offset);
- this._prevBlock = words.slice(offset, offset + blockSize);
- }
- });
- CBC2.Decryptor = CBC2.extend({
- /**
- * Processes the data block at offset.
- *
- * @param {Array} words The data words to operate on.
- * @param {number} offset The offset where the block starts.
- *
- * @example
- *
- * mode.processBlock(data.words, offset);
- */
- processBlock: function (words, offset) {
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
- var thisBlock = words.slice(offset, offset + blockSize);
- cipher.decryptBlock(words, offset);
- xorBlock.call(this, words, offset, blockSize);
- this._prevBlock = thisBlock;
- }
- });
- function xorBlock(words, offset, blockSize) {
- var block;
- var iv = this._iv;
- if (iv) {
- block = iv;
- this._iv = undefined2;
- } else {
- block = this._prevBlock;
- }
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= block[i];
- }
- }
- return CBC2;
- }();
- var C_pad = C.pad = {};
- var Pkcs7 = C_pad.Pkcs7 = {
- /**
- * Pads data using the algorithm defined in PKCS #5/7.
- *
- * @param {WordArray} data The data to pad.
- * @param {number} blockSize The multiple that the data should be padded to.
- *
- * @static
- *
- * @example
- *
- * CryptoJS.pad.Pkcs7.pad(wordArray, 4);
- */
- pad: function (data, blockSize) {
- var blockSizeBytes = blockSize * 4;
- var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
- var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes;
- var paddingWords = [];
- for (var i = 0; i < nPaddingBytes; i += 4) {
- paddingWords.push(paddingWord);
- }
- var padding = WordArray.create(paddingWords, nPaddingBytes);
- data.concat(padding);
- },
- /**
- * Unpads data that had been padded using the algorithm defined in PKCS #5/7.
- *
- * @param {WordArray} data The data to unpad.
- *
- * @static
- *
- * @example
- *
- * CryptoJS.pad.Pkcs7.unpad(wordArray);
- */
- unpad: function (data) {
- var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255;
- data.sigBytes -= nPaddingBytes;
- }
- };
- var BlockCipher = C_lib.BlockCipher = Cipher.extend({
- /**
- * Configuration options.
- *
- * @property {Mode} mode The block mode to use. Default: CBC
- * @property {Padding} padding The padding strategy to use. Default: Pkcs7
- */
- cfg: Cipher.cfg.extend({
- mode: CBC,
- padding: Pkcs7
- }),
- reset: function () {
- var modeCreator;
- Cipher.reset.call(this);
- var cfg = this.cfg;
- var iv = cfg.iv;
- var mode = cfg.mode;
- if (this._xformMode == this._ENC_XFORM_MODE) {
- modeCreator = mode.createEncryptor;
- } else {
- modeCreator = mode.createDecryptor;
- this._minBufferSize = 1;
- }
- if (this._mode && this._mode.__creator == modeCreator) {
- this._mode.init(this, iv && iv.words);
- } else {
- this._mode = modeCreator.call(mode, this, iv && iv.words);
- this._mode.__creator = modeCreator;
- }
- },
- _doProcessBlock: function (words, offset) {
- this._mode.processBlock(words, offset);
- },
- _doFinalize: function () {
- var finalProcessedBlocks;
- var padding = this.cfg.padding;
- if (this._xformMode == this._ENC_XFORM_MODE) {
- padding.pad(this._data, this.blockSize);
- finalProcessedBlocks = this._process(true);
- } else {
- finalProcessedBlocks = this._process(true);
- padding.unpad(finalProcessedBlocks);
- }
- return finalProcessedBlocks;
- },
- blockSize: 128 / 32
- });
- var CipherParams = C_lib.CipherParams = Base.extend({
- /**
- * Initializes a newly created cipher params object.
- *
- * @param {Object} cipherParams An object with any of the possible cipher parameters.
- *
- * @example
- *
- * var cipherParams = CryptoJS.lib.CipherParams.create({
- * ciphertext: ciphertextWordArray,
- * key: keyWordArray,
- * iv: ivWordArray,
- * salt: saltWordArray,
- * algorithm: CryptoJS.algo.AES,
- * mode: CryptoJS.mode.CBC,
- * padding: CryptoJS.pad.PKCS7,
- * blockSize: 4,
- * formatter: CryptoJS.format.OpenSSL
- * });
- */
- init: function (cipherParams) {
- this.mixIn(cipherParams);
- },
- /**
- * Converts this cipher params object to a string.
- *
- * @param {Format} formatter (Optional) The formatting strategy to use.
- *
- * @return {string} The stringified cipher params.
- *
- * @throws Error If neither the formatter nor the default formatter is set.
- *
- * @example
- *
- * var string = cipherParams + '';
- * var string = cipherParams.toString();
- * var string = cipherParams.toString(CryptoJS.format.OpenSSL);
- */
- toString: function (formatter) {
- return (formatter || this.formatter).stringify(this);
- }
- });
- var C_format = C.format = {};
- var OpenSSLFormatter = C_format.OpenSSL = {
- /**
- * Converts a cipher params object to an OpenSSL-compatible string.
- *
- * @param {CipherParams} cipherParams The cipher params object.
- *
- * @return {string} The OpenSSL-compatible string.
- *
- * @static
- *
- * @example
- *
- * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
- */
- stringify: function (cipherParams) {
- var wordArray;
- var ciphertext = cipherParams.ciphertext;
- var salt = cipherParams.salt;
- if (salt) {
- wordArray = WordArray.create([1398893684, 1701076831]).concat(salt).concat(ciphertext);
- } else {
- wordArray = ciphertext;
- }
- return wordArray.toString(Base64);
- },
- /**
- * Converts an OpenSSL-compatible string to a cipher params object.
- *
- * @param {string} openSSLStr The OpenSSL-compatible string.
- *
- * @return {CipherParams} The cipher params object.
- *
- * @static
- *
- * @example
- *
- * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
- */
- parse: function (openSSLStr) {
- var salt;
- var ciphertext = Base64.parse(openSSLStr);
- var ciphertextWords = ciphertext.words;
- if (ciphertextWords[0] == 1398893684 && ciphertextWords[1] == 1701076831) {
- salt = WordArray.create(ciphertextWords.slice(2, 4));
- ciphertextWords.splice(0, 4);
- ciphertext.sigBytes -= 16;
- }
- return CipherParams.create({ ciphertext, salt });
- }
- };
- var SerializableCipher = C_lib.SerializableCipher = Base.extend({
- /**
- * Configuration options.
- *
- * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
- */
- cfg: Base.extend({
- format: OpenSSLFormatter
- }),
- /**
- * Encrypts a message.
- *
- * @param {Cipher} cipher The cipher algorithm to use.
- * @param {WordArray|string} message The message to encrypt.
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {CipherParams} A cipher params object.
- *
- * @static
- *
- * @example
- *
- * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
- * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
- * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
- */
- encrypt: function (cipher, message, key, cfg) {
- cfg = this.cfg.extend(cfg);
- var encryptor = cipher.createEncryptor(key, cfg);
- var ciphertext = encryptor.finalize(message);
- var cipherCfg = encryptor.cfg;
- return CipherParams.create({
- ciphertext,
- key,
- iv: cipherCfg.iv,
- algorithm: cipher,
- mode: cipherCfg.mode,
- padding: cipherCfg.padding,
- blockSize: cipher.blockSize,
- formatter: cfg.format
- });
- },
- /**
- * Decrypts serialized ciphertext.
- *
- * @param {Cipher} cipher The cipher algorithm to use.
- * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
- * @param {WordArray} key The key.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {WordArray} The plaintext.
- *
- * @static
- *
- * @example
- *
- * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
- * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
- */
- decrypt: function (cipher, ciphertext, key, cfg) {
- cfg = this.cfg.extend(cfg);
- ciphertext = this._parse(ciphertext, cfg.format);
- var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
- return plaintext;
- },
- /**
- * Converts serialized ciphertext to CipherParams,
- * else assumed CipherParams already and returns ciphertext unchanged.
- *
- * @param {CipherParams|string} ciphertext The ciphertext.
- * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
- *
- * @return {CipherParams} The unserialized ciphertext.
- *
- * @static
- *
- * @example
- *
- * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
- */
- _parse: function (ciphertext, format) {
- if (typeof ciphertext == "string") {
- return format.parse(ciphertext, this);
- } else {
- return ciphertext;
- }
- }
- });
- var C_kdf = C.kdf = {};
- var OpenSSLKdf = C_kdf.OpenSSL = {
- /**
- * Derives a key and IV from a password.
- *
- * @param {string} password The password to derive from.
- * @param {number} keySize The size in words of the key to generate.
- * @param {number} ivSize The size in words of the IV to generate.
- * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
- *
- * @return {CipherParams} A cipher params object with the key, IV, and salt.
- *
- * @static
- *
- * @example
- *
- * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
- * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
- */
- execute: function (password, keySize, ivSize, salt) {
- if (!salt) {
- salt = WordArray.random(64 / 8);
- }
- var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);
- var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
- key.sigBytes = keySize * 4;
- return CipherParams.create({ key, iv, salt });
- }
- };
- var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({
- /**
- * Configuration options.
- *
- * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
- */
- cfg: SerializableCipher.cfg.extend({
- kdf: OpenSSLKdf
- }),
- /**
- * Encrypts a message using a password.
- *
- * @param {Cipher} cipher The cipher algorithm to use.
- * @param {WordArray|string} message The message to encrypt.
- * @param {string} password The password.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {CipherParams} A cipher params object.
- *
- * @static
- *
- * @example
- *
- * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
- * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
- */
- encrypt: function (cipher, message, password, cfg) {
- cfg = this.cfg.extend(cfg);
- var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);
- cfg.iv = derivedParams.iv;
- var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);
- ciphertext.mixIn(derivedParams);
- return ciphertext;
- },
- /**
- * Decrypts serialized ciphertext using a password.
- *
- * @param {Cipher} cipher The cipher algorithm to use.
- * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
- * @param {string} password The password.
- * @param {Object} cfg (Optional) The configuration options to use for this operation.
- *
- * @return {WordArray} The plaintext.
- *
- * @static
- *
- * @example
- *
- * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
- * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
- */
- decrypt: function (cipher, ciphertext, password, cfg) {
- cfg = this.cfg.extend(cfg);
- ciphertext = this._parse(ciphertext, cfg.format);
- var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);
- cfg.iv = derivedParams.iv;
- var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);
- return plaintext;
- }
- });
- }();
- });
- }
- });
- // mode-cfb.js
- var require_mode_cfb = __commonJS({
- "mode-cfb.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.mode.CFB = function () {
- var CFB = CryptoJS.lib.BlockCipherMode.extend();
- CFB.Encryptor = CFB.extend({
- processBlock: function (words, offset) {
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
- generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
- this._prevBlock = words.slice(offset, offset + blockSize);
- }
- });
- CFB.Decryptor = CFB.extend({
- processBlock: function (words, offset) {
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
- var thisBlock = words.slice(offset, offset + blockSize);
- generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
- this._prevBlock = thisBlock;
- }
- });
- function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {
- var keystream;
- var iv = this._iv;
- if (iv) {
- keystream = iv.slice(0);
- this._iv = void 0;
- } else {
- keystream = this._prevBlock;
- }
- cipher.encryptBlock(keystream, 0);
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= keystream[i];
- }
- }
- return CFB;
- }();
- return CryptoJS.mode.CFB;
- });
- }
- });
- // mode-ctr.js
- var require_mode_ctr = __commonJS({
- "mode-ctr.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.mode.CTR = function () {
- var CTR = CryptoJS.lib.BlockCipherMode.extend();
- var Encryptor = CTR.Encryptor = CTR.extend({
- processBlock: function (words, offset) {
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
- var iv = this._iv;
- var counter = this._counter;
- if (iv) {
- counter = this._counter = iv.slice(0);
- this._iv = void 0;
- }
- var keystream = counter.slice(0);
- cipher.encryptBlock(keystream, 0);
- counter[blockSize - 1] = counter[blockSize - 1] + 1 | 0;
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= keystream[i];
- }
- }
- });
- CTR.Decryptor = Encryptor;
- return CTR;
- }();
- return CryptoJS.mode.CTR;
- });
- }
- });
- // mode-ctr-gladman.js
- var require_mode_ctr_gladman = __commonJS({
- "mode-ctr-gladman.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.mode.CTRGladman = function () {
- var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();
- function incWord(word) {
- if ((word >> 24 & 255) === 255) {
- var b1 = word >> 16 & 255;
- var b2 = word >> 8 & 255;
- var b3 = word & 255;
- if (b1 === 255) {
- b1 = 0;
- if (b2 === 255) {
- b2 = 0;
- if (b3 === 255) {
- b3 = 0;
- } else {
- ++b3;
- }
- } else {
- ++b2;
- }
- } else {
- ++b1;
- }
- word = 0;
- word += b1 << 16;
- word += b2 << 8;
- word += b3;
- } else {
- word += 1 << 24;
- }
- return word;
- }
- function incCounter(counter) {
- if ((counter[0] = incWord(counter[0])) === 0) {
- counter[1] = incWord(counter[1]);
- }
- return counter;
- }
- var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
- processBlock: function (words, offset) {
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
- var iv = this._iv;
- var counter = this._counter;
- if (iv) {
- counter = this._counter = iv.slice(0);
- this._iv = void 0;
- }
- incCounter(counter);
- var keystream = counter.slice(0);
- cipher.encryptBlock(keystream, 0);
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= keystream[i];
- }
- }
- });
- CTRGladman.Decryptor = Encryptor;
- return CTRGladman;
- }();
- return CryptoJS.mode.CTRGladman;
- });
- }
- });
- // mode-ofb.js
- var require_mode_ofb = __commonJS({
- "mode-ofb.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.mode.OFB = function () {
- var OFB = CryptoJS.lib.BlockCipherMode.extend();
- var Encryptor = OFB.Encryptor = OFB.extend({
- processBlock: function (words, offset) {
- var cipher = this._cipher;
- var blockSize = cipher.blockSize;
- var iv = this._iv;
- var keystream = this._keystream;
- if (iv) {
- keystream = this._keystream = iv.slice(0);
- this._iv = void 0;
- }
- cipher.encryptBlock(keystream, 0);
- for (var i = 0; i < blockSize; i++) {
- words[offset + i] ^= keystream[i];
- }
- }
- });
- OFB.Decryptor = Encryptor;
- return OFB;
- }();
- return CryptoJS.mode.OFB;
- });
- }
- });
- // mode-ecb.js
- var require_mode_ecb = __commonJS({
- "mode-ecb.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.mode.ECB = function () {
- var ECB = CryptoJS.lib.BlockCipherMode.extend();
- ECB.Encryptor = ECB.extend({
- processBlock: function (words, offset) {
- this._cipher.encryptBlock(words, offset);
- }
- });
- ECB.Decryptor = ECB.extend({
- processBlock: function (words, offset) {
- this._cipher.decryptBlock(words, offset);
- }
- });
- return ECB;
- }();
- return CryptoJS.mode.ECB;
- });
- }
- });
- // pad-ansix923.js
- var require_pad_ansix923 = __commonJS({
- "pad-ansix923.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.pad.AnsiX923 = {
- pad: function (data, blockSize) {
- var dataSigBytes = data.sigBytes;
- var blockSizeBytes = blockSize * 4;
- var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;
- var lastBytePos = dataSigBytes + nPaddingBytes - 1;
- data.clamp();
- data.words[lastBytePos >>> 2] |= nPaddingBytes << 24 - lastBytePos % 4 * 8;
- data.sigBytes += nPaddingBytes;
- },
- unpad: function (data) {
- var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255;
- data.sigBytes -= nPaddingBytes;
- }
- };
- return CryptoJS.pad.Ansix923;
- });
- }
- });
- // pad-iso10126.js
- var require_pad_iso10126 = __commonJS({
- "pad-iso10126.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.pad.Iso10126 = {
- pad: function (data, blockSize) {
- var blockSizeBytes = blockSize * 4;
- var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;
- data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));
- },
- unpad: function (data) {
- var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255;
- data.sigBytes -= nPaddingBytes;
- }
- };
- return CryptoJS.pad.Iso10126;
- });
- }
- });
- // pad-iso97971.js
- var require_pad_iso97971 = __commonJS({
- "pad-iso97971.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.pad.Iso97971 = {
- pad: function (data, blockSize) {
- data.concat(CryptoJS.lib.WordArray.create([2147483648], 1));
- CryptoJS.pad.ZeroPadding.pad(data, blockSize);
- },
- unpad: function (data) {
- CryptoJS.pad.ZeroPadding.unpad(data);
- data.sigBytes--;
- }
- };
- return CryptoJS.pad.Iso97971;
- });
- }
- });
- // pad-zeropadding.js
- var require_pad_zeropadding = __commonJS({
- "pad-zeropadding.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.pad.ZeroPadding = {
- pad: function (data, blockSize) {
- var blockSizeBytes = blockSize * 4;
- data.clamp();
- data.sigBytes += blockSizeBytes - (data.sigBytes % blockSizeBytes || blockSizeBytes);
- },
- unpad: function (data) {
- var dataWords = data.words;
- var i = data.sigBytes - 1;
- for (var i = data.sigBytes - 1; i >= 0; i--) {
- if (dataWords[i >>> 2] >>> 24 - i % 4 * 8 & 255) {
- data.sigBytes = i + 1;
- break;
- }
- }
- }
- };
- return CryptoJS.pad.ZeroPadding;
- });
- }
- });
- // pad-nopadding.js
- var require_pad_nopadding = __commonJS({
- "pad-nopadding.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- CryptoJS.pad.NoPadding = {
- pad: function () {
- },
- unpad: function () {
- }
- };
- return CryptoJS.pad.NoPadding;
- });
- }
- });
- // format-hex.js
- var require_format_hex = __commonJS({
- "format-hex.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function (undefined2) {
- var C = CryptoJS;
- var C_lib = C.lib;
- var CipherParams = C_lib.CipherParams;
- var C_enc = C.enc;
- var Hex = C_enc.Hex;
- var C_format = C.format;
- var HexFormatter = C_format.Hex = {
- /**
- * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
- *
- * @param {CipherParams} cipherParams The cipher params object.
- *
- * @return {string} The hexadecimally encoded string.
- *
- * @static
- *
- * @example
- *
- * var hexString = CryptoJS.format.Hex.stringify(cipherParams);
- */
- stringify: function (cipherParams) {
- return cipherParams.ciphertext.toString(Hex);
- },
- /**
- * Converts a hexadecimally encoded ciphertext string to a cipher params object.
- *
- * @param {string} input The hexadecimally encoded string.
- *
- * @return {CipherParams} The cipher params object.
- *
- * @static
- *
- * @example
- *
- * var cipherParams = CryptoJS.format.Hex.parse(hexString);
- */
- parse: function (input) {
- var ciphertext = Hex.parse(input);
- return CipherParams.create({ ciphertext });
- }
- };
- })();
- return CryptoJS.format.Hex;
- });
- }
- });
- // aes.js
- var require_aes = __commonJS({
- "aes.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var BlockCipher = C_lib.BlockCipher;
- var C_algo = C.algo;
- var SBOX = [];
- var INV_SBOX = [];
- var SUB_MIX_0 = [];
- var SUB_MIX_1 = [];
- var SUB_MIX_2 = [];
- var SUB_MIX_3 = [];
- var INV_SUB_MIX_0 = [];
- var INV_SUB_MIX_1 = [];
- var INV_SUB_MIX_2 = [];
- var INV_SUB_MIX_3 = [];
- (function () {
- var d = [];
- for (var i = 0; i < 256; i++) {
- if (i < 128) {
- d[i] = i << 1;
- } else {
- d[i] = i << 1 ^ 283;
- }
- }
- var x = 0;
- var xi = 0;
- for (var i = 0; i < 256; i++) {
- var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;
- sx = sx >>> 8 ^ sx & 255 ^ 99;
- SBOX[x] = sx;
- INV_SBOX[sx] = x;
- var x2 = d[x];
- var x4 = d[x2];
- var x8 = d[x4];
- var t = d[sx] * 257 ^ sx * 16843008;
- SUB_MIX_0[x] = t << 24 | t >>> 8;
- SUB_MIX_1[x] = t << 16 | t >>> 16;
- SUB_MIX_2[x] = t << 8 | t >>> 24;
- SUB_MIX_3[x] = t;
- var t = x8 * 16843009 ^ x4 * 65537 ^ x2 * 257 ^ x * 16843008;
- INV_SUB_MIX_0[sx] = t << 24 | t >>> 8;
- INV_SUB_MIX_1[sx] = t << 16 | t >>> 16;
- INV_SUB_MIX_2[sx] = t << 8 | t >>> 24;
- INV_SUB_MIX_3[sx] = t;
- if (!x) {
- x = xi = 1;
- } else {
- x = x2 ^ d[d[d[x8 ^ x2]]];
- xi ^= d[d[xi]];
- }
- }
- })();
- var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54];
- var AES = C_algo.AES = BlockCipher.extend({
- _doReset: function () {
- var t;
- if (this._nRounds && this._keyPriorReset === this._key) {
- return;
- }
- var key = this._keyPriorReset = this._key;
- var keyWords = key.words;
- var keySize = key.sigBytes / 4;
- var nRounds = this._nRounds = keySize + 6;
- var ksRows = (nRounds + 1) * 4;
- var keySchedule = this._keySchedule = [];
- for (var ksRow = 0; ksRow < ksRows; ksRow++) {
- if (ksRow < keySize) {
- keySchedule[ksRow] = keyWords[ksRow];
- } else {
- t = keySchedule[ksRow - 1];
- if (!(ksRow % keySize)) {
- t = t << 8 | t >>> 24;
- t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 255] << 16 | SBOX[t >>> 8 & 255] << 8 | SBOX[t & 255];
- t ^= RCON[ksRow / keySize | 0] << 24;
- } else if (keySize > 6 && ksRow % keySize == 4) {
- t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 255] << 16 | SBOX[t >>> 8 & 255] << 8 | SBOX[t & 255];
- }
- keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;
- }
- }
- var invKeySchedule = this._invKeySchedule = [];
- for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
- var ksRow = ksRows - invKsRow;
- if (invKsRow % 4) {
- var t = keySchedule[ksRow];
- } else {
- var t = keySchedule[ksRow - 4];
- }
- if (invKsRow < 4 || ksRow <= 4) {
- invKeySchedule[invKsRow] = t;
- } else {
- invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[t >>> 16 & 255]] ^ INV_SUB_MIX_2[SBOX[t >>> 8 & 255]] ^ INV_SUB_MIX_3[SBOX[t & 255]];
- }
- }
- },
- encryptBlock: function (M, offset) {
- this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);
- },
- decryptBlock: function (M, offset) {
- var t = M[offset + 1];
- M[offset + 1] = M[offset + 3];
- M[offset + 3] = t;
- this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);
- var t = M[offset + 1];
- M[offset + 1] = M[offset + 3];
- M[offset + 3] = t;
- },
- _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_02, SUB_MIX_12, SUB_MIX_22, SUB_MIX_32, SBOX2) {
- var nRounds = this._nRounds;
- var s0 = M[offset] ^ keySchedule[0];
- var s1 = M[offset + 1] ^ keySchedule[1];
- var s2 = M[offset + 2] ^ keySchedule[2];
- var s3 = M[offset + 3] ^ keySchedule[3];
- var ksRow = 4;
- for (var round = 1; round < nRounds; round++) {
- var t0 = SUB_MIX_02[s0 >>> 24] ^ SUB_MIX_12[s1 >>> 16 & 255] ^ SUB_MIX_22[s2 >>> 8 & 255] ^ SUB_MIX_32[s3 & 255] ^ keySchedule[ksRow++];
- var t1 = SUB_MIX_02[s1 >>> 24] ^ SUB_MIX_12[s2 >>> 16 & 255] ^ SUB_MIX_22[s3 >>> 8 & 255] ^ SUB_MIX_32[s0 & 255] ^ keySchedule[ksRow++];
- var t2 = SUB_MIX_02[s2 >>> 24] ^ SUB_MIX_12[s3 >>> 16 & 255] ^ SUB_MIX_22[s0 >>> 8 & 255] ^ SUB_MIX_32[s1 & 255] ^ keySchedule[ksRow++];
- var t3 = SUB_MIX_02[s3 >>> 24] ^ SUB_MIX_12[s0 >>> 16 & 255] ^ SUB_MIX_22[s1 >>> 8 & 255] ^ SUB_MIX_32[s2 & 255] ^ keySchedule[ksRow++];
- s0 = t0;
- s1 = t1;
- s2 = t2;
- s3 = t3;
- }
- var t0 = (SBOX2[s0 >>> 24] << 24 | SBOX2[s1 >>> 16 & 255] << 16 | SBOX2[s2 >>> 8 & 255] << 8 | SBOX2[s3 & 255]) ^ keySchedule[ksRow++];
- var t1 = (SBOX2[s1 >>> 24] << 24 | SBOX2[s2 >>> 16 & 255] << 16 | SBOX2[s3 >>> 8 & 255] << 8 | SBOX2[s0 & 255]) ^ keySchedule[ksRow++];
- var t2 = (SBOX2[s2 >>> 24] << 24 | SBOX2[s3 >>> 16 & 255] << 16 | SBOX2[s0 >>> 8 & 255] << 8 | SBOX2[s1 & 255]) ^ keySchedule[ksRow++];
- var t3 = (SBOX2[s3 >>> 24] << 24 | SBOX2[s0 >>> 16 & 255] << 16 | SBOX2[s1 >>> 8 & 255] << 8 | SBOX2[s2 & 255]) ^ keySchedule[ksRow++];
- M[offset] = t0;
- M[offset + 1] = t1;
- M[offset + 2] = t2;
- M[offset + 3] = t3;
- },
- keySize: 256 / 32
- });
- C.AES = BlockCipher._createHelper(AES);
- })();
- return CryptoJS.AES;
- });
- }
- });
- // tripledes.js
- var require_tripledes = __commonJS({
- "tripledes.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var WordArray = C_lib.WordArray;
- var BlockCipher = C_lib.BlockCipher;
- var C_algo = C.algo;
- var PC1 = [
- 57,
- 49,
- 41,
- 33,
- 25,
- 17,
- 9,
- 1,
- 58,
- 50,
- 42,
- 34,
- 26,
- 18,
- 10,
- 2,
- 59,
- 51,
- 43,
- 35,
- 27,
- 19,
- 11,
- 3,
- 60,
- 52,
- 44,
- 36,
- 63,
- 55,
- 47,
- 39,
- 31,
- 23,
- 15,
- 7,
- 62,
- 54,
- 46,
- 38,
- 30,
- 22,
- 14,
- 6,
- 61,
- 53,
- 45,
- 37,
- 29,
- 21,
- 13,
- 5,
- 28,
- 20,
- 12,
- 4
- ];
- var PC2 = [
- 14,
- 17,
- 11,
- 24,
- 1,
- 5,
- 3,
- 28,
- 15,
- 6,
- 21,
- 10,
- 23,
- 19,
- 12,
- 4,
- 26,
- 8,
- 16,
- 7,
- 27,
- 20,
- 13,
- 2,
- 41,
- 52,
- 31,
- 37,
- 47,
- 55,
- 30,
- 40,
- 51,
- 45,
- 33,
- 48,
- 44,
- 49,
- 39,
- 56,
- 34,
- 53,
- 46,
- 42,
- 50,
- 36,
- 29,
- 32
- ];
- var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
- var SBOX_P = [
- {
- 0: 8421888,
- 268435456: 32768,
- 536870912: 8421378,
- 805306368: 2,
- 1073741824: 512,
- 1342177280: 8421890,
- 1610612736: 8389122,
- 1879048192: 8388608,
- 2147483648: 514,
- 2415919104: 8389120,
- 2684354560: 33280,
- 2952790016: 8421376,
- 3221225472: 32770,
- 3489660928: 8388610,
- 3758096384: 0,
- 4026531840: 33282,
- 134217728: 0,
- 402653184: 8421890,
- 671088640: 33282,
- 939524096: 32768,
- 1207959552: 8421888,
- 1476395008: 512,
- 1744830464: 8421378,
- 2013265920: 2,
- 2281701376: 8389120,
- 2550136832: 33280,
- 2818572288: 8421376,
- 3087007744: 8389122,
- 3355443200: 8388610,
- 3623878656: 32770,
- 3892314112: 514,
- 4160749568: 8388608,
- 1: 32768,
- 268435457: 2,
- 536870913: 8421888,
- 805306369: 8388608,
- 1073741825: 8421378,
- 1342177281: 33280,
- 1610612737: 512,
- 1879048193: 8389122,
- 2147483649: 8421890,
- 2415919105: 8421376,
- 2684354561: 8388610,
- 2952790017: 33282,
- 3221225473: 514,
- 3489660929: 8389120,
- 3758096385: 32770,
- 4026531841: 0,
- 134217729: 8421890,
- 402653185: 8421376,
- 671088641: 8388608,
- 939524097: 512,
- 1207959553: 32768,
- 1476395009: 8388610,
- 1744830465: 2,
- 2013265921: 33282,
- 2281701377: 32770,
- 2550136833: 8389122,
- 2818572289: 514,
- 3087007745: 8421888,
- 3355443201: 8389120,
- 3623878657: 0,
- 3892314113: 33280,
- 4160749569: 8421378
- },
- {
- 0: 1074282512,
- 16777216: 16384,
- 33554432: 524288,
- 50331648: 1074266128,
- 67108864: 1073741840,
- 83886080: 1074282496,
- 100663296: 1073758208,
- 117440512: 16,
- 134217728: 540672,
- 150994944: 1073758224,
- 167772160: 1073741824,
- 184549376: 540688,
- 201326592: 524304,
- 218103808: 0,
- 234881024: 16400,
- 251658240: 1074266112,
- 8388608: 1073758208,
- 25165824: 540688,
- 41943040: 16,
- 58720256: 1073758224,
- 75497472: 1074282512,
- 92274688: 1073741824,
- 109051904: 524288,
- 125829120: 1074266128,
- 142606336: 524304,
- 159383552: 0,
- 176160768: 16384,
- 192937984: 1074266112,
- 209715200: 1073741840,
- 226492416: 540672,
- 243269632: 1074282496,
- 260046848: 16400,
- 268435456: 0,
- 285212672: 1074266128,
- 301989888: 1073758224,
- 318767104: 1074282496,
- 335544320: 1074266112,
- 352321536: 16,
- 369098752: 540688,
- 385875968: 16384,
- 402653184: 16400,
- 419430400: 524288,
- 436207616: 524304,
- 452984832: 1073741840,
- 469762048: 540672,
- 486539264: 1073758208,
- 503316480: 1073741824,
- 520093696: 1074282512,
- 276824064: 540688,
- 293601280: 524288,
- 310378496: 1074266112,
- 327155712: 16384,
- 343932928: 1073758208,
- 360710144: 1074282512,
- 377487360: 16,
- 394264576: 1073741824,
- 411041792: 1074282496,
- 427819008: 1073741840,
- 444596224: 1073758224,
- 461373440: 524304,
- 478150656: 0,
- 494927872: 16400,
- 511705088: 1074266128,
- 528482304: 540672
- },
- {
- 0: 260,
- 1048576: 0,
- 2097152: 67109120,
- 3145728: 65796,
- 4194304: 65540,
- 5242880: 67108868,
- 6291456: 67174660,
- 7340032: 67174400,
- 8388608: 67108864,
- 9437184: 67174656,
- 10485760: 65792,
- 11534336: 67174404,
- 12582912: 67109124,
- 13631488: 65536,
- 14680064: 4,
- 15728640: 256,
- 524288: 67174656,
- 1572864: 67174404,
- 2621440: 0,
- 3670016: 67109120,
- 4718592: 67108868,
- 5767168: 65536,
- 6815744: 65540,
- 7864320: 260,
- 8912896: 4,
- 9961472: 256,
- 11010048: 67174400,
- 12058624: 65796,
- 13107200: 65792,
- 14155776: 67109124,
- 15204352: 67174660,
- 16252928: 67108864,
- 16777216: 67174656,
- 17825792: 65540,
- 18874368: 65536,
- 19922944: 67109120,
- 20971520: 256,
- 22020096: 67174660,
- 23068672: 67108868,
- 24117248: 0,
- 25165824: 67109124,
- 26214400: 67108864,
- 27262976: 4,
- 28311552: 65792,
- 29360128: 67174400,
- 30408704: 260,
- 31457280: 65796,
- 32505856: 67174404,
- 17301504: 67108864,
- 18350080: 260,
- 19398656: 67174656,
- 20447232: 0,
- 21495808: 65540,
- 22544384: 67109120,
- 23592960: 256,
- 24641536: 67174404,
- 25690112: 65536,
- 26738688: 67174660,
- 27787264: 65796,
- 28835840: 67108868,
- 29884416: 67109124,
- 30932992: 67174400,
- 31981568: 4,
- 33030144: 65792
- },
- {
- 0: 2151682048,
- 65536: 2147487808,
- 131072: 4198464,
- 196608: 2151677952,
- 262144: 0,
- 327680: 4198400,
- 393216: 2147483712,
- 458752: 4194368,
- 524288: 2147483648,
- 589824: 4194304,
- 655360: 64,
- 720896: 2147487744,
- 786432: 2151678016,
- 851968: 4160,
- 917504: 4096,
- 983040: 2151682112,
- 32768: 2147487808,
- 98304: 64,
- 163840: 2151678016,
- 229376: 2147487744,
- 294912: 4198400,
- 360448: 2151682112,
- 425984: 0,
- 491520: 2151677952,
- 557056: 4096,
- 622592: 2151682048,
- 688128: 4194304,
- 753664: 4160,
- 819200: 2147483648,
- 884736: 4194368,
- 950272: 4198464,
- 1015808: 2147483712,
- 1048576: 4194368,
- 1114112: 4198400,
- 1179648: 2147483712,
- 1245184: 0,
- 1310720: 4160,
- 1376256: 2151678016,
- 1441792: 2151682048,
- 1507328: 2147487808,
- 1572864: 2151682112,
- 1638400: 2147483648,
- 1703936: 2151677952,
- 1769472: 4198464,
- 1835008: 2147487744,
- 1900544: 4194304,
- 1966080: 64,
- 2031616: 4096,
- 1081344: 2151677952,
- 1146880: 2151682112,
- 1212416: 0,
- 1277952: 4198400,
- 1343488: 4194368,
- 1409024: 2147483648,
- 1474560: 2147487808,
- 1540096: 64,
- 1605632: 2147483712,
- 1671168: 4096,
- 1736704: 2147487744,
- 1802240: 2151678016,
- 1867776: 4160,
- 1933312: 2151682048,
- 1998848: 4194304,
- 2064384: 4198464
- },
- {
- 0: 128,
- 4096: 17039360,
- 8192: 262144,
- 12288: 536870912,
- 16384: 537133184,
- 20480: 16777344,
- 24576: 553648256,
- 28672: 262272,
- 32768: 16777216,
- 36864: 537133056,
- 40960: 536871040,
- 45056: 553910400,
- 49152: 553910272,
- 53248: 0,
- 57344: 17039488,
- 61440: 553648128,
- 2048: 17039488,
- 6144: 553648256,
- 10240: 128,
- 14336: 17039360,
- 18432: 262144,
- 22528: 537133184,
- 26624: 553910272,
- 30720: 536870912,
- 34816: 537133056,
- 38912: 0,
- 43008: 553910400,
- 47104: 16777344,
- 51200: 536871040,
- 55296: 553648128,
- 59392: 16777216,
- 63488: 262272,
- 65536: 262144,
- 69632: 128,
- 73728: 536870912,
- 77824: 553648256,
- 81920: 16777344,
- 86016: 553910272,
- 90112: 537133184,
- 94208: 16777216,
- 98304: 553910400,
- 102400: 553648128,
- 106496: 17039360,
- 110592: 537133056,
- 114688: 262272,
- 118784: 536871040,
- 122880: 0,
- 126976: 17039488,
- 67584: 553648256,
- 71680: 16777216,
- 75776: 17039360,
- 79872: 537133184,
- 83968: 536870912,
- 88064: 17039488,
- 92160: 128,
- 96256: 553910272,
- 100352: 262272,
- 104448: 553910400,
- 108544: 0,
- 112640: 553648128,
- 116736: 16777344,
- 120832: 262144,
- 124928: 537133056,
- 129024: 536871040
- },
- {
- 0: 268435464,
- 256: 8192,
- 512: 270532608,
- 768: 270540808,
- 1024: 268443648,
- 1280: 2097152,
- 1536: 2097160,
- 1792: 268435456,
- 2048: 0,
- 2304: 268443656,
- 2560: 2105344,
- 2816: 8,
- 3072: 270532616,
- 3328: 2105352,
- 3584: 8200,
- 3840: 270540800,
- 128: 270532608,
- 384: 270540808,
- 640: 8,
- 896: 2097152,
- 1152: 2105352,
- 1408: 268435464,
- 1664: 268443648,
- 1920: 8200,
- 2176: 2097160,
- 2432: 8192,
- 2688: 268443656,
- 2944: 270532616,
- 3200: 0,
- 3456: 270540800,
- 3712: 2105344,
- 3968: 268435456,
- 4096: 268443648,
- 4352: 270532616,
- 4608: 270540808,
- 4864: 8200,
- 5120: 2097152,
- 5376: 268435456,
- 5632: 268435464,
- 5888: 2105344,
- 6144: 2105352,
- 6400: 0,
- 6656: 8,
- 6912: 270532608,
- 7168: 8192,
- 7424: 268443656,
- 7680: 270540800,
- 7936: 2097160,
- 4224: 8,
- 4480: 2105344,
- 4736: 2097152,
- 4992: 268435464,
- 5248: 268443648,
- 5504: 8200,
- 5760: 270540808,
- 6016: 270532608,
- 6272: 270540800,
- 6528: 270532616,
- 6784: 8192,
- 7040: 2105352,
- 7296: 2097160,
- 7552: 0,
- 7808: 268435456,
- 8064: 268443656
- },
- {
- 0: 1048576,
- 16: 33555457,
- 32: 1024,
- 48: 1049601,
- 64: 34604033,
- 80: 0,
- 96: 1,
- 112: 34603009,
- 128: 33555456,
- 144: 1048577,
- 160: 33554433,
- 176: 34604032,
- 192: 34603008,
- 208: 1025,
- 224: 1049600,
- 240: 33554432,
- 8: 34603009,
- 24: 0,
- 40: 33555457,
- 56: 34604032,
- 72: 1048576,
- 88: 33554433,
- 104: 33554432,
- 120: 1025,
- 136: 1049601,
- 152: 33555456,
- 168: 34603008,
- 184: 1048577,
- 200: 1024,
- 216: 34604033,
- 232: 1,
- 248: 1049600,
- 256: 33554432,
- 272: 1048576,
- 288: 33555457,
- 304: 34603009,
- 320: 1048577,
- 336: 33555456,
- 352: 34604032,
- 368: 1049601,
- 384: 1025,
- 400: 34604033,
- 416: 1049600,
- 432: 1,
- 448: 0,
- 464: 34603008,
- 480: 33554433,
- 496: 1024,
- 264: 1049600,
- 280: 33555457,
- 296: 34603009,
- 312: 1,
- 328: 33554432,
- 344: 1048576,
- 360: 1025,
- 376: 34604032,
- 392: 33554433,
- 408: 34603008,
- 424: 0,
- 440: 34604033,
- 456: 1049601,
- 472: 1024,
- 488: 33555456,
- 504: 1048577
- },
- {
- 0: 134219808,
- 1: 131072,
- 2: 134217728,
- 3: 32,
- 4: 131104,
- 5: 134350880,
- 6: 134350848,
- 7: 2048,
- 8: 134348800,
- 9: 134219776,
- 10: 133120,
- 11: 134348832,
- 12: 2080,
- 13: 0,
- 14: 134217760,
- 15: 133152,
- 2147483648: 2048,
- 2147483649: 134350880,
- 2147483650: 134219808,
- 2147483651: 134217728,
- 2147483652: 134348800,
- 2147483653: 133120,
- 2147483654: 133152,
- 2147483655: 32,
- 2147483656: 134217760,
- 2147483657: 2080,
- 2147483658: 131104,
- 2147483659: 134350848,
- 2147483660: 0,
- 2147483661: 134348832,
- 2147483662: 134219776,
- 2147483663: 131072,
- 16: 133152,
- 17: 134350848,
- 18: 32,
- 19: 2048,
- 20: 134219776,
- 21: 134217760,
- 22: 134348832,
- 23: 131072,
- 24: 0,
- 25: 131104,
- 26: 134348800,
- 27: 134219808,
- 28: 134350880,
- 29: 133120,
- 30: 2080,
- 31: 134217728,
- 2147483664: 131072,
- 2147483665: 2048,
- 2147483666: 134348832,
- 2147483667: 133152,
- 2147483668: 32,
- 2147483669: 134348800,
- 2147483670: 134217728,
- 2147483671: 134219808,
- 2147483672: 134350880,
- 2147483673: 134217760,
- 2147483674: 134219776,
- 2147483675: 0,
- 2147483676: 133120,
- 2147483677: 2080,
- 2147483678: 131104,
- 2147483679: 134350848
- }
- ];
- var SBOX_MASK = [
- 4160749569,
- 528482304,
- 33030144,
- 2064384,
- 129024,
- 8064,
- 504,
- 2147483679
- ];
- var DES = C_algo.DES = BlockCipher.extend({
- _doReset: function () {
- var key = this._key;
- var keyWords = key.words;
- var keyBits = [];
- for (var i = 0; i < 56; i++) {
- var keyBitPos = PC1[i] - 1;
- keyBits[i] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1;
- }
- var subKeys = this._subKeys = [];
- for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
- var subKey = subKeys[nSubKey] = [];
- var bitShift = BIT_SHIFTS[nSubKey];
- for (var i = 0; i < 24; i++) {
- subKey[i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6;
- subKey[4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6;
- }
- subKey[0] = subKey[0] << 1 | subKey[0] >>> 31;
- for (var i = 1; i < 7; i++) {
- subKey[i] = subKey[i] >>> (i - 1) * 4 + 3;
- }
- subKey[7] = subKey[7] << 5 | subKey[7] >>> 27;
- }
- var invSubKeys = this._invSubKeys = [];
- for (var i = 0; i < 16; i++) {
- invSubKeys[i] = subKeys[15 - i];
- }
- },
- encryptBlock: function (M, offset) {
- this._doCryptBlock(M, offset, this._subKeys);
- },
- decryptBlock: function (M, offset) {
- this._doCryptBlock(M, offset, this._invSubKeys);
- },
- _doCryptBlock: function (M, offset, subKeys) {
- this._lBlock = M[offset];
- this._rBlock = M[offset + 1];
- exchangeLR.call(this, 4, 252645135);
- exchangeLR.call(this, 16, 65535);
- exchangeRL.call(this, 2, 858993459);
- exchangeRL.call(this, 8, 16711935);
- exchangeLR.call(this, 1, 1431655765);
- for (var round = 0; round < 16; round++) {
- var subKey = subKeys[round];
- var lBlock = this._lBlock;
- var rBlock = this._rBlock;
- var f = 0;
- for (var i = 0; i < 8; i++) {
- f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
- }
- this._lBlock = rBlock;
- this._rBlock = lBlock ^ f;
- }
- var t = this._lBlock;
- this._lBlock = this._rBlock;
- this._rBlock = t;
- exchangeLR.call(this, 1, 1431655765);
- exchangeRL.call(this, 8, 16711935);
- exchangeRL.call(this, 2, 858993459);
- exchangeLR.call(this, 16, 65535);
- exchangeLR.call(this, 4, 252645135);
- M[offset] = this._lBlock;
- M[offset + 1] = this._rBlock;
- },
- keySize: 64 / 32,
- ivSize: 64 / 32,
- blockSize: 64 / 32
- });
- function exchangeLR(offset, mask) {
- var t = (this._lBlock >>> offset ^ this._rBlock) & mask;
- this._rBlock ^= t;
- this._lBlock ^= t << offset;
- }
- function exchangeRL(offset, mask) {
- var t = (this._rBlock >>> offset ^ this._lBlock) & mask;
- this._lBlock ^= t;
- this._rBlock ^= t << offset;
- }
- C.DES = BlockCipher._createHelper(DES);
- var TripleDES = C_algo.TripleDES = BlockCipher.extend({
- _doReset: function () {
- var key = this._key;
- var keyWords = key.words;
- if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {
- throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");
- }
- var key1 = keyWords.slice(0, 2);
- var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);
- var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);
- this._des1 = DES.createEncryptor(WordArray.create(key1));
- this._des2 = DES.createEncryptor(WordArray.create(key2));
- this._des3 = DES.createEncryptor(WordArray.create(key3));
- },
- encryptBlock: function (M, offset) {
- this._des1.encryptBlock(M, offset);
- this._des2.decryptBlock(M, offset);
- this._des3.encryptBlock(M, offset);
- },
- decryptBlock: function (M, offset) {
- this._des3.decryptBlock(M, offset);
- this._des2.encryptBlock(M, offset);
- this._des1.decryptBlock(M, offset);
- },
- keySize: 192 / 32,
- ivSize: 64 / 32,
- blockSize: 64 / 32
- });
- C.TripleDES = BlockCipher._createHelper(TripleDES);
- })();
- return CryptoJS.TripleDES;
- });
- }
- });
- // rc4.js
- var require_rc4 = __commonJS({
- "rc4.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var StreamCipher = C_lib.StreamCipher;
- var C_algo = C.algo;
- var RC4 = C_algo.RC4 = StreamCipher.extend({
- _doReset: function () {
- var key = this._key;
- var keyWords = key.words;
- var keySigBytes = key.sigBytes;
- var S = this._S = [];
- for (var i = 0; i < 256; i++) {
- S[i] = i;
- }
- for (var i = 0, j = 0; i < 256; i++) {
- var keyByteIndex = i % keySigBytes;
- var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 255;
- j = (j + S[i] + keyByte) % 256;
- var t = S[i];
- S[i] = S[j];
- S[j] = t;
- }
- this._i = this._j = 0;
- },
- _doProcessBlock: function (M, offset) {
- M[offset] ^= generateKeystreamWord.call(this);
- },
- keySize: 256 / 32,
- ivSize: 0
- });
- function generateKeystreamWord() {
- var S = this._S;
- var i = this._i;
- var j = this._j;
- var keystreamWord = 0;
- for (var n = 0; n < 4; n++) {
- i = (i + 1) % 256;
- j = (j + S[i]) % 256;
- var t = S[i];
- S[i] = S[j];
- S[j] = t;
- keystreamWord |= S[(S[i] + S[j]) % 256] << 24 - n * 8;
- }
- this._i = i;
- this._j = j;
- return keystreamWord;
- }
- C.RC4 = StreamCipher._createHelper(RC4);
- var RC4Drop = C_algo.RC4Drop = RC4.extend({
- /**
- * Configuration options.
- *
- * @property {number} drop The number of keystream words to drop. Default 192
- */
- cfg: RC4.cfg.extend({
- drop: 192
- }),
- _doReset: function () {
- RC4._doReset.call(this);
- for (var i = this.cfg.drop; i > 0; i--) {
- generateKeystreamWord.call(this);
- }
- }
- });
- C.RC4Drop = StreamCipher._createHelper(RC4Drop);
- })();
- return CryptoJS.RC4;
- });
- }
- });
- // rabbit.js
- var require_rabbit = __commonJS({
- "rabbit.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var StreamCipher = C_lib.StreamCipher;
- var C_algo = C.algo;
- var S = [];
- var C_ = [];
- var G = [];
- var Rabbit = C_algo.Rabbit = StreamCipher.extend({
- _doReset: function () {
- var K = this._key.words;
- var iv = this.cfg.iv;
- for (var i = 0; i < 4; i++) {
- K[i] = (K[i] << 8 | K[i] >>> 24) & 16711935 | (K[i] << 24 | K[i] >>> 8) & 4278255360;
- }
- var X = this._X = [
- K[0],
- K[3] << 16 | K[2] >>> 16,
- K[1],
- K[0] << 16 | K[3] >>> 16,
- K[2],
- K[1] << 16 | K[0] >>> 16,
- K[3],
- K[2] << 16 | K[1] >>> 16
- ];
- var C2 = this._C = [
- K[2] << 16 | K[2] >>> 16,
- K[0] & 4294901760 | K[1] & 65535,
- K[3] << 16 | K[3] >>> 16,
- K[1] & 4294901760 | K[2] & 65535,
- K[0] << 16 | K[0] >>> 16,
- K[2] & 4294901760 | K[3] & 65535,
- K[1] << 16 | K[1] >>> 16,
- K[3] & 4294901760 | K[0] & 65535
- ];
- this._b = 0;
- for (var i = 0; i < 4; i++) {
- nextState.call(this);
- }
- for (var i = 0; i < 8; i++) {
- C2[i] ^= X[i + 4 & 7];
- }
- if (iv) {
- var IV = iv.words;
- var IV_0 = IV[0];
- var IV_1 = IV[1];
- var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360;
- var i2 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360;
- var i1 = i0 >>> 16 | i2 & 4294901760;
- var i3 = i2 << 16 | i0 & 65535;
- C2[0] ^= i0;
- C2[1] ^= i1;
- C2[2] ^= i2;
- C2[3] ^= i3;
- C2[4] ^= i0;
- C2[5] ^= i1;
- C2[6] ^= i2;
- C2[7] ^= i3;
- for (var i = 0; i < 4; i++) {
- nextState.call(this);
- }
- }
- },
- _doProcessBlock: function (M, offset) {
- var X = this._X;
- nextState.call(this);
- S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;
- S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;
- S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;
- S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;
- for (var i = 0; i < 4; i++) {
- S[i] = (S[i] << 8 | S[i] >>> 24) & 16711935 | (S[i] << 24 | S[i] >>> 8) & 4278255360;
- M[offset + i] ^= S[i];
- }
- },
- blockSize: 128 / 32,
- ivSize: 64 / 32
- });
- function nextState() {
- var X = this._X;
- var C2 = this._C;
- for (var i = 0; i < 8; i++) {
- C_[i] = C2[i];
- }
- C2[0] = C2[0] + 1295307597 + this._b | 0;
- C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;
- C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;
- C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;
- C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;
- C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;
- C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;
- C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;
- this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;
- for (var i = 0; i < 8; i++) {
- var gx = X[i] + C2[i];
- var ga = gx & 65535;
- var gb = gx >>> 16;
- var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;
- var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0);
- G[i] = gh ^ gl;
- }
- X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;
- X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;
- X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;
- X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;
- X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;
- X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;
- X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;
- X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;
- }
- C.Rabbit = StreamCipher._createHelper(Rabbit);
- })();
- return CryptoJS.Rabbit;
- });
- }
- });
- // rabbit-legacy.js
- var require_rabbit_legacy = __commonJS({
- "rabbit-legacy.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_enc_base64(), require_md5(), require_evpkdf(), require_cipher_core());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory);
- } else {
- factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- (function () {
- var C = CryptoJS;
- var C_lib = C.lib;
- var StreamCipher = C_lib.StreamCipher;
- var C_algo = C.algo;
- var S = [];
- var C_ = [];
- var G = [];
- var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({
- _doReset: function () {
- var K = this._key.words;
- var iv = this.cfg.iv;
- var X = this._X = [
- K[0],
- K[3] << 16 | K[2] >>> 16,
- K[1],
- K[0] << 16 | K[3] >>> 16,
- K[2],
- K[1] << 16 | K[0] >>> 16,
- K[3],
- K[2] << 16 | K[1] >>> 16
- ];
- var C2 = this._C = [
- K[2] << 16 | K[2] >>> 16,
- K[0] & 4294901760 | K[1] & 65535,
- K[3] << 16 | K[3] >>> 16,
- K[1] & 4294901760 | K[2] & 65535,
- K[0] << 16 | K[0] >>> 16,
- K[2] & 4294901760 | K[3] & 65535,
- K[1] << 16 | K[1] >>> 16,
- K[3] & 4294901760 | K[0] & 65535
- ];
- this._b = 0;
- for (var i = 0; i < 4; i++) {
- nextState.call(this);
- }
- for (var i = 0; i < 8; i++) {
- C2[i] ^= X[i + 4 & 7];
- }
- if (iv) {
- var IV = iv.words;
- var IV_0 = IV[0];
- var IV_1 = IV[1];
- var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360;
- var i2 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360;
- var i1 = i0 >>> 16 | i2 & 4294901760;
- var i3 = i2 << 16 | i0 & 65535;
- C2[0] ^= i0;
- C2[1] ^= i1;
- C2[2] ^= i2;
- C2[3] ^= i3;
- C2[4] ^= i0;
- C2[5] ^= i1;
- C2[6] ^= i2;
- C2[7] ^= i3;
- for (var i = 0; i < 4; i++) {
- nextState.call(this);
- }
- }
- },
- _doProcessBlock: function (M, offset) {
- var X = this._X;
- nextState.call(this);
- S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;
- S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;
- S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;
- S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;
- for (var i = 0; i < 4; i++) {
- S[i] = (S[i] << 8 | S[i] >>> 24) & 16711935 | (S[i] << 24 | S[i] >>> 8) & 4278255360;
- M[offset + i] ^= S[i];
- }
- },
- blockSize: 128 / 32,
- ivSize: 64 / 32
- });
- function nextState() {
- var X = this._X;
- var C2 = this._C;
- for (var i = 0; i < 8; i++) {
- C_[i] = C2[i];
- }
- C2[0] = C2[0] + 1295307597 + this._b | 0;
- C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;
- C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;
- C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;
- C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;
- C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;
- C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;
- C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;
- this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;
- for (var i = 0; i < 8; i++) {
- var gx = X[i] + C2[i];
- var ga = gx & 65535;
- var gb = gx >>> 16;
- var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;
- var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0);
- G[i] = gh ^ gl;
- }
- X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;
- X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;
- X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;
- X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;
- X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;
- X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;
- X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;
- X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;
- }
- C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
- })();
- return CryptoJS.RabbitLegacy;
- });
- }
- });
- // index.js
- var require_crypto_js_4_1 = __commonJS({
- "index.js"(exports, module) {
- (function (root, factory, undef) {
- if (typeof exports === "object") {
- module.exports = exports = factory(require_core(), require_x64_core(), require_lib_typedarrays(), require_enc_utf16(), require_enc_base64(), require_enc_base64url(), require_md5(), require_sha1(), require_sha256(), require_sha224(), require_sha512(), require_sha384(), require_sha3(), require_ripemd160(), require_hmac(), require_pbkdf2(), require_evpkdf(), require_cipher_core(), require_mode_cfb(), require_mode_ctr(), require_mode_ctr_gladman(), require_mode_ofb(), require_mode_ecb(), require_pad_ansix923(), require_pad_iso10126(), require_pad_iso97971(), require_pad_zeropadding(), require_pad_nopadding(), require_format_hex(), require_aes(), require_tripledes(), require_rc4(), require_rabbit(), require_rabbit_legacy());
- } else if (typeof define === "function" && define.amd) {
- define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy"], factory);
- } else {
- root.CryptoJS = factory(root.CryptoJS);
- }
- })(exports, function (CryptoJS) {
- return CryptoJS;
- });
- }
- });
- return require_crypto_js_4_1();
- };
|