UNPKG

@privy-io/cross-app-connect

Version:

Privy cross app wallet connectors for wagmi and RainbowKit

3 lines (2 loc) 1.35 kB
"use strict";var e=require("@noble/curves/secp256k1"),t=require("@scure/base"),r=require("buffer"),n=require("fflate"),c=require("@privy-io/encoding");exports.decryptResult=async function({encryptedResult:e,iv:t,sharedSecret:i}){let s=c.encoding.base64.toBytes(i),a=c.encoding.base64.toBytes(t),o=await crypto.subtle.importKey("raw",s,{name:"AES-GCM"},!0,["decrypt"]),y=c.encoding.base64.toBytes(e),u=await crypto.subtle.decrypt({name:"AES-GCM",iv:a},o,y),p=n.unzlibSync(r.Buffer.from(u));return c.encoding.utf8.fromBytes(p)},exports.encryptRequest=async function(e,t){let r=JSON.stringify(e),i=n.zlibSync(c.encoding.utf8.toBytes(r)),s=c.encoding.base64.toBytes(t),a=await crypto.subtle.importKey("raw",s,{name:"AES-GCM"},!0,["encrypt"]),o=crypto.getRandomValues(new Uint8Array(12)),y=await crypto.subtle.encrypt({name:"AES-GCM",iv:o},a,new Uint8Array(i));return{iv:c.encoding.base64.fromBytes(o),encryptedRequest:c.encoding.base64.fromBytes(new Uint8Array(y))}},exports.generateKeyPair=function(){let r=e.secp256k1.utils.randomPrivateKey(),n=e.secp256k1.getPublicKey(r);return{privateKey:t.base64.encode(r),publicKey:t.base64.encode(n)}},exports.recoverSharedSecret=function({privateKey:r,publicKey:n}){let c=e.secp256k1.getSharedSecret(t.base64.decode(r),t.base64.decode(n)).slice(1);return t.base64.encode(c)}; //# sourceMappingURL=crypto.js.map