Release new version
This commit is contained in:
parent
d43437473f
commit
aab04c2ad2
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "openpgp",
|
||||
"version": "4.0.0",
|
||||
"version": "4.0.1",
|
||||
"license": "LGPL-3.0+",
|
||||
"homepage": "https://openpgpjs.org/",
|
||||
"authors": [
|
||||
|
|
391
dist/compat/openpgp.js
vendored
391
dist/compat/openpgp.js
vendored
|
@ -29617,7 +29617,7 @@ exports.default = {
|
|||
* @memberof module:config
|
||||
* @property {String} versionstring A version string to be included in armored messages
|
||||
*/
|
||||
versionstring: "OpenPGP.js v4.0.0",
|
||||
versionstring: "OpenPGP.js v4.0.1",
|
||||
/**
|
||||
* @memberof module:config
|
||||
* @property {String} commentstring A comment string to be included in armored messages
|
||||
|
@ -37552,6 +37552,27 @@ function verifyHeaders(headers) {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Splits a message into two parts, the body and the checksum. This is an internal function
|
||||
* @param {String} text OpenPGP armored message part
|
||||
* @returns {Object} An object with attribute "body" containing the body
|
||||
* and an attribute "checksum" containing the checksum.
|
||||
*/
|
||||
function splitChecksum(text) {
|
||||
var body = text;
|
||||
var checksum = "";
|
||||
|
||||
var lastEquals = text.lastIndexOf("=");
|
||||
|
||||
if (lastEquals >= 0 && lastEquals !== text.length - 1) {
|
||||
// '=' as the last char means no checksum
|
||||
body = text.slice(0, lastEquals);
|
||||
checksum = text.slice(lastEquals + 1).substr(0, 4);
|
||||
}
|
||||
|
||||
return { body: body, checksum: checksum };
|
||||
}
|
||||
|
||||
/**
|
||||
* DeArmor an OpenPGP armored message; verify the checksum and return
|
||||
* the encoded bytes
|
||||
|
@ -37566,13 +37587,13 @@ function dearmor(input) {
|
|||
|
||||
return new _promise2.default(function () {
|
||||
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(resolve, reject) {
|
||||
var reSplit, reEmptyLine, type, headers, lastHeaders, headersDone, text, textDone, resolved, checksum, data;
|
||||
var reSplit, reEmptyLine, type, headers, lastHeaders, headersDone, text, textDone, checksum, data;
|
||||
return _regenerator2.default.wrap(function _callee3$(_context3) {
|
||||
while (1) {
|
||||
switch (_context3.prev = _context3.next) {
|
||||
case 0:
|
||||
try {
|
||||
reSplit = /^-----[^-]+-----$/;
|
||||
reSplit = /^-----[^-]+-----$/m;
|
||||
reEmptyLine = /^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/;
|
||||
type = void 0;
|
||||
headers = [];
|
||||
|
@ -37580,172 +37601,217 @@ function dearmor(input) {
|
|||
headersDone = void 0;
|
||||
text = [];
|
||||
textDone = void 0;
|
||||
resolved = false;
|
||||
checksum = void 0;
|
||||
data = _base2.default.decode(_webStreamTools2.default.transformPair(input, function () {
|
||||
var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(readable, writable) {
|
||||
var reader, writer, lineUntrimmed, line;
|
||||
var reader, line, writer, _ref3, done, value, _line, remainder, parts, split;
|
||||
|
||||
return _regenerator2.default.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
reader = _webStreamTools2.default.getReader(readable);
|
||||
writer = _webStreamTools2.default.getWriter(writable);
|
||||
_context.prev = 1;
|
||||
|
||||
case 2:
|
||||
if (!true) {
|
||||
_context.next = 51;
|
||||
_context.next = 29;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!resolved) {
|
||||
_context.next = 6;
|
||||
break;
|
||||
}
|
||||
|
||||
_context.next = 6;
|
||||
return writer.ready;
|
||||
|
||||
case 6:
|
||||
_context.prev = 6;
|
||||
_context.next = 9;
|
||||
_context.next = 5;
|
||||
return reader.readLine();
|
||||
|
||||
case 9:
|
||||
lineUntrimmed = _context.sent;
|
||||
case 5:
|
||||
line = _context.sent;
|
||||
|
||||
if (!(lineUntrimmed === undefined)) {
|
||||
_context.next = 12;
|
||||
if (!(line === undefined)) {
|
||||
_context.next = 8;
|
||||
break;
|
||||
}
|
||||
|
||||
throw new Error('Misformed armored text');
|
||||
|
||||
case 12:
|
||||
case 8:
|
||||
// remove trailing whitespace at end of lines
|
||||
// remove leading whitespace for compat with older versions of OpenPGP.js
|
||||
line = lineUntrimmed.trim();
|
||||
line = line.replace(/[\t\r\n ]+$/, '');
|
||||
|
||||
if (type) {
|
||||
_context.next = 17;
|
||||
_context.next = 13;
|
||||
break;
|
||||
}
|
||||
|
||||
if (reSplit.test(line)) {
|
||||
type = getType(line);
|
||||
}
|
||||
_context.next = 38;
|
||||
_context.next = 27;
|
||||
break;
|
||||
|
||||
case 17:
|
||||
case 13:
|
||||
if (headersDone) {
|
||||
_context.next = 22;
|
||||
_context.next = 26;
|
||||
break;
|
||||
}
|
||||
|
||||
if (reSplit.test(line)) {
|
||||
reject(new Error('Mandatory blank line missing between armor headers and armor data'));
|
||||
}
|
||||
if (!reEmptyLine.test(line)) {
|
||||
lastHeaders.push(line);
|
||||
} else {
|
||||
verifyHeaders(lastHeaders);
|
||||
headersDone = true;
|
||||
if (textDone || type !== 2) {
|
||||
resolve({ text: text, data: data, headers: headers, type: type });
|
||||
resolved = true;
|
||||
}
|
||||
}
|
||||
_context.next = 38;
|
||||
break;
|
||||
|
||||
case 22:
|
||||
if (!(!textDone && type === 2)) {
|
||||
_context.next = 26;
|
||||
if (reEmptyLine.test(line)) {
|
||||
_context.next = 19;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!reSplit.test(line)) {
|
||||
// Reverse dash-escaping for msg
|
||||
text.push(_util2.default.removeTrailingSpaces(lineUntrimmed.replace(/^- /, '').replace(/[\r\n]+$/, '')));
|
||||
} else {
|
||||
text = text.join('\r\n');
|
||||
textDone = true;
|
||||
verifyHeaders(lastHeaders);
|
||||
lastHeaders = [];
|
||||
headersDone = false;
|
||||
lastHeaders.push(line);
|
||||
_context.next = 24;
|
||||
break;
|
||||
|
||||
case 19:
|
||||
verifyHeaders(lastHeaders);
|
||||
headersDone = true;
|
||||
|
||||
if (!(textDone || type !== 2)) {
|
||||
_context.next = 24;
|
||||
break;
|
||||
}
|
||||
_context.next = 38;
|
||||
|
||||
resolve({ text: text, data: data, headers: headers, type: type });
|
||||
return _context.abrupt('break', 29);
|
||||
|
||||
case 24:
|
||||
_context.next = 27;
|
||||
break;
|
||||
|
||||
case 26:
|
||||
if (reSplit.test(line)) {
|
||||
_context.next = 35;
|
||||
break;
|
||||
if (!textDone && type === 2) {
|
||||
if (!reSplit.test(line)) {
|
||||
// Reverse dash-escaping for msg
|
||||
text.push(line.replace(/^- /, ''));
|
||||
} else {
|
||||
text = text.join('\r\n');
|
||||
textDone = true;
|
||||
verifyHeaders(lastHeaders);
|
||||
lastHeaders = [];
|
||||
headersDone = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!(line[0] !== '=')) {
|
||||
_context.next = 32;
|
||||
break;
|
||||
}
|
||||
|
||||
_context.next = 30;
|
||||
return writer.write(line);
|
||||
|
||||
case 30:
|
||||
_context.next = 33;
|
||||
case 27:
|
||||
_context.next = 2;
|
||||
break;
|
||||
|
||||
case 32:
|
||||
checksum = line.substr(1);
|
||||
|
||||
case 33:
|
||||
_context.next = 38;
|
||||
case 29:
|
||||
_context.next = 35;
|
||||
break;
|
||||
|
||||
case 31:
|
||||
_context.prev = 31;
|
||||
_context.t0 = _context['catch'](1);
|
||||
|
||||
reject(_context.t0);
|
||||
return _context.abrupt('return');
|
||||
|
||||
case 35:
|
||||
_context.next = 37;
|
||||
return writer.close();
|
||||
writer = _webStreamTools2.default.getWriter(writable);
|
||||
_context.prev = 36;
|
||||
|
||||
case 37:
|
||||
return _context.abrupt('break', 51);
|
||||
if (!true) {
|
||||
_context.next = 69;
|
||||
break;
|
||||
}
|
||||
|
||||
case 38:
|
||||
_context.next = 49;
|
||||
break;
|
||||
_context.next = 40;
|
||||
return writer.ready;
|
||||
|
||||
case 40:
|
||||
_context.prev = 40;
|
||||
_context.t0 = _context['catch'](6);
|
||||
_context.next = 42;
|
||||
return reader.read();
|
||||
|
||||
if (!resolved) {
|
||||
case 42:
|
||||
_ref3 = _context.sent;
|
||||
done = _ref3.done;
|
||||
value = _ref3.value;
|
||||
|
||||
if (!done) {
|
||||
_context.next = 47;
|
||||
break;
|
||||
}
|
||||
|
||||
_context.next = 45;
|
||||
return writer.abort(_context.t0);
|
||||
|
||||
case 45:
|
||||
_context.next = 48;
|
||||
break;
|
||||
throw new Error('Misformed armored text');
|
||||
|
||||
case 47:
|
||||
reject(_context.t0);
|
||||
_line = value + '';
|
||||
|
||||
case 48:
|
||||
return _context.abrupt('break', 51);
|
||||
if (!(_line.indexOf('=') === -1 && _line.indexOf('-') === -1)) {
|
||||
_context.next = 53;
|
||||
break;
|
||||
}
|
||||
|
||||
case 49:
|
||||
_context.next = 2;
|
||||
break;
|
||||
_context.next = 51;
|
||||
return writer.write(_line);
|
||||
|
||||
case 51:
|
||||
_context.next = 67;
|
||||
break;
|
||||
|
||||
case 53:
|
||||
_context.t1 = _line;
|
||||
_context.next = 56;
|
||||
return reader.readToEnd();
|
||||
|
||||
case 56:
|
||||
_context.t2 = _context.sent;
|
||||
remainder = _context.t1 + _context.t2;
|
||||
|
||||
remainder = remainder.replace(/[\t\r ]+$/mg, '');
|
||||
parts = remainder.split(reSplit);
|
||||
|
||||
if (!(parts.length === 1)) {
|
||||
_context.next = 62;
|
||||
break;
|
||||
}
|
||||
|
||||
throw new Error('Misformed armored text');
|
||||
|
||||
case 62:
|
||||
split = splitChecksum(parts[0].slice(0, -1));
|
||||
|
||||
checksum = split.checksum;
|
||||
_context.next = 66;
|
||||
return writer.write(split.body);
|
||||
|
||||
case 66:
|
||||
return _context.abrupt('break', 69);
|
||||
|
||||
case 67:
|
||||
_context.next = 37;
|
||||
break;
|
||||
|
||||
case 69:
|
||||
_context.next = 71;
|
||||
return writer.ready;
|
||||
|
||||
case 71:
|
||||
_context.next = 73;
|
||||
return writer.close();
|
||||
|
||||
case 73:
|
||||
_context.next = 79;
|
||||
break;
|
||||
|
||||
case 75:
|
||||
_context.prev = 75;
|
||||
_context.t3 = _context['catch'](36);
|
||||
_context.next = 79;
|
||||
return writer.abort(_context.t3);
|
||||
|
||||
case 79:
|
||||
case 'end':
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee, _this, [[6, 40]]);
|
||||
}, _callee, _this, [[1, 31], [36, 75]]);
|
||||
}));
|
||||
|
||||
return function (_x3, _x4) {
|
||||
|
@ -37754,7 +37820,7 @@ function dearmor(input) {
|
|||
}()));
|
||||
|
||||
data = _webStreamTools2.default.transformPair(data, function () {
|
||||
var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(readable, writable) {
|
||||
var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(readable, writable) {
|
||||
var checksumVerified, writer, checksumVerifiedString;
|
||||
return _regenerator2.default.wrap(function _callee2$(_context2) {
|
||||
while (1) {
|
||||
|
@ -37809,7 +37875,7 @@ function dearmor(input) {
|
|||
}));
|
||||
|
||||
return function (_x5, _x6) {
|
||||
return _ref3.apply(this, arguments);
|
||||
return _ref4.apply(this, arguments);
|
||||
};
|
||||
}());
|
||||
} catch (e) {
|
||||
|
@ -38034,19 +38100,20 @@ function r2s(t, u) {
|
|||
var a = 0;
|
||||
|
||||
return _webStreamTools2.default.transform(t, function (value) {
|
||||
var r = [];
|
||||
var tl = value.length;
|
||||
var r = new Uint8Array(Math.ceil(0.75 * tl));
|
||||
var index = 0;
|
||||
for (var n = 0; n < tl; n++) {
|
||||
c = b64.indexOf(value.charAt(n));
|
||||
if (c >= 0) {
|
||||
if (s) {
|
||||
r.push(a | c >> 6 - s & 255);
|
||||
r[index++] = a | c >> 6 - s & 255;
|
||||
}
|
||||
s = s + 2 & 7;
|
||||
a = c << s & 255;
|
||||
}
|
||||
}
|
||||
return new Uint8Array(r);
|
||||
return r.subarray(0, index);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -41073,7 +41140,7 @@ Key.prototype.verifyPrimaryKey = function () {
|
|||
*/
|
||||
Key.prototype.getExpirationTime = function () {
|
||||
var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(capabilities, keyId, userId) {
|
||||
var primaryUser, selfCert, keyExpiry, sigExpiry, expiry, encryptExpiry, signExpiry;
|
||||
var primaryUser, selfCert, keyExpiry, sigExpiry, expiry, encryptKey, encryptExpiry, signKey, signExpiry;
|
||||
return _regenerator2.default.wrap(function _callee10$(_context10) {
|
||||
while (1) {
|
||||
switch (_context10.prev = _context10.next) {
|
||||
|
@ -41098,7 +41165,7 @@ Key.prototype.getExpirationTime = function () {
|
|||
expiry = keyExpiry < sigExpiry ? keyExpiry : sigExpiry;
|
||||
|
||||
if (!(capabilities === 'encrypt' || capabilities === 'encrypt_sign')) {
|
||||
_context10.next = 14;
|
||||
_context10.next = 17;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -41106,28 +41173,48 @@ Key.prototype.getExpirationTime = function () {
|
|||
return this.getEncryptionKey(keyId, null, userId);
|
||||
|
||||
case 12:
|
||||
encryptExpiry = _context10.sent.getExpirationTime();
|
||||
encryptKey = _context10.sent;
|
||||
|
||||
if (encryptExpiry < expiry) expiry = encryptExpiry;
|
||||
|
||||
case 14:
|
||||
if (!(capabilities === 'sign' || capabilities === 'encrypt_sign')) {
|
||||
_context10.next = 19;
|
||||
if (encryptKey) {
|
||||
_context10.next = 15;
|
||||
break;
|
||||
}
|
||||
|
||||
_context10.next = 17;
|
||||
return this.getSigningKey(keyId, null, userId);
|
||||
return _context10.abrupt('return', null);
|
||||
|
||||
case 15:
|
||||
encryptExpiry = encryptKey.getExpirationTime();
|
||||
|
||||
if (encryptExpiry < expiry) expiry = encryptExpiry;
|
||||
|
||||
case 17:
|
||||
signExpiry = _context10.sent.getExpirationTime();
|
||||
if (!(capabilities === 'sign' || capabilities === 'encrypt_sign')) {
|
||||
_context10.next = 25;
|
||||
break;
|
||||
}
|
||||
|
||||
_context10.next = 20;
|
||||
return this.getSigningKey(keyId, null, userId);
|
||||
|
||||
case 20:
|
||||
signKey = _context10.sent;
|
||||
|
||||
if (signKey) {
|
||||
_context10.next = 23;
|
||||
break;
|
||||
}
|
||||
|
||||
return _context10.abrupt('return', null);
|
||||
|
||||
case 23:
|
||||
signExpiry = signKey.getExpirationTime();
|
||||
|
||||
if (signExpiry < expiry) expiry = signExpiry;
|
||||
|
||||
case 19:
|
||||
case 25:
|
||||
return _context10.abrupt('return', expiry);
|
||||
|
||||
case 20:
|
||||
case 26:
|
||||
case 'end':
|
||||
return _context10.stop();
|
||||
}
|
||||
|
@ -47221,8 +47308,10 @@ function pako_zlib(constructor) {
|
|||
return function (data) {
|
||||
var obj = new constructor(options);
|
||||
return _webStreamTools2.default.transform(data, function (value) {
|
||||
obj.push(value, _pako2.default.Z_SYNC_FLUSH);
|
||||
return obj.result;
|
||||
if (value.length) {
|
||||
obj.push(value, _pako2.default.Z_SYNC_FLUSH);
|
||||
return obj.result;
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
@ -47984,7 +48073,7 @@ exports.default = {
|
|||
*/
|
||||
read: function () {
|
||||
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(input, callback) {
|
||||
var reader, writer, peekedBytes, headerByte, tag, format, packet_length, packet_length_type, streaming, packet, callbackReturned, transform, wasPartialLength, lengthByte, bytesRead, _ref2, _done, _value, _ref3, done, value;
|
||||
var reader, writer, peekedBytes, headerByte, tag, format, packet_length, packet_length_type, streaming, packet, callbackReturned, transform, wasPartialLength, lengthByte, bytesRead, _ref2, done, value, nextPacket;
|
||||
|
||||
return _regenerator2.default.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
|
@ -48234,10 +48323,10 @@ exports.default = {
|
|||
|
||||
case 112:
|
||||
_ref2 = _context.sent;
|
||||
_done = _ref2.done;
|
||||
_value = _ref2.value;
|
||||
done = _ref2.done;
|
||||
value = _ref2.value;
|
||||
|
||||
if (!_done) {
|
||||
if (!done) {
|
||||
_context.next = 119;
|
||||
break;
|
||||
}
|
||||
|
@ -48254,17 +48343,17 @@ exports.default = {
|
|||
|
||||
case 119:
|
||||
_context.next = 121;
|
||||
return writer.write(_value.slice(0, packet_length - bytesRead));
|
||||
return writer.write(value.slice(0, packet_length - bytesRead));
|
||||
|
||||
case 121:
|
||||
bytesRead += _value.length;
|
||||
bytesRead += value.length;
|
||||
|
||||
if (!(bytesRead >= packet_length)) {
|
||||
_context.next = 125;
|
||||
break;
|
||||
}
|
||||
|
||||
reader.unshift(_value.slice(packet_length - bytesRead + _value.length));
|
||||
reader.unshift(value.slice(packet_length - bytesRead + value.length));
|
||||
return _context.abrupt('break', 127);
|
||||
|
||||
case 125:
|
||||
|
@ -48293,69 +48382,65 @@ exports.default = {
|
|||
|
||||
case 134:
|
||||
_context.next = 136;
|
||||
return reader.read();
|
||||
return reader.peekBytes(2);
|
||||
|
||||
case 136:
|
||||
_ref3 = _context.sent;
|
||||
done = _ref3.done;
|
||||
value = _ref3.value;
|
||||
|
||||
if (!done) reader.unshift(value);
|
||||
nextPacket = _context.sent;
|
||||
|
||||
if (!writer) {
|
||||
_context.next = 142;
|
||||
break;
|
||||
}
|
||||
|
||||
_context.next = 140;
|
||||
return writer.ready;
|
||||
|
||||
case 140:
|
||||
_context.next = 142;
|
||||
return writer.close();
|
||||
|
||||
case 142:
|
||||
if (!streaming) {
|
||||
_context.next = 145;
|
||||
break;
|
||||
}
|
||||
|
||||
_context.next = 143;
|
||||
return writer.ready;
|
||||
|
||||
case 143:
|
||||
_context.next = 145;
|
||||
return writer.close();
|
||||
|
||||
case 145:
|
||||
if (!streaming) {
|
||||
_context.next = 148;
|
||||
break;
|
||||
}
|
||||
|
||||
_context.next = 148;
|
||||
return callbackReturned;
|
||||
|
||||
case 148:
|
||||
return _context.abrupt('return', done || !value || !value.length);
|
||||
case 145:
|
||||
return _context.abrupt('return', !nextPacket || !nextPacket.length);
|
||||
|
||||
case 151:
|
||||
_context.prev = 151;
|
||||
case 148:
|
||||
_context.prev = 148;
|
||||
_context.t25 = _context['catch'](2);
|
||||
|
||||
if (!writer) {
|
||||
_context.next = 159;
|
||||
_context.next = 156;
|
||||
break;
|
||||
}
|
||||
|
||||
_context.next = 156;
|
||||
_context.next = 153;
|
||||
return writer.abort(_context.t25);
|
||||
|
||||
case 156:
|
||||
case 153:
|
||||
return _context.abrupt('return', true);
|
||||
|
||||
case 159:
|
||||
case 156:
|
||||
throw _context.t25;
|
||||
|
||||
case 160:
|
||||
_context.prev = 160;
|
||||
case 157:
|
||||
_context.prev = 157;
|
||||
|
||||
reader.releaseLock();
|
||||
return _context.finish(160);
|
||||
return _context.finish(157);
|
||||
|
||||
case 163:
|
||||
case 160:
|
||||
case 'end':
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee, this, [[2, 151, 160, 163]]);
|
||||
}, _callee, this, [[2, 148, 157, 160]]);
|
||||
}));
|
||||
|
||||
function read(_x, _x2) {
|
||||
|
|
4
dist/compat/openpgp.min.js
vendored
4
dist/compat/openpgp.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/compat/openpgp.worker.min.js
vendored
2
dist/compat/openpgp.worker.min.js
vendored
|
@ -1,2 +1,2 @@
|
|||
/*! OpenPGP.js v4.0.0 - 2018-08-14 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
||||
/*! OpenPGP.js v4.0.1 - 2018-09-03 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
||||
!function(){return function e(n,r,t){function o(a,f){if(!r[a]){if(!n[a]){var u="function"==typeof require&&require;if(!f&&u)return u(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var s=r[a]={exports:{}};n[a][0].call(s.exports,function(e){return o(n[a][1][e]||e)},s,s.exports,e,n,r,t)}return r[a].exports}for(var i="function"==typeof require&&require,a=0;a<t.length;a++)o(t[a]);return o}}()({1:[function(e,n,r){self.window=self,importScripts("openpgp.min.js");var t=window.openpgp,o=[],i=6e4;function a(e){self.postMessage(e,t.util.getTransferables(e.data))}t.crypto.random.randomBuffer.init(i,function(){return o.length||self.postMessage({event:"request-seed",amount:i}),new Promise(function(e){o.push(e)})}),self.onmessage=function(e){var n,r=e.data||{};switch(r.event){case"configure":n=r.config,Object.keys(n).forEach(function(e){t.config[e]=n[e]});break;case"seed-random":!function(e){e instanceof Uint8Array||(e=new Uint8Array(e));t.crypto.random.randomBuffer.set(e)}(r.buf);var i=o;o=[];for(var f=0;f<i.length;f++)i[f]();break;default:!function(e,n,r){if("function"!=typeof t[n])return void a({id:e,event:"method-return",err:"Unknown Worker Event"});r=t.packet.clone.parseClonedPackets(r,n),t.util.restoreStreams(r),t[n](r).then(function(n){a({id:e,event:"method-return",data:t.packet.clone.clonePackets(n)})}).catch(function(n){t.util.print_debug_error(n),a({id:e,event:"method-return",err:n.message,stack:n.stack})})}(r.id,r.event,r.options||{})}}},{}]},{},[1]);
|
129
dist/openpgp.js
vendored
129
dist/openpgp.js
vendored
|
@ -23337,7 +23337,7 @@ exports.default = {
|
|||
* @memberof module:config
|
||||
* @property {String} versionstring A version string to be included in armored messages
|
||||
*/
|
||||
versionstring: "OpenPGP.js v4.0.0",
|
||||
versionstring: "OpenPGP.js v4.0.1",
|
||||
/**
|
||||
* @memberof module:config
|
||||
* @property {String} commentstring A comment string to be included in armored messages
|
||||
|
@ -29258,6 +29258,27 @@ function verifyHeaders(headers) {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Splits a message into two parts, the body and the checksum. This is an internal function
|
||||
* @param {String} text OpenPGP armored message part
|
||||
* @returns {Object} An object with attribute "body" containing the body
|
||||
* and an attribute "checksum" containing the checksum.
|
||||
*/
|
||||
function splitChecksum(text) {
|
||||
let body = text;
|
||||
let checksum = "";
|
||||
|
||||
const lastEquals = text.lastIndexOf("=");
|
||||
|
||||
if (lastEquals >= 0 && lastEquals !== text.length - 1) {
|
||||
// '=' as the last char means no checksum
|
||||
body = text.slice(0, lastEquals);
|
||||
checksum = text.slice(lastEquals + 1).substr(0, 4);
|
||||
}
|
||||
|
||||
return { body: body, checksum: checksum };
|
||||
}
|
||||
|
||||
/**
|
||||
* DeArmor an OpenPGP armored message; verify the checksum and return
|
||||
* the encoded bytes
|
||||
|
@ -29270,7 +29291,7 @@ function verifyHeaders(headers) {
|
|||
function dearmor(input) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
const reSplit = /^-----[^-]+-----$/;
|
||||
const reSplit = /^-----[^-]+-----$/m;
|
||||
const reEmptyLine = /^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/;
|
||||
|
||||
let type;
|
||||
|
@ -29279,21 +29300,17 @@ function dearmor(input) {
|
|||
let headersDone;
|
||||
let text = [];
|
||||
let textDone;
|
||||
let resolved = false;
|
||||
let checksum;
|
||||
let data = _base2.default.decode(_webStreamTools2.default.transformPair(input, async (readable, writable) => {
|
||||
const reader = _webStreamTools2.default.getReader(readable);
|
||||
const writer = _webStreamTools2.default.getWriter(writable);
|
||||
while (true) {
|
||||
if (resolved) await writer.ready;
|
||||
try {
|
||||
const lineUntrimmed = await reader.readLine();
|
||||
if (lineUntrimmed === undefined) {
|
||||
try {
|
||||
while (true) {
|
||||
let line = await reader.readLine();
|
||||
if (line === undefined) {
|
||||
throw new Error('Misformed armored text');
|
||||
}
|
||||
// remove trailing whitespace at end of lines
|
||||
// remove leading whitespace for compat with older versions of OpenPGP.js
|
||||
const line = lineUntrimmed.trim();
|
||||
line = line.replace(/[\t\r\n ]+$/, '');
|
||||
if (!type) {
|
||||
if (reSplit.test(line)) {
|
||||
type = getType(line);
|
||||
|
@ -29309,13 +29326,13 @@ function dearmor(input) {
|
|||
headersDone = true;
|
||||
if (textDone || type !== 2) {
|
||||
resolve({ text, data, headers, type });
|
||||
resolved = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (!textDone && type === 2) {
|
||||
if (!reSplit.test(line)) {
|
||||
// Reverse dash-escaping for msg
|
||||
text.push(_util2.default.removeTrailingSpaces(lineUntrimmed.replace(/^- /, '').replace(/[\r\n]+$/, '')));
|
||||
text.push(line.replace(/^- /, ''));
|
||||
} else {
|
||||
text = text.join('\r\n');
|
||||
textDone = true;
|
||||
|
@ -29323,26 +29340,45 @@ function dearmor(input) {
|
|||
lastHeaders = [];
|
||||
headersDone = false;
|
||||
}
|
||||
} else {
|
||||
if (!reSplit.test(line)) {
|
||||
if (line[0] !== '=') {
|
||||
await writer.write(line);
|
||||
} else {
|
||||
checksum = line.substr(1);
|
||||
}
|
||||
} else {
|
||||
await writer.close();
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
if (resolved) {
|
||||
await writer.abort(e);
|
||||
} else {
|
||||
reject(e);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
return;
|
||||
}
|
||||
const writer = _webStreamTools2.default.getWriter(writable);
|
||||
try {
|
||||
while (true) {
|
||||
await writer.ready;
|
||||
|
||||
var _ref = await reader.read();
|
||||
|
||||
const done = _ref.done,
|
||||
value = _ref.value;
|
||||
|
||||
if (done) {
|
||||
throw new Error('Misformed armored text');
|
||||
}
|
||||
const line = value + '';
|
||||
if (line.indexOf('=') === -1 && line.indexOf('-') === -1) {
|
||||
await writer.write(line);
|
||||
} else {
|
||||
let remainder = line + (await reader.readToEnd());
|
||||
remainder = remainder.replace(/[\t\r ]+$/mg, '');
|
||||
const parts = remainder.split(reSplit);
|
||||
if (parts.length === 1) {
|
||||
throw new Error('Misformed armored text');
|
||||
}
|
||||
const split = splitChecksum(parts[0].slice(0, -1));
|
||||
checksum = split.checksum;
|
||||
await writer.write(split.body);
|
||||
break;
|
||||
}
|
||||
}
|
||||
await writer.ready;
|
||||
await writer.close();
|
||||
} catch (e) {
|
||||
await writer.abort(e);
|
||||
}
|
||||
}));
|
||||
data = _webStreamTools2.default.transformPair(data, async (readable, writable) => {
|
||||
|
@ -29570,19 +29606,20 @@ function r2s(t, u) {
|
|||
let a = 0;
|
||||
|
||||
return _webStreamTools2.default.transform(t, value => {
|
||||
const r = [];
|
||||
const tl = value.length;
|
||||
const r = new Uint8Array(Math.ceil(0.75 * tl));
|
||||
let index = 0;
|
||||
for (let n = 0; n < tl; n++) {
|
||||
c = b64.indexOf(value.charAt(n));
|
||||
if (c >= 0) {
|
||||
if (s) {
|
||||
r.push(a | c >> 6 - s & 255);
|
||||
r[index++] = a | c >> 6 - s & 255;
|
||||
}
|
||||
s = s + 2 & 7;
|
||||
a = c << s & 255;
|
||||
}
|
||||
}
|
||||
return new Uint8Array(r);
|
||||
return r.subarray(0, index);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -31018,11 +31055,15 @@ Key.prototype.getExpirationTime = async function (capabilities, keyId, userId) {
|
|||
const sigExpiry = selfCert.getExpirationTime();
|
||||
let expiry = keyExpiry < sigExpiry ? keyExpiry : sigExpiry;
|
||||
if (capabilities === 'encrypt' || capabilities === 'encrypt_sign') {
|
||||
const encryptExpiry = (await this.getEncryptionKey(keyId, null, userId)).getExpirationTime();
|
||||
const encryptKey = await this.getEncryptionKey(keyId, null, userId);
|
||||
if (!encryptKey) return null;
|
||||
const encryptExpiry = encryptKey.getExpirationTime();
|
||||
if (encryptExpiry < expiry) expiry = encryptExpiry;
|
||||
}
|
||||
if (capabilities === 'sign' || capabilities === 'encrypt_sign') {
|
||||
const signExpiry = (await this.getSigningKey(keyId, null, userId)).getExpirationTime();
|
||||
const signKey = await this.getSigningKey(keyId, null, userId);
|
||||
if (!signKey) return null;
|
||||
const signExpiry = signKey.getExpirationTime();
|
||||
if (signExpiry < expiry) expiry = signExpiry;
|
||||
}
|
||||
return expiry;
|
||||
|
@ -34731,8 +34772,10 @@ function pako_zlib(constructor, options = {}) {
|
|||
return function (data) {
|
||||
const obj = new constructor(options);
|
||||
return _webStreamTools2.default.transform(data, value => {
|
||||
obj.push(value, _pako2.default.Z_SYNC_FLUSH);
|
||||
return obj.result;
|
||||
if (value.length) {
|
||||
obj.push(value, _pako2.default.Z_SYNC_FLUSH);
|
||||
return obj.result;
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
@ -35505,19 +35548,13 @@ exports.default = {
|
|||
packet = await reader.readBytes(packet_length);
|
||||
await callback({ tag, packet });
|
||||
}
|
||||
|
||||
var _ref2 = await reader.read();
|
||||
|
||||
const done = _ref2.done,
|
||||
value = _ref2.value;
|
||||
|
||||
if (!done) reader.unshift(value);
|
||||
const nextPacket = await reader.peekBytes(2);
|
||||
if (writer) {
|
||||
await writer.ready;
|
||||
await writer.close();
|
||||
}
|
||||
if (streaming) await callbackReturned;
|
||||
return done || !value || !value.length;
|
||||
return !nextPacket || !nextPacket.length;
|
||||
} catch (e) {
|
||||
if (writer) {
|
||||
await writer.abort(e);
|
||||
|
|
4
dist/openpgp.min.js
vendored
4
dist/openpgp.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/openpgp.worker.min.js
vendored
2
dist/openpgp.worker.min.js
vendored
|
@ -1,2 +1,2 @@
|
|||
/*! OpenPGP.js v4.0.0 - 2018-08-14 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
||||
/*! OpenPGP.js v4.0.1 - 2018-09-03 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
|
||||
!function(){return function e(n,r,t){function o(a,f){if(!r[a]){if(!n[a]){var u="function"==typeof require&&require;if(!f&&u)return u(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var s=r[a]={exports:{}};n[a][0].call(s.exports,function(e){return o(n[a][1][e]||e)},s,s.exports,e,n,r,t)}return r[a].exports}for(var i="function"==typeof require&&require,a=0;a<t.length;a++)o(t[a]);return o}}()({1:[function(e,n,r){self.window=self,importScripts("openpgp.min.js");var t=window.openpgp,o=[],i=6e4;function a(e){self.postMessage(e,t.util.getTransferables(e.data))}t.crypto.random.randomBuffer.init(i,function(){return o.length||self.postMessage({event:"request-seed",amount:i}),new Promise(function(e){o.push(e)})}),self.onmessage=function(e){var n,r=e.data||{};switch(r.event){case"configure":n=r.config,Object.keys(n).forEach(function(e){t.config[e]=n[e]});break;case"seed-random":!function(e){e instanceof Uint8Array||(e=new Uint8Array(e));t.crypto.random.randomBuffer.set(e)}(r.buf);var i=o;o=[];for(var f=0;f<i.length;f++)i[f]();break;default:!function(e,n,r){if("function"!=typeof t[n])return void a({id:e,event:"method-return",err:"Unknown Worker Event"});r=t.packet.clone.parseClonedPackets(r,n),t.util.restoreStreams(r),t[n](r).then(function(n){a({id:e,event:"method-return",data:t.packet.clone.clonePackets(n)})}).catch(function(n){t.util.print_debug_error(n),a({id:e,event:"method-return",err:n.message,stack:n.stack})})}(r.id,r.event,r.options||{})}}},{}]},{},[1]);
|
4
npm-shrinkwrap.json
generated
4
npm-shrinkwrap.json
generated
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "openpgp",
|
||||
"version": "4.0.0",
|
||||
"version": "4.0.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1830,7 +1830,7 @@
|
|||
"dev": true
|
||||
},
|
||||
"compressjs": {
|
||||
"version": "github:openpgpjs/compressjs#bfbb371a34d1750afa34bfa49156461acdab79a9",
|
||||
"version": "github:openpgpjs/compressjs#ce5ccbede61f075926081e29573c8a79ddf10d88",
|
||||
"from": "github:openpgpjs/compressjs",
|
||||
"requires": {
|
||||
"amdefine": "~1.0.0",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "openpgp",
|
||||
"description": "OpenPGP.js is a Javascript implementation of the OpenPGP protocol. This is defined in RFC 4880.",
|
||||
"version": "4.0.0",
|
||||
"version": "4.0.1",
|
||||
"license": "LGPL-3.0+",
|
||||
"homepage": "https://openpgpjs.org/",
|
||||
"engines": {
|
||||
|
|
Loading…
Reference in New Issue
Block a user