@renovatebot/kbpgp
Version:
Keybase's PGP Implementation
429 lines (394 loc) • 13.4 kB
JavaScript
// Generated by IcedCoffeeScript 112.8.1
var C, Ch, CreationTime, Issuer, Literal, Signature, Signer, Verifier, VerifierBase, WordArray, encode, hash_obj_to_fn, iced, konst, make_esc, packetsigs, ref, streamers, unix_time,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
iced = require('iced-runtime-3');
make_esc = require('iced-error').make_esc;
ref = require('./packet/signature'), Signature = ref.Signature, CreationTime = ref.CreationTime, Issuer = ref.Issuer;
unix_time = require('../util').unix_time;
WordArray = require('triplesec').WordArray;
konst = require('../const');
C = konst.openpgp;
Ch = require('../header');
streamers = require('../hash').streamers;
encode = require('./armor').encode;
Literal = require("./packet/literal").Literal;
VerifierBase = require('./verifier').Base;
packetsigs = require('./packet/packetsigs');
hash_obj_to_fn = function(obj) {
var fn;
fn = function(buf) {
return obj.finalize(WordArray.from_buffer(buf)).to_buffer();
};
return fn.algname = buf.algname;
};
Signer = (function() {
function Signer(arg) {
this.data = arg.data, this.hash_streamer = arg.hash_streamer, this.signing_key = arg.signing_key;
}
Signer.prototype.run = function(cb) {
var __iced_it, __iced_passed_deferral;
__iced_passed_deferral = iced.findDeferral(arguments);
__iced_it = (function(_this) {
var encoded, esc, signature;
return function*() {
var __iced_deferrals, __iced_deferrals1, __iced_deferrals2;
esc = make_esc(cb, "Signer::run");
__iced_deferrals = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Signer::run",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this._run_hash(esc(__iced_deferrals.defer({
lineno: 39
})));
if (__iced_deferrals.await_exit()) {
yield;
}
__iced_deferrals1 = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Signer::run",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this._sign(esc(__iced_deferrals1.defer({
assign_fn: (function() {
return function() {
return signature = arguments[0];
};
})(),
lineno: 40
})));
if (__iced_deferrals1.await_exit()) {
yield;
}
__iced_deferrals2 = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Signer::run",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this._encode(esc(__iced_deferrals2.defer({
assign_fn: (function() {
return function() {
return encoded = arguments[0];
};
})(),
lineno: 41
})));
if (__iced_deferrals2.await_exit()) {
yield;
}
return cb(null, encoded, signature);
};
})(this)();
__iced_it.next();
return null;
};
Signer.prototype.scrub = function() {};
Signer.prototype._sign = function(cb) {
var __iced_it, __iced_passed_deferral;
__iced_passed_deferral = iced.findDeferral(arguments);
__iced_it = (function(_this) {
var emptybuf, err;
return function*() {
var __iced_deferrals;
_this.sig = new Signature({
sig_type: C.sig_types.canonical_text,
key: _this.signing_key.key,
hashed_subpackets: [new CreationTime(unix_time())],
unhashed_subpackets: [new Issuer(_this.signing_key.get_key_id())],
hasher: _this.hash_streamer
});
emptybuf = Buffer.from([]);
__iced_deferrals = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Signer::_sign",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this.sig.write(emptybuf, __iced_deferrals.defer({
assign_fn: (function(__slot_1) {
return function() {
err = arguments[0];
return __slot_1._sig_output = arguments[1];
};
})(_this),
lineno: 59
}));
if (__iced_deferrals.await_exit()) {
yield;
}
return cb(err, _this._sig_output);
};
})(this)();
__iced_it.next();
return null;
};
Signer.prototype._encode = function(cb) {
var err, ret;
err = null;
ret = encode(C.message_types.signature, this._sig_output);
return cb(err, ret);
};
Signer.prototype._run_hash = function(cb) {
var err;
err = null;
if (this.hash_streamer != null) {
} else if (this.data != null) {
this.hash_streamer = streamers.SHA512();
this.hash_streamer.update(this.data);
} else {
err = new Error("Need either a hasher or data");
}
return cb(err);
};
return Signer;
})();
Verifier = (function(superClass) {
extend(Verifier, superClass);
function Verifier(arg) {
var keyfetch, packets;
packets = arg.packets, this.data = arg.data, this.data_fn = arg.data_fn, keyfetch = arg.keyfetch, this.now = arg.now, this.assert_pgp_hash = arg.assert_pgp_hash;
Verifier.__super__.constructor.call(this, {
packets: packets,
keyfetch: keyfetch
});
}
Verifier.prototype._consume_data = function(cb) {
var __iced_it, __iced_passed_deferral;
__iced_passed_deferral = iced.findDeferral(arguments);
__iced_it = (function(_this) {
var buf_hasher, done, err, go, klass, streamer;
return function*() {
var __iced_deferrals;
err = null;
if (_this.data_fn != null) {
err = null;
klass = _this._sig.hasher.klass;
streamer = streamers[_this._sig.hasher.algname]();
buf_hasher = function(buf) {
return streamer.update(buf);
};
go = true;
while (go) {
__iced_deferrals = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Verifier::_consume_data",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this.data_fn(buf_hasher, __iced_deferrals.defer({
assign_fn: (function() {
return function() {
err = arguments[0];
return done = arguments[1];
};
})(),
lineno: 101
}));
if (__iced_deferrals.await_exit()) {
yield;
}
if ((err != null) || done) {
go = false;
}
}
_this._sig.hasher = streamer;
}
return cb(err);
};
})(this)();
__iced_it.next();
return null;
};
Verifier.prototype._verify = function(cb) {
var __iced_it, __iced_passed_deferral;
__iced_passed_deferral = iced.findDeferral(arguments);
__iced_it = (function(_this) {
var data, err, opts;
return function*() {
var __iced_deferrals;
data = _this.data ? [
new Literal({
data: _this.data
})
] : [];
_this.literals = data;
opts = {
now: _this.now,
assert_pgp_hash: _this.assert_pgp_hash
};
__iced_deferrals = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Verifier::_verify",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this._sig.verify(data, __iced_deferrals.defer({
assign_fn: (function() {
return function() {
return err = arguments[0];
};
})(),
lineno: 113
}), opts);
if (__iced_deferrals.await_exit()) {
yield;
}
return cb(err);
};
})(this)();
__iced_it.next();
return null;
};
Verifier.prototype._make_literals = function(cb) {
if (!this.literals.length) {
this.literals.push(new Literal({
data: Buffer.from([])
}));
}
this.literals[0].push_sig(new packetsigs.Data({
sig: this._sig
}));
return cb(null);
};
Verifier.prototype.run = function(cb) {
var __iced_it, __iced_passed_deferral;
__iced_passed_deferral = iced.findDeferral(arguments);
__iced_it = (function(_this) {
var esc;
return function*() {
var __iced_deferrals, __iced_deferrals1, __iced_deferrals2, __iced_deferrals3, __iced_deferrals4;
esc = make_esc(cb, "Verifier::run");
__iced_deferrals = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Verifier::run",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this._find_signature(esc(__iced_deferrals.defer({
lineno: 128
})));
if (__iced_deferrals.await_exit()) {
yield;
}
__iced_deferrals1 = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Verifier::run",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this._fetch_key(esc(__iced_deferrals1.defer({
lineno: 129
})));
if (__iced_deferrals1.await_exit()) {
yield;
}
__iced_deferrals2 = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Verifier::run",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this._consume_data(esc(__iced_deferrals2.defer({
lineno: 130
})));
if (__iced_deferrals2.await_exit()) {
yield;
}
__iced_deferrals3 = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Verifier::run",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this._verify(esc(__iced_deferrals3.defer({
lineno: 131
})));
if (__iced_deferrals3.await_exit()) {
yield;
}
__iced_deferrals4 = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "Verifier::run",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
_this._make_literals(esc(__iced_deferrals4.defer({
lineno: 132
})));
if (__iced_deferrals4.await_exit()) {
yield;
}
return cb(null, _this.literals);
};
})(this)();
__iced_it.next();
return null;
};
return Verifier;
})(VerifierBase);
exports.sign = function(arg, cb) {
var __iced_it, __iced_passed_deferral, data, encoded, err, hash_streamer, now, s, signature, signing_key;
data = arg.data, hash_streamer = arg.hash_streamer, signing_key = arg.signing_key, now = arg.now;
__iced_passed_deferral = iced.findDeferral(arguments);
__iced_it = (function*() {
var __iced_deferrals;
s = new Signer({
data: data,
hash_streamer: hash_streamer,
signing_key: signing_key,
now: now
});
__iced_deferrals = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "exports.sign",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
s.run(__iced_deferrals.defer({
assign_fn: (function() {
return function() {
err = arguments[0];
encoded = arguments[1];
return signature = arguments[2];
};
})(),
lineno: 139
}));
if (__iced_deferrals.await_exit()) {
yield;
}
s.scrub();
return cb(err, encoded, signature);
})();
__iced_it.next();
return null;
};
exports.verify = function(arg, cb) {
var __iced_it, __iced_passed_deferral, assert_pgp_hash, data, data_fn, err, keyfetch, literals, now, packets, v;
data = arg.data, data_fn = arg.data_fn, packets = arg.packets, keyfetch = arg.keyfetch, now = arg.now, assert_pgp_hash = arg.assert_pgp_hash;
__iced_passed_deferral = iced.findDeferral(arguments);
__iced_it = (function*() {
var __iced_deferrals;
v = new Verifier({
data: data,
data_fn: data_fn,
packets: packets,
keyfetch: keyfetch,
now: now,
assert_pgp_hash: assert_pgp_hash
});
__iced_deferrals = new iced.Deferrals(__iced_it, {
parent: __iced_passed_deferral,
funcname: "exports.verify",
filename: "/home/runner/work/kbpgp/kbpgp/src/openpgp/detachsign.iced"
});
v.run(__iced_deferrals.defer({
assign_fn: (function() {
return function() {
err = arguments[0];
return literals = arguments[1];
};
})(),
lineno: 147
}));
if (__iced_deferrals.await_exit()) {
yield;
}
return cb(err, literals);
})();
__iced_it.next();
return null;
};
//# sourceMappingURL=detachsign.js.map