gnablib
Version:
A lean, zero dependency library to provide a useful base for your project.
2 lines • 11.8 kB
JavaScript
/*! Copyright 2022-2025 the gnablib contributors MPL-1.1 */
var t,s,i,h=this&&this.__classPrivateFieldGet||function(t,s,i,h){if("a"===i&&!h)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof s?t!==s||!h:!s.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?h:"a"===i?h.call(t):h?h.value:s.get(t)};import{asLE as f}from"../../endian/platform.js";import{U32 as o}from"../../primitive/number/U32Static.js";const e=64,l=[1732584193,4023233417,2562383102,271733878];export class Md5{constructor(){this.size=16,this.blockSize=e,t.set(this,new Uint32Array(4)),s.set(this,new Uint8Array(e)),i.set(this,new Uint32Array(h(this,s,"f").buffer)),this._ingestBytes=0,this._bPos=0,this.reset()}hash(){const l=h(this,t,"f")[0],R=h(this,t,"f")[1],r=h(this,t,"f")[2],n=h(this,t,"f")[3];for(let t=0;t<e;t+=4)f.i32(h(this,s,"f"),t);h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot(((h(this,t,"f")[2]^h(this,t,"f")[3])&h(this,t,"f")[1]^h(this,t,"f")[3])+h(this,t,"f")[0]+h(this,i,"f")[0]+3614090360,7),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot(((h(this,t,"f")[1]^h(this,t,"f")[2])&h(this,t,"f")[0]^h(this,t,"f")[2])+h(this,t,"f")[3]+h(this,i,"f")[1]+3905402710,12),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot(((h(this,t,"f")[0]^h(this,t,"f")[1])&h(this,t,"f")[3]^h(this,t,"f")[1])+h(this,t,"f")[2]+h(this,i,"f")[2]+606105819,17),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot(((h(this,t,"f")[3]^h(this,t,"f")[0])&h(this,t,"f")[2]^h(this,t,"f")[0])+h(this,t,"f")[1]+h(this,i,"f")[3]+3250441966,22),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot(((h(this,t,"f")[2]^h(this,t,"f")[3])&h(this,t,"f")[1]^h(this,t,"f")[3])+h(this,t,"f")[0]+h(this,i,"f")[4]+4118548399,7),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot(((h(this,t,"f")[1]^h(this,t,"f")[2])&h(this,t,"f")[0]^h(this,t,"f")[2])+h(this,t,"f")[3]+h(this,i,"f")[5]+1200080426,12),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot(((h(this,t,"f")[0]^h(this,t,"f")[1])&h(this,t,"f")[3]^h(this,t,"f")[1])+h(this,t,"f")[2]+h(this,i,"f")[6]+2821735955,17),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot(((h(this,t,"f")[3]^h(this,t,"f")[0])&h(this,t,"f")[2]^h(this,t,"f")[0])+h(this,t,"f")[1]+h(this,i,"f")[7]+4249261313,22),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot(((h(this,t,"f")[2]^h(this,t,"f")[3])&h(this,t,"f")[1]^h(this,t,"f")[3])+h(this,t,"f")[0]+h(this,i,"f")[8]+1770035416,7),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot(((h(this,t,"f")[1]^h(this,t,"f")[2])&h(this,t,"f")[0]^h(this,t,"f")[2])+h(this,t,"f")[3]+h(this,i,"f")[9]+2336552879,12),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot(((h(this,t,"f")[0]^h(this,t,"f")[1])&h(this,t,"f")[3]^h(this,t,"f")[1])+h(this,t,"f")[2]+h(this,i,"f")[10]+4294925233,17),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot(((h(this,t,"f")[3]^h(this,t,"f")[0])&h(this,t,"f")[2]^h(this,t,"f")[0])+h(this,t,"f")[1]+h(this,i,"f")[11]+2304563134,22),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot(((h(this,t,"f")[2]^h(this,t,"f")[3])&h(this,t,"f")[1]^h(this,t,"f")[3])+h(this,t,"f")[0]+h(this,i,"f")[12]+1804603682,7),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot(((h(this,t,"f")[1]^h(this,t,"f")[2])&h(this,t,"f")[0]^h(this,t,"f")[2])+h(this,t,"f")[3]+h(this,i,"f")[13]+4254626195,12),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot(((h(this,t,"f")[0]^h(this,t,"f")[1])&h(this,t,"f")[3]^h(this,t,"f")[1])+h(this,t,"f")[2]+h(this,i,"f")[14]+2792965006,17),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot(((h(this,t,"f")[3]^h(this,t,"f")[0])&h(this,t,"f")[2]^h(this,t,"f")[0])+h(this,t,"f")[1]+h(this,i,"f")[15]+1236535329,22);h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot(((h(this,t,"f")[1]^h(this,t,"f")[2])&h(this,t,"f")[3]^h(this,t,"f")[2])+h(this,t,"f")[0]+h(this,i,"f")[1]+4129170786,5),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot(((h(this,t,"f")[0]^h(this,t,"f")[1])&h(this,t,"f")[2]^h(this,t,"f")[1])+h(this,t,"f")[3]+h(this,i,"f")[6]+3225465664,9),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot(((h(this,t,"f")[3]^h(this,t,"f")[0])&h(this,t,"f")[1]^h(this,t,"f")[0])+h(this,t,"f")[2]+h(this,i,"f")[11]+643717713,14),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot(((h(this,t,"f")[2]^h(this,t,"f")[3])&h(this,t,"f")[0]^h(this,t,"f")[3])+h(this,t,"f")[1]+h(this,i,"f")[0]+3921069994,20),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot(((h(this,t,"f")[1]^h(this,t,"f")[2])&h(this,t,"f")[3]^h(this,t,"f")[2])+h(this,t,"f")[0]+h(this,i,"f")[5]+3593408605,5),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot(((h(this,t,"f")[0]^h(this,t,"f")[1])&h(this,t,"f")[2]^h(this,t,"f")[1])+h(this,t,"f")[3]+h(this,i,"f")[10]+38016083,9),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot(((h(this,t,"f")[3]^h(this,t,"f")[0])&h(this,t,"f")[1]^h(this,t,"f")[0])+h(this,t,"f")[2]+h(this,i,"f")[15]+3634488961,14),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot(((h(this,t,"f")[2]^h(this,t,"f")[3])&h(this,t,"f")[0]^h(this,t,"f")[3])+h(this,t,"f")[1]+h(this,i,"f")[4]+3889429448,20),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot(((h(this,t,"f")[1]^h(this,t,"f")[2])&h(this,t,"f")[3]^h(this,t,"f")[2])+h(this,t,"f")[0]+h(this,i,"f")[9]+568446438,5),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot(((h(this,t,"f")[0]^h(this,t,"f")[1])&h(this,t,"f")[2]^h(this,t,"f")[1])+h(this,t,"f")[3]+h(this,i,"f")[14]+3275163606,9),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot(((h(this,t,"f")[3]^h(this,t,"f")[0])&h(this,t,"f")[1]^h(this,t,"f")[0])+h(this,t,"f")[2]+h(this,i,"f")[3]+4107603335,14),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot(((h(this,t,"f")[2]^h(this,t,"f")[3])&h(this,t,"f")[0]^h(this,t,"f")[3])+h(this,t,"f")[1]+h(this,i,"f")[8]+1163531501,20),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot(((h(this,t,"f")[1]^h(this,t,"f")[2])&h(this,t,"f")[3]^h(this,t,"f")[2])+h(this,t,"f")[0]+h(this,i,"f")[13]+2850285829,5),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot(((h(this,t,"f")[0]^h(this,t,"f")[1])&h(this,t,"f")[2]^h(this,t,"f")[1])+h(this,t,"f")[3]+h(this,i,"f")[2]+4243563512,9),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot(((h(this,t,"f")[3]^h(this,t,"f")[0])&h(this,t,"f")[1]^h(this,t,"f")[0])+h(this,t,"f")[2]+h(this,i,"f")[7]+1735328473,14),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot(((h(this,t,"f")[2]^h(this,t,"f")[3])&h(this,t,"f")[0]^h(this,t,"f")[3])+h(this,t,"f")[1]+h(this,i,"f")[12]+2368359562,20);h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot((h(this,t,"f")[1]^h(this,t,"f")[2]^h(this,t,"f")[3])+h(this,t,"f")[0]+h(this,i,"f")[5]+4294588738,4),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot((h(this,t,"f")[0]^h(this,t,"f")[1]^h(this,t,"f")[2])+h(this,t,"f")[3]+h(this,i,"f")[8]+2272392833,11),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot((h(this,t,"f")[3]^h(this,t,"f")[0]^h(this,t,"f")[1])+h(this,t,"f")[2]+h(this,i,"f")[11]+1839030562,16),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot((h(this,t,"f")[2]^h(this,t,"f")[3]^h(this,t,"f")[0])+h(this,t,"f")[1]+h(this,i,"f")[14]+4259657740,23),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot((h(this,t,"f")[1]^h(this,t,"f")[2]^h(this,t,"f")[3])+h(this,t,"f")[0]+h(this,i,"f")[1]+2763975236,4),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot((h(this,t,"f")[0]^h(this,t,"f")[1]^h(this,t,"f")[2])+h(this,t,"f")[3]+h(this,i,"f")[4]+1272893353,11),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot((h(this,t,"f")[3]^h(this,t,"f")[0]^h(this,t,"f")[1])+h(this,t,"f")[2]+h(this,i,"f")[7]+4139469664,16),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot((h(this,t,"f")[2]^h(this,t,"f")[3]^h(this,t,"f")[0])+h(this,t,"f")[1]+h(this,i,"f")[10]+3200236656,23),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot((h(this,t,"f")[1]^h(this,t,"f")[2]^h(this,t,"f")[3])+h(this,t,"f")[0]+h(this,i,"f")[13]+681279174,4),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot((h(this,t,"f")[0]^h(this,t,"f")[1]^h(this,t,"f")[2])+h(this,t,"f")[3]+h(this,i,"f")[0]+3936430074,11),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot((h(this,t,"f")[3]^h(this,t,"f")[0]^h(this,t,"f")[1])+h(this,t,"f")[2]+h(this,i,"f")[3]+3572445317,16),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot((h(this,t,"f")[2]^h(this,t,"f")[3]^h(this,t,"f")[0])+h(this,t,"f")[1]+h(this,i,"f")[6]+76029189,23),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot((h(this,t,"f")[1]^h(this,t,"f")[2]^h(this,t,"f")[3])+h(this,t,"f")[0]+h(this,i,"f")[9]+3654602809,4),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot((h(this,t,"f")[0]^h(this,t,"f")[1]^h(this,t,"f")[2])+h(this,t,"f")[3]+h(this,i,"f")[12]+3873151461,11),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot((h(this,t,"f")[3]^h(this,t,"f")[0]^h(this,t,"f")[1])+h(this,t,"f")[2]+h(this,i,"f")[15]+530742520,16),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot((h(this,t,"f")[2]^h(this,t,"f")[3]^h(this,t,"f")[0])+h(this,t,"f")[1]+h(this,i,"f")[2]+3299628645,23);h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot((h(this,t,"f")[2]^(h(this,t,"f")[1]|~h(this,t,"f")[3]))+h(this,t,"f")[0]+h(this,i,"f")[0]+4096336452,6),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot((h(this,t,"f")[1]^(h(this,t,"f")[0]|~h(this,t,"f")[2]))+h(this,t,"f")[3]+h(this,i,"f")[7]+1126891415,10),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot((h(this,t,"f")[0]^(h(this,t,"f")[3]|~h(this,t,"f")[1]))+h(this,t,"f")[2]+h(this,i,"f")[14]+2878612391,15),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot((h(this,t,"f")[3]^(h(this,t,"f")[2]|~h(this,t,"f")[0]))+h(this,t,"f")[1]+h(this,i,"f")[5]+4237533241,21),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot((h(this,t,"f")[2]^(h(this,t,"f")[1]|~h(this,t,"f")[3]))+h(this,t,"f")[0]+h(this,i,"f")[12]+1700485571,6),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot((h(this,t,"f")[1]^(h(this,t,"f")[0]|~h(this,t,"f")[2]))+h(this,t,"f")[3]+h(this,i,"f")[3]+2399980690,10),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot((h(this,t,"f")[0]^(h(this,t,"f")[3]|~h(this,t,"f")[1]))+h(this,t,"f")[2]+h(this,i,"f")[10]+4293915773,15),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot((h(this,t,"f")[3]^(h(this,t,"f")[2]|~h(this,t,"f")[0]))+h(this,t,"f")[1]+h(this,i,"f")[1]+2240044497,21),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot((h(this,t,"f")[2]^(h(this,t,"f")[1]|~h(this,t,"f")[3]))+h(this,t,"f")[0]+h(this,i,"f")[8]+1873313359,6),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot((h(this,t,"f")[1]^(h(this,t,"f")[0]|~h(this,t,"f")[2]))+h(this,t,"f")[3]+h(this,i,"f")[15]+4264355552,10),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot((h(this,t,"f")[0]^(h(this,t,"f")[3]|~h(this,t,"f")[1]))+h(this,t,"f")[2]+h(this,i,"f")[6]+2734768916,15),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot((h(this,t,"f")[3]^(h(this,t,"f")[2]|~h(this,t,"f")[0]))+h(this,t,"f")[1]+h(this,i,"f")[13]+1309151649,21),h(this,t,"f")[0]=h(this,t,"f")[1]+o.lRot((h(this,t,"f")[2]^(h(this,t,"f")[1]|~h(this,t,"f")[3]))+h(this,t,"f")[0]+h(this,i,"f")[4]+4149444226,6),h(this,t,"f")[3]=h(this,t,"f")[0]+o.lRot((h(this,t,"f")[1]^(h(this,t,"f")[0]|~h(this,t,"f")[2]))+h(this,t,"f")[3]+h(this,i,"f")[11]+3174756917,10),h(this,t,"f")[2]=h(this,t,"f")[3]+o.lRot((h(this,t,"f")[0]^(h(this,t,"f")[3]|~h(this,t,"f")[1]))+h(this,t,"f")[2]+h(this,i,"f")[2]+718787259,15),h(this,t,"f")[1]=h(this,t,"f")[2]+o.lRot((h(this,t,"f")[3]^(h(this,t,"f")[2]|~h(this,t,"f")[0]))+h(this,t,"f")[1]+h(this,i,"f")[9]+3951481745,21),h(this,t,"f")[0]+=l,h(this,t,"f")[1]+=R,h(this,t,"f")[2]+=r,h(this,t,"f")[3]+=n,this._bPos=0}write(t){this._ingestBytes+=t.length;let i=t.length,f=0,o=e-this._bPos;for(;i>0;){if(o>i)return h(this,s,"f").set(t.subarray(f),this._bPos),void(this._bPos+=i);h(this,s,"f").set(t.subarray(f,f+o),this._bPos),this.hash(),f+=o,i-=o,o=e}}sum(){return this.clone().sumIn()}sumIn(){h(this,s,"f")[this._bPos]=128,this._bPos++;this._bPos>56&&(h(this,s,"f").fill(0,this._bPos),this.hash()),h(this,s,"f").fill(0,this._bPos);h(this,i,"f")[14]=this._ingestBytes<<3,h(this,i,"f")[15]=this._ingestBytes/536870912,f.i32(h(this,s,"f"),56),f.i32(h(this,s,"f"),60),this.hash();const o=new Uint8Array(h(this,t,"f").buffer,h(this,t,"f").byteOffset);for(let t=0;t<16;t++)f.i32(o,4*t);return o.slice(0,this.size)}reset(){h(this,t,"f")[0]=l[0],h(this,t,"f")[1]=l[1],h(this,t,"f")[2]=l[2],h(this,t,"f")[3]=l[3],this._ingestBytes=0,this._bPos=0}newEmpty(){return new Md5}clone(){const i=new Md5;return h(i,t,"f").set(h(this,t,"f")),h(i,s,"f").set(h(this,s,"f")),i._ingestBytes=this._ingestBytes,i._bPos=this._bPos,i}}t=new WeakMap,s=new WeakMap,i=new WeakMap;