Socket
Socket
Sign inDemoInstall

@transmute/did-key-cipher

Package Overview
Dependencies
41
Maintainers
3
Versions
28
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.1-unstable.23 to 0.2.1-unstable.24

8

CHANGELOG.md

@@ -6,2 +6,10 @@ # Change Log

## 0.2.1-unstable.24 (2020-11-08)
**Note:** Version bump only for package @transmute/did-key-cipher
## 0.2.1-unstable.23 (2020-10-14)

@@ -8,0 +16,0 @@

2

dist/Cipher/crypto.d.ts

@@ -1,3 +0,3 @@

import { Crypto } from 'node-webcrypto-ossl';
import { Crypto } from '@peculiar/webcrypto';
declare let crypto: Crypto;
export default crypto;

@@ -7,3 +7,3 @@ 'use strict';

var nodeWebcryptoOssl = require('node-webcrypto-ossl');
var webcrypto = require('@peculiar/webcrypto');
var base64url = _interopDefault(require('base64url'));

@@ -21,3 +21,3 @@ var aesKw = require('@stablelib/aes-kw');

if (isNodejs()) {
crypto = /*#__PURE__*/new nodeWebcryptoOssl.Crypto();
crypto = /*#__PURE__*/new webcrypto.Crypto();
} else {

@@ -24,0 +24,0 @@ crypto = window.crypto;

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("node-webcrypto-ossl"),t=(e=require("base64url"))&&"object"==typeof e&&"default"in e?e.default:e,n=require("@stablelib/aes-kw"),i=require("web-streams-polyfill/ponyfill"),o=require("@stablelib/xchacha20poly1305"),a="object"==typeof process&&"object"==typeof process.versions&&void 0!==process.versions.node?new r.Crypto:window.crypto,s=new Uint8Array(4+"ECDH-ES+A256KW".length);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,"ECDH-ES+A256KW".length),s.set(Buffer.from("ECDH-ES+A256KW"),4);var c={name:"SHA-256"},f=function(){function e(e){if(32!==e.length)throw new Error("key must be 32 bytes");this.aeskw=new n.AESKW(e),this.algorithm={name:"A256KW"}}var r=e.prototype;return r.wrapKey=function(e){var r=this.aeskw.wrapKey(e.unwrappedKey);return t.encode(Buffer.from(r))},r.unwrapKey=function(e){var r=t.toBuffer(e.wrappedKey);try{return this.aeskw.unwrapKey(r)}catch(e){return console.error(e),null}},e}();function u(){return(u=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function y(e){if("string"==typeof e)return new Uint8Array(Buffer.from(e));if(!(e instanceof Uint8Array))throw new TypeError('"data" be a string or Uint8Array.');return e}f.createKek=function(e){var r=e.keyData;try{return Promise.resolve(new f(r))}catch(e){return Promise.reject(e)}};var h,p={__proto__:null,decrypt:function(e){var r=e.ciphertext,t=e.iv,n=e.tag,i=e.additionalData,a=e.cek;try{if(!(t instanceof Uint8Array))throw new Error('Invalid or missing "iv".');if(!(r instanceof Uint8Array))throw new Error('Invalid or missing "ciphertext".');if(!(n instanceof Uint8Array))throw new Error('Invalid or missing "tag".');if(!(a instanceof Uint8Array))throw new TypeError('"cek" must be a Uint8Array.');var s=new o.XChaCha20Poly1305(a),c=new Uint8Array(r.length+s.tagLength);return c.set(r),c.set(n,r.length),Promise.resolve(s.open(t,c,i))}catch(e){return Promise.reject(e)}},encrypt:function(e){var r=e.data,t=e.additionalData,n=e.cek;try{if(!(r instanceof Uint8Array))throw new TypeError('"data" must be a Uint8Array.');if(!(n instanceof Uint8Array))throw new TypeError('"cek" must be a Uint8Array.');var i=new o.XChaCha20Poly1305(n),s=a.getRandomValues(new Uint8Array(i.nonceLength)),c=i.seal(s,r,t),f=c.subarray(0,c.length-i.tagLength),u=c.subarray(c.length-i.tagLength);return Promise.resolve({ciphertext:f,iv:s,tag:u})}catch(e){return Promise.reject(e)}},generateKey:function(){try{return Promise.resolve(a.getRandomValues(new Uint8Array(o.KEY_LENGTH)))}catch(e){return Promise.reject(e)}},JWE_ENC:"XC20P"},l=((h={}).XC20P=p,h),d=function(){function e(e){var r=void 0===e?{}:e,t=r.keyAgreementKey,n=r.KeyPairClass;if(!t)throw new TypeError('"keyAgreementKey" is a required parameter.');this.KeyPairClass=n,this.keyAgreementKey=t}var r=e.prototype;return r.transform=function(e,r){try{if(!e||"object"!=typeof e)throw new TypeError('"chunk" must be an object.');return Promise.resolve(this.decrypt(e.jwe)).then((function(e){if(null===e){var t=new Error("Invalid decryption key.");throw t.name="DataError",t}r.enqueue(e)}))}catch(e){return Promise.reject(e)}},r.decrypt=function(e){try{var r,n;if(!e||"object"!=typeof e)throw new TypeError('"jwe" must be an object.');if("string"!=typeof e.protected)throw new TypeError('"jwe.protected" is missing or not a string.');if("string"!=typeof e.iv)throw new Error('Invalid or missing "iv".');if("string"!=typeof e.ciphertext)throw new Error('Invalid or missing "ciphertext".');if("string"!=typeof e.tag)throw new Error('Invalid or missing "tag".');try{n=y(e.protected),r=JSON.parse(t.toBuffer(e.protected).toString())}catch(e){throw new Error('Invalid JWE "protected" header.')}if(!r.enc||"string"!=typeof r.enc)throw new Error('Invalid JWE "enc" header.');var i=l[r.enc];if(!i)throw new Error('Unsupported encryption algorithm "${header.enc}".');if(!Array.isArray(e.recipients))throw new TypeError('"jwe.recipients" must be an array.');var o=this.keyAgreementKey,a=(c=o,e.recipients.find((function(e){return e.header&&e.header.kid===c.id||e.header.kid.split("#").pop()===c.id.split("#").pop()})));if(!a)throw console.log(e.recipients,o),new Error("No matching recipient found for key agreement key.");var s=a.encrypted_key;if("string"!=typeof s)throw new Error('Invalid or missing "encrypted_key".');return Promise.resolve(this.KeyPairClass.kekFromEphemeralPeer({keyAgreementKey:o,epk:a.header.epk})).then((function(r){return Promise.resolve(r.kek.unwrapKey({wrappedKey:s})).then((function(r){if(!r)return null;var o=e.iv,a=e.tag;return i.decrypt({ciphertext:t.toBuffer(e.ciphertext),iv:t.toBuffer(o),tag:t.toBuffer(a),additionalData:n,cek:r})}))}))}catch(e){return Promise.reject(e)}var c},e}();const m=function(){function e(){}return e.prototype.then=function(r,t){const n=new e,i=this.s;if(i){const e=1&i?r:t;if(e){try{v(n,1,e(this.v))}catch(e){v(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?v(n,1,r?r(i):i):t?v(n,1,t(i)):v(n,2,i)}catch(e){v(n,2,e)}},n},e}();function v(e,r,t){if(!e.s){if(t instanceof m){if(!t.s)return void(t.o=v.bind(null,e,r));1&r&&(r=t.s),t=t.v}if(t&&t.then)return void t.then(v.bind(null,e,r),v.bind(null,e,2));e.s=r,e.v=t;const n=e.o;n&&n(e)}}function w(e){return e instanceof m&&1&e.s}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var g=function(){function e(e){var r=void 0===e?{}:e,t=r.encodedProtectedHeader,n=r.cipher,i=r.additionalData,o=r.cek,a=r.chunkSize,s=void 0===a?1048576:a;this.recipients=r.recipients,this.encodedProtectedHeader=t,this.cipher=n,this.additionalData=i,this.cek=o,this.chunkSize=s,this.offset=0,this.totalOffset=0,this.index=0}var r=e.prototype;return r.start=function(){this.buffer=new Uint8Array(this.chunkSize)},r.transform=function(e,r){try{var t=this,n=t.buffer;if(!(e instanceof Uint8Array))throw new TypeError('"chunk" must be an object.');return Promise.resolve(function(e,r,t){for(var n;;){var i=e();if(w(i)&&(i=i.v),!i)return o;if(i.then){n=0;break}var o=t();if(o&&o.then){if(!w(o)){n=1;break}o=o.s}}var a=new m,s=v.bind(null,a,2);return(0===n?i.then(f):1===n?o.then(c):(void 0).then((function(){(i=e())?i.then?i.then(f).then(void 0,s):f(i):v(a,1,o)}))).then(void 0,s),a;function c(r){o=r;do{if(!(i=e())||w(i)&&!i.v)return void v(a,1,o);if(i.then)return void i.then(f).then(void 0,s);w(o=t())&&(o=o.v)}while(!o||!o.then);o.then(c).then(void 0,s)}function f(e){e?(o=t())&&o.then?o.then(c).then(void 0,s):c(o):v(a,1,o)}}((function(){return!!e}),0,(function(){var i=n.length-t.offset;if(e.length<=i)n.set(e,t.offset),t.offset+=e.byteLength,t.totalOffset+=e.byteLength,e=null;else{var o=new Uint8Array(e.buffer,e.byteOffset,i);e=new Uint8Array(e.buffer,e.byteOffset+i,e.length-i),n.set(o,t.offset),t.offset+=i,t.totalOffset+=i}var a=function(){if(e)return Promise.resolve(t.flush(r)).then((function(){}))}();if(a&&a.then)return a.then((function(){}))})))}catch(e){return Promise.reject(e)}},r.flush=function(e){try{var r=this;if(0===r.offset)return Promise.resolve();var t=r.buffer,n=new Uint8Array(t.buffer,t.byteOffset,r.offset);return Promise.resolve(r.encrypt(n)).then((function(t){r.offset=0,e.enqueue({index:r.index++,offset:r.totalOffset,jwe:t})}))}catch(e){return Promise.reject(e)}},r.encrypt=function(e){try{var r=this;return Promise.resolve(r.cipher.encrypt({data:e,additionalData:r.additionalData,cek:r.cek})).then((function(e){var n=e.ciphertext,i=e.tag;return{protected:r.encodedProtectedHeader,recipients:r.recipients,iv:t.encode(e.iv),ciphertext:t.encode(n),tag:t.encode(i)}}))}catch(e){return Promise.reject(e)}},e}();exports.Cipher=function(){function e(e){this.KeyPairClass=e,this.version="recommended",this.cipher=p}var r=e.prototype;return r.createEncryptStream=function(e){var r=e.recipients,t=e.keyResolver,n=e.chunkSize;try{return Promise.resolve(this.createEncryptTransformer({recipients:r,keyResolver:t,chunkSize:n})).then((function(e){return new i.TransformStream(e)}))}catch(e){return Promise.reject(e)}},r.createDecryptStream=function(e){var r=e.keyAgreementKey;try{return Promise.resolve(this.createDecryptTransformer({keyAgreementKey:r})).then((function(e){return new i.TransformStream(e)}))}catch(e){return Promise.reject(e)}},r.encrypt=function(e){var r=e.data,t=e.recipients,n=e.keyResolver;try{if(!(r instanceof Uint8Array)&&"string"!=typeof r)throw new TypeError('"data" must be a Uint8Array or a string.');return r&&(r=y(r)),Promise.resolve(this.createEncryptTransformer({recipients:t,keyResolver:n})).then((function(e){return e.encrypt(r)}))}catch(e){return Promise.reject(e)}},r.encryptObject=function(e){var r=e.obj,t=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r.indexOf(t=o[n])>=0||(i[t]=e[t]);return i}(e,["obj"]);try{if("object"!=typeof r)throw new TypeError('"obj" must be an object.');return Promise.resolve(this.encrypt(u({data:JSON.stringify(r)},t)))}catch(e){return Promise.reject(e)}},r.decrypt=function(e){var r=e.jwe,t=e.keyAgreementKey;try{return Promise.resolve(this.createDecryptTransformer({keyAgreementKey:t})).then((function(e){return e.decrypt(r)}))}catch(e){return Promise.reject(e)}},r.decryptObject=function(e){var r=e.jwe,t=e.keyAgreementKey;try{return Promise.resolve(this.decrypt({jwe:r,keyAgreementKey:t})).then((function(e){return e?JSON.parse(Buffer.from(e).toString()):null}))}catch(e){return Promise.reject(e)}},r.createEncryptTransformer=function(e){var r=e.recipients,n=e.keyResolver,i=e.chunkSize;try{var o=this;if(!(Array.isArray(r)&&r.length>0))throw new TypeError('"recipients" must be a non-empty array.');var a=o.KeyPairClass.JWE_ALG;if(!r.every((function(e){return e.header&&e.header.alg===a})))throw new Error('All recipients must use the algorithm "'+a+'".');var s=o.cipher;return Promise.resolve(s.generateKey()).then((function(e){return Promise.resolve(Promise.all(r.map((function(e){return n({id:e.header.kid})})))).then((function(n){var a=void 0;return"JsonWebKey2020"===n[0].type&&(a={kty:"EC",crvOrSize:n[0].publicKeyJwk.crv}),Promise.resolve(o.KeyPairClass.generateEphemeralKeyPair(a)).then((function(a){return Promise.resolve(Promise.all(n.map((function(e){return o.KeyPairClass.kekFromStaticPeer({ephemeralKeyPair:a,staticPublicKey:e})})))).then((function(n){return Promise.resolve(Promise.all(r.map((function(t,i){try{var o=n[i],a=o.kek,s=o.epk,c=o.apu,f=o.apv;return r[i]=t={header:u({},t.header)},t.header.epk=s,t.header.apu=c,t.header.apv=f,Promise.resolve(a.wrapKey({unwrappedKey:e})).then((function(e){t.encrypted_key=e}))}catch(e){return Promise.reject(e)}})))).then((function(){var n=JSON.stringify({enc:s.JWE_ENC}),o=t.encode(Buffer.from(y(n))),a=y(o);return new g({recipients:r,encodedProtectedHeader:o,cipher:s,additionalData:a,cek:e,chunkSize:i})}))}))}))}))}))}catch(e){return Promise.reject(e)}},r.createDecryptTransformer=function(e){var r=e.keyAgreementKey;try{return Promise.resolve(new d({KeyPairClass:this.KeyPairClass,keyAgreementKey:r}))}catch(e){return Promise.reject(e)}},e}(),exports.KeyEncryptionKey=f,exports.deriveKey=function(e){var r=e.secret,t=e.producerInfo,n=e.consumerInfo;try{if(!(r instanceof Uint8Array&&r.length>0))throw new TypeError('"secret" must be a non-empty Uint8Array.');if(!(t instanceof Uint8Array&&t.length>0))throw new TypeError('"producerInfo" must be a non-empty Uint8Array.');if(!(n instanceof Uint8Array&&n.length>0))throw new TypeError('"consumerInfo" must be a non-empty Uint8Array.');var i=new Uint8Array(4+r.length+s.length+4+t.length+4+n.length+4),o=0,f=new DataView(i.buffer,i.byteOffset,i.byteLength);return f.setUint32(o,1),i.set(r,o+=4),i.set(s,o+=r.length),f.setUint32(o+=s.length,t.length),i.set(t,o+=4),f.setUint32(o+=t.length,n.length),i.set(n,o+=4),f.setUint32(o+=n.length,256),Promise.resolve(a.subtle.digest(c,i)).then((function(e){return new Uint8Array(e)}))}catch(e){return Promise.reject(e)}},exports.getEpkGenerator=function(e,r){return function(){try{return Promise.resolve(e.generate(r)).then((function(e){return Promise.resolve(e.toJsonWebKeyPair(!0)).then((function(e){return{keypair:e,epk:e.publicKeyJwk}}))}))}catch(e){return Promise.reject(e)}}};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("@peculiar/webcrypto"),t=(e=require("base64url"))&&"object"==typeof e&&"default"in e?e.default:e,n=require("@stablelib/aes-kw"),i=require("web-streams-polyfill/ponyfill"),o=require("@stablelib/xchacha20poly1305"),a="object"==typeof process&&"object"==typeof process.versions&&void 0!==process.versions.node?new r.Crypto:window.crypto,s=new Uint8Array(4+"ECDH-ES+A256KW".length);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,"ECDH-ES+A256KW".length),s.set(Buffer.from("ECDH-ES+A256KW"),4);var c={name:"SHA-256"},f=function(){function e(e){if(32!==e.length)throw new Error("key must be 32 bytes");this.aeskw=new n.AESKW(e),this.algorithm={name:"A256KW"}}var r=e.prototype;return r.wrapKey=function(e){var r=this.aeskw.wrapKey(e.unwrappedKey);return t.encode(Buffer.from(r))},r.unwrapKey=function(e){var r=t.toBuffer(e.wrappedKey);try{return this.aeskw.unwrapKey(r)}catch(e){return console.error(e),null}},e}();function u(){return(u=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function y(e){if("string"==typeof e)return new Uint8Array(Buffer.from(e));if(!(e instanceof Uint8Array))throw new TypeError('"data" be a string or Uint8Array.');return e}f.createKek=function(e){var r=e.keyData;try{return Promise.resolve(new f(r))}catch(e){return Promise.reject(e)}};var h,p={__proto__:null,decrypt:function(e){var r=e.ciphertext,t=e.iv,n=e.tag,i=e.additionalData,a=e.cek;try{if(!(t instanceof Uint8Array))throw new Error('Invalid or missing "iv".');if(!(r instanceof Uint8Array))throw new Error('Invalid or missing "ciphertext".');if(!(n instanceof Uint8Array))throw new Error('Invalid or missing "tag".');if(!(a instanceof Uint8Array))throw new TypeError('"cek" must be a Uint8Array.');var s=new o.XChaCha20Poly1305(a),c=new Uint8Array(r.length+s.tagLength);return c.set(r),c.set(n,r.length),Promise.resolve(s.open(t,c,i))}catch(e){return Promise.reject(e)}},encrypt:function(e){var r=e.data,t=e.additionalData,n=e.cek;try{if(!(r instanceof Uint8Array))throw new TypeError('"data" must be a Uint8Array.');if(!(n instanceof Uint8Array))throw new TypeError('"cek" must be a Uint8Array.');var i=new o.XChaCha20Poly1305(n),s=a.getRandomValues(new Uint8Array(i.nonceLength)),c=i.seal(s,r,t),f=c.subarray(0,c.length-i.tagLength),u=c.subarray(c.length-i.tagLength);return Promise.resolve({ciphertext:f,iv:s,tag:u})}catch(e){return Promise.reject(e)}},generateKey:function(){try{return Promise.resolve(a.getRandomValues(new Uint8Array(o.KEY_LENGTH)))}catch(e){return Promise.reject(e)}},JWE_ENC:"XC20P"},l=((h={}).XC20P=p,h),m=function(){function e(e){var r=void 0===e?{}:e,t=r.keyAgreementKey,n=r.KeyPairClass;if(!t)throw new TypeError('"keyAgreementKey" is a required parameter.');this.KeyPairClass=n,this.keyAgreementKey=t}var r=e.prototype;return r.transform=function(e,r){try{if(!e||"object"!=typeof e)throw new TypeError('"chunk" must be an object.');return Promise.resolve(this.decrypt(e.jwe)).then((function(e){if(null===e){var t=new Error("Invalid decryption key.");throw t.name="DataError",t}r.enqueue(e)}))}catch(e){return Promise.reject(e)}},r.decrypt=function(e){try{var r,n;if(!e||"object"!=typeof e)throw new TypeError('"jwe" must be an object.');if("string"!=typeof e.protected)throw new TypeError('"jwe.protected" is missing or not a string.');if("string"!=typeof e.iv)throw new Error('Invalid or missing "iv".');if("string"!=typeof e.ciphertext)throw new Error('Invalid or missing "ciphertext".');if("string"!=typeof e.tag)throw new Error('Invalid or missing "tag".');try{n=y(e.protected),r=JSON.parse(t.toBuffer(e.protected).toString())}catch(e){throw new Error('Invalid JWE "protected" header.')}if(!r.enc||"string"!=typeof r.enc)throw new Error('Invalid JWE "enc" header.');var i=l[r.enc];if(!i)throw new Error('Unsupported encryption algorithm "${header.enc}".');if(!Array.isArray(e.recipients))throw new TypeError('"jwe.recipients" must be an array.');var o=this.keyAgreementKey,a=(c=o,e.recipients.find((function(e){return e.header&&e.header.kid===c.id||e.header.kid.split("#").pop()===c.id.split("#").pop()})));if(!a)throw console.log(e.recipients,o),new Error("No matching recipient found for key agreement key.");var s=a.encrypted_key;if("string"!=typeof s)throw new Error('Invalid or missing "encrypted_key".');return Promise.resolve(this.KeyPairClass.kekFromEphemeralPeer({keyAgreementKey:o,epk:a.header.epk})).then((function(r){return Promise.resolve(r.kek.unwrapKey({wrappedKey:s})).then((function(r){if(!r)return null;var o=e.iv,a=e.tag;return i.decrypt({ciphertext:t.toBuffer(e.ciphertext),iv:t.toBuffer(o),tag:t.toBuffer(a),additionalData:n,cek:r})}))}))}catch(e){return Promise.reject(e)}var c},e}();const d=function(){function e(){}return e.prototype.then=function(r,t){const n=new e,i=this.s;if(i){const e=1&i?r:t;if(e){try{v(n,1,e(this.v))}catch(e){v(n,2,e)}return n}return this}return this.o=function(e){try{const i=e.v;1&e.s?v(n,1,r?r(i):i):t?v(n,1,t(i)):v(n,2,i)}catch(e){v(n,2,e)}},n},e}();function v(e,r,t){if(!e.s){if(t instanceof d){if(!t.s)return void(t.o=v.bind(null,e,r));1&r&&(r=t.s),t=t.v}if(t&&t.then)return void t.then(v.bind(null,e,r),v.bind(null,e,2));e.s=r,e.v=t;const n=e.o;n&&n(e)}}function w(e){return e instanceof d&&1&e.s}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var g=function(){function e(e){var r=void 0===e?{}:e,t=r.encodedProtectedHeader,n=r.cipher,i=r.additionalData,o=r.cek,a=r.chunkSize,s=void 0===a?1048576:a;this.recipients=r.recipients,this.encodedProtectedHeader=t,this.cipher=n,this.additionalData=i,this.cek=o,this.chunkSize=s,this.offset=0,this.totalOffset=0,this.index=0}var r=e.prototype;return r.start=function(){this.buffer=new Uint8Array(this.chunkSize)},r.transform=function(e,r){try{var t=this,n=t.buffer;if(!(e instanceof Uint8Array))throw new TypeError('"chunk" must be an object.');return Promise.resolve(function(e,r,t){for(var n;;){var i=e();if(w(i)&&(i=i.v),!i)return o;if(i.then){n=0;break}var o=t();if(o&&o.then){if(!w(o)){n=1;break}o=o.s}}var a=new d,s=v.bind(null,a,2);return(0===n?i.then(f):1===n?o.then(c):(void 0).then((function(){(i=e())?i.then?i.then(f).then(void 0,s):f(i):v(a,1,o)}))).then(void 0,s),a;function c(r){o=r;do{if(!(i=e())||w(i)&&!i.v)return void v(a,1,o);if(i.then)return void i.then(f).then(void 0,s);w(o=t())&&(o=o.v)}while(!o||!o.then);o.then(c).then(void 0,s)}function f(e){e?(o=t())&&o.then?o.then(c).then(void 0,s):c(o):v(a,1,o)}}((function(){return!!e}),0,(function(){var i=n.length-t.offset;if(e.length<=i)n.set(e,t.offset),t.offset+=e.byteLength,t.totalOffset+=e.byteLength,e=null;else{var o=new Uint8Array(e.buffer,e.byteOffset,i);e=new Uint8Array(e.buffer,e.byteOffset+i,e.length-i),n.set(o,t.offset),t.offset+=i,t.totalOffset+=i}var a=function(){if(e)return Promise.resolve(t.flush(r)).then((function(){}))}();if(a&&a.then)return a.then((function(){}))})))}catch(e){return Promise.reject(e)}},r.flush=function(e){try{var r=this;if(0===r.offset)return Promise.resolve();var t=r.buffer,n=new Uint8Array(t.buffer,t.byteOffset,r.offset);return Promise.resolve(r.encrypt(n)).then((function(t){r.offset=0,e.enqueue({index:r.index++,offset:r.totalOffset,jwe:t})}))}catch(e){return Promise.reject(e)}},r.encrypt=function(e){try{var r=this;return Promise.resolve(r.cipher.encrypt({data:e,additionalData:r.additionalData,cek:r.cek})).then((function(e){var n=e.ciphertext,i=e.tag;return{protected:r.encodedProtectedHeader,recipients:r.recipients,iv:t.encode(e.iv),ciphertext:t.encode(n),tag:t.encode(i)}}))}catch(e){return Promise.reject(e)}},e}();exports.Cipher=function(){function e(e){this.KeyPairClass=e,this.version="recommended",this.cipher=p}var r=e.prototype;return r.createEncryptStream=function(e){var r=e.recipients,t=e.keyResolver,n=e.chunkSize;try{return Promise.resolve(this.createEncryptTransformer({recipients:r,keyResolver:t,chunkSize:n})).then((function(e){return new i.TransformStream(e)}))}catch(e){return Promise.reject(e)}},r.createDecryptStream=function(e){var r=e.keyAgreementKey;try{return Promise.resolve(this.createDecryptTransformer({keyAgreementKey:r})).then((function(e){return new i.TransformStream(e)}))}catch(e){return Promise.reject(e)}},r.encrypt=function(e){var r=e.data,t=e.recipients,n=e.keyResolver;try{if(!(r instanceof Uint8Array)&&"string"!=typeof r)throw new TypeError('"data" must be a Uint8Array or a string.');return r&&(r=y(r)),Promise.resolve(this.createEncryptTransformer({recipients:t,keyResolver:n})).then((function(e){return e.encrypt(r)}))}catch(e){return Promise.reject(e)}},r.encryptObject=function(e){var r=e.obj,t=function(e,r){if(null==e)return{};var t,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r.indexOf(t=o[n])>=0||(i[t]=e[t]);return i}(e,["obj"]);try{if("object"!=typeof r)throw new TypeError('"obj" must be an object.');return Promise.resolve(this.encrypt(u({data:JSON.stringify(r)},t)))}catch(e){return Promise.reject(e)}},r.decrypt=function(e){var r=e.jwe,t=e.keyAgreementKey;try{return Promise.resolve(this.createDecryptTransformer({keyAgreementKey:t})).then((function(e){return e.decrypt(r)}))}catch(e){return Promise.reject(e)}},r.decryptObject=function(e){var r=e.jwe,t=e.keyAgreementKey;try{return Promise.resolve(this.decrypt({jwe:r,keyAgreementKey:t})).then((function(e){return e?JSON.parse(Buffer.from(e).toString()):null}))}catch(e){return Promise.reject(e)}},r.createEncryptTransformer=function(e){var r=e.recipients,n=e.keyResolver,i=e.chunkSize;try{var o=this;if(!(Array.isArray(r)&&r.length>0))throw new TypeError('"recipients" must be a non-empty array.');var a=o.KeyPairClass.JWE_ALG;if(!r.every((function(e){return e.header&&e.header.alg===a})))throw new Error('All recipients must use the algorithm "'+a+'".');var s=o.cipher;return Promise.resolve(s.generateKey()).then((function(e){return Promise.resolve(Promise.all(r.map((function(e){return n({id:e.header.kid})})))).then((function(n){var a=void 0;return"JsonWebKey2020"===n[0].type&&(a={kty:"EC",crvOrSize:n[0].publicKeyJwk.crv}),Promise.resolve(o.KeyPairClass.generateEphemeralKeyPair(a)).then((function(a){return Promise.resolve(Promise.all(n.map((function(e){return o.KeyPairClass.kekFromStaticPeer({ephemeralKeyPair:a,staticPublicKey:e})})))).then((function(n){return Promise.resolve(Promise.all(r.map((function(t,i){try{var o=n[i],a=o.kek,s=o.epk,c=o.apu,f=o.apv;return r[i]=t={header:u({},t.header)},t.header.epk=s,t.header.apu=c,t.header.apv=f,Promise.resolve(a.wrapKey({unwrappedKey:e})).then((function(e){t.encrypted_key=e}))}catch(e){return Promise.reject(e)}})))).then((function(){var n=JSON.stringify({enc:s.JWE_ENC}),o=t.encode(Buffer.from(y(n))),a=y(o);return new g({recipients:r,encodedProtectedHeader:o,cipher:s,additionalData:a,cek:e,chunkSize:i})}))}))}))}))}))}catch(e){return Promise.reject(e)}},r.createDecryptTransformer=function(e){var r=e.keyAgreementKey;try{return Promise.resolve(new m({KeyPairClass:this.KeyPairClass,keyAgreementKey:r}))}catch(e){return Promise.reject(e)}},e}(),exports.KeyEncryptionKey=f,exports.deriveKey=function(e){var r=e.secret,t=e.producerInfo,n=e.consumerInfo;try{if(!(r instanceof Uint8Array&&r.length>0))throw new TypeError('"secret" must be a non-empty Uint8Array.');if(!(t instanceof Uint8Array&&t.length>0))throw new TypeError('"producerInfo" must be a non-empty Uint8Array.');if(!(n instanceof Uint8Array&&n.length>0))throw new TypeError('"consumerInfo" must be a non-empty Uint8Array.');var i=new Uint8Array(4+r.length+s.length+4+t.length+4+n.length+4),o=0,f=new DataView(i.buffer,i.byteOffset,i.byteLength);return f.setUint32(o,1),i.set(r,o+=4),i.set(s,o+=r.length),f.setUint32(o+=s.length,t.length),i.set(t,o+=4),f.setUint32(o+=t.length,n.length),i.set(n,o+=4),f.setUint32(o+=n.length,256),Promise.resolve(a.subtle.digest(c,i)).then((function(e){return new Uint8Array(e)}))}catch(e){return Promise.reject(e)}},exports.getEpkGenerator=function(e,r){return function(){try{return Promise.resolve(e.generate(r)).then((function(e){return Promise.resolve(e.toJsonWebKeyPair(!0)).then((function(e){return{keypair:e,epk:e.publicKeyJwk}}))}))}catch(e){return Promise.reject(e)}}};
//# sourceMappingURL=did-key-cipher.cjs.production.min.js.map

@@ -1,2 +0,2 @@

import { Crypto } from 'node-webcrypto-ossl';
import { Crypto } from '@peculiar/webcrypto';
import base64url from 'base64url';

@@ -3,0 +3,0 @@ import { AESKW } from '@stablelib/aes-kw';

@@ -5,3 +5,3 @@ {

"module": "dist/did-key-cipher.esm.js",
"version": "0.2.1-unstable.23",
"version": "0.2.1-unstable.24",
"publishConfig": {

@@ -34,9 +34,9 @@ "access": "public"

"dependencies": {
"@peculiar/webcrypto": "^1.1.3",
"@stablelib/aes-kw": "^1.0.0",
"@stablelib/xchacha20poly1305": "^1.0.0",
"@transmute/did-key-common": "^0.2.1-unstable.23",
"node-webcrypto-ossl": "^2.1.2",
"@transmute/did-key-common": "^0.2.1-unstable.24",
"web-streams-polyfill": "^3.0.0"
},
"gitHead": "f35051ae4fc7b96b522ac650a3eed34207caddeb"
"gitHead": "6934b062f8ac2f58af408a2798f5ac9b48fecb28"
}

@@ -1,2 +0,2 @@

import { Crypto } from 'node-webcrypto-ossl';
import { Crypto } from '@peculiar/webcrypto';

@@ -16,5 +16,5 @@ function isNodejs() {

} else {
crypto = window.crypto as Crypto;
crypto = window.crypto;
}
export default crypto;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc