UNPKG

hsynchronous

Version:

Hybrid synchronous encryption protocol using NIST approved post-quantum algorithms.

1 lines 1.12 kB
import {createHmac}from'crypto';var h=Object.defineProperty;var B=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable;var i=(r,e,f)=>e in r?h(r,e,{enumerable:true,configurable:true,writable:true,value:f}):r[e]=f,g=(r,e)=>{for(var f in e||(e={}))m.call(e,f)&&i(r,f,e[f]);if(B)for(var f of B(e))d.call(e,f)&&i(r,f,e[f]);return r};var x=(r,e,f)=>new Promise((n,o)=>{var s=t=>{try{u(f.next(t));}catch(a){o(a);}},c=t=>{try{u(f.throw(t));}catch(a){o(a);}},u=t=>t.done?n(t.value):Promise.resolve(t.value).then(s,c);u((f=f.apply(r,e)).next());});function l(r,e){let f=createHmac("sha256",r),n=Buffer.concat([e,Buffer.alloc(Math.max(0,256-e.length))]);return f.update(n),f.digest()}function H(r,e,f,n){let o=l(e,r),s=Math.ceil(n/32),c=[],u=Buffer.alloc(0);for(let t=0;t<s;t++){let a=createHmac("sha256",o);a.update(Buffer.concat([u,f,Buffer.from([t+1])])),u=a.digest(),c.push(u);}return Buffer.concat(c).subarray(0,n)}function M(r){for(let e=0;e<r.length;e++)r[e]=0;}function b(r,e=1024){let f=e-r.length%e;return r+"\0".repeat(f)}export{g as a,x as b,H as c,M as d,b as e};