revoke.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. // Generated by IcedCoffeeScript 1.7.1-c
  2. (function() {
  3. var ArgumentParser, Base, Command, E, PackageJson, User, add_option_dict, colors, constants, env, format_fingerprint, iced, log, make_esc, master_ring, prompt_yn, req, session, __iced_k, __iced_k_noop,
  4. __hasProp = {}.hasOwnProperty,
  5. __extends = 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; };
  6. iced = require('iced-runtime').iced;
  7. __iced_k = __iced_k_noop = function() {};
  8. Base = require('./base').Base;
  9. log = require('../log');
  10. ArgumentParser = require('argparse').ArgumentParser;
  11. add_option_dict = require('./argparse').add_option_dict;
  12. PackageJson = require('../package').PackageJson;
  13. session = require('../session');
  14. make_esc = require('iced-error').make_esc;
  15. prompt_yn = require('../prompter').prompt_yn;
  16. log = require('../log');
  17. req = require('../req');
  18. E = require('../err').E;
  19. User = require('../user').User;
  20. constants = require('../constants').constants;
  21. format_fingerprint = require('pgp-utils').util.format_fingerprint;
  22. env = require('../env').env;
  23. master_ring = require('../keyring').master_ring;
  24. colors = require('../colors');
  25. exports.Command = Command = (function(_super) {
  26. __extends(Command, _super);
  27. function Command() {
  28. return Command.__super__.constructor.apply(this, arguments);
  29. }
  30. Command.prototype.OPTS = {
  31. f: {
  32. alias: "force",
  33. action: "storeTrue",
  34. help: "don't ask interactively, just do it!"
  35. }
  36. };
  37. Command.prototype.use_session = function() {
  38. return true;
  39. };
  40. Command.prototype.add_subcommand_parser = function(scp) {
  41. var name, opts, sub;
  42. opts = {
  43. aliases: [],
  44. help: "revoke the currently active PGP keys"
  45. };
  46. name = "revoke";
  47. sub = scp.addParser(name, opts);
  48. add_option_dict(sub, this.OPTS);
  49. sub.addArgument(["search"], {
  50. nargs: '?'
  51. });
  52. return opts.aliases.concat([name]);
  53. };
  54. Command.prototype.get_the_go_ahead = function(cb) {
  55. var ans, err, opts, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  56. __iced_k = __iced_k_noop;
  57. ___iced_passed_deferral = iced.findDeferral(arguments);
  58. err = null;
  59. (function(_this) {
  60. return (function(__iced_k) {
  61. if (!_this.argv.force) {
  62. opts = {
  63. prompt: "DANGER ZONE! Really revoke your key and cancel all signatures",
  64. defval: false
  65. };
  66. (function(__iced_k) {
  67. __iced_deferrals = new iced.Deferrals(__iced_k, {
  68. parent: ___iced_passed_deferral,
  69. filename: "/home/jacko/node-client/src/command/revoke.iced",
  70. funcname: "Command.get_the_go_ahead"
  71. });
  72. prompt_yn(opts, __iced_deferrals.defer({
  73. assign_fn: (function() {
  74. return function() {
  75. err = arguments[0];
  76. return ans = arguments[1];
  77. };
  78. })(),
  79. lineno: 54
  80. }));
  81. __iced_deferrals._fulfill();
  82. })(function() {
  83. return __iced_k(!ans ? err = new E.CancelError("No go-ahead given") : void 0);
  84. });
  85. } else {
  86. return __iced_k();
  87. }
  88. });
  89. })(this)((function(_this) {
  90. return function() {
  91. return cb(err);
  92. };
  93. })(this));
  94. };
  95. Command.prototype.revoke_key = function(_arg, cb) {
  96. var args, err, pwh, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  97. __iced_k = __iced_k_noop;
  98. ___iced_passed_deferral = iced.findDeferral(arguments);
  99. pwh = _arg.pwh;
  100. args = {
  101. pwh: pwh
  102. };
  103. (function(_this) {
  104. return (function(__iced_k) {
  105. __iced_deferrals = new iced.Deferrals(__iced_k, {
  106. parent: ___iced_passed_deferral,
  107. filename: "/home/jacko/node-client/src/command/revoke.iced",
  108. funcname: "Command.revoke_key"
  109. });
  110. req.post({
  111. endpoint: "nuke",
  112. args: args
  113. }, __iced_deferrals.defer({
  114. assign_fn: (function() {
  115. return function() {
  116. return err = arguments[0];
  117. };
  118. })(),
  119. lineno: 62
  120. }));
  121. __iced_deferrals._fulfill();
  122. });
  123. })(this)((function(_this) {
  124. return function() {
  125. return cb(err);
  126. };
  127. })(this));
  128. };
  129. Command.prototype.show_key = function(cb) {
  130. var err, err_public, err_secret, esc, fp, me, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  131. __iced_k = __iced_k_noop;
  132. ___iced_passed_deferral = iced.findDeferral(arguments);
  133. esc = make_esc(cb, "show_key");
  134. (function(_this) {
  135. return (function(__iced_k) {
  136. __iced_deferrals = new iced.Deferrals(__iced_k, {
  137. parent: ___iced_passed_deferral,
  138. filename: "/home/jacko/node-client/src/command/revoke.iced",
  139. funcname: "Command.show_key"
  140. });
  141. User.load_me({}, esc(__iced_deferrals.defer({
  142. assign_fn: (function() {
  143. return function() {
  144. return me = arguments[0];
  145. };
  146. })(),
  147. lineno: 69
  148. })));
  149. __iced_deferrals._fulfill();
  150. });
  151. })(this)((function(_this) {
  152. return function() {
  153. fp = me.fingerprint(true);
  154. err = null;
  155. (function(__iced_k) {
  156. if (fp != null) {
  157. log.warn("Loaded keys for " + (env().get_username()) + "@" + constants.canonical_host);
  158. log.warn(" Key fingerprint: " + (format_fingerprint(fp)));
  159. (function(__iced_k) {
  160. __iced_deferrals = new iced.Deferrals(__iced_k, {
  161. parent: ___iced_passed_deferral,
  162. filename: "/home/jacko/node-client/src/command/revoke.iced",
  163. funcname: "Command.show_key"
  164. });
  165. master_ring().gpg({
  166. args: ["-k", fp]
  167. }, __iced_deferrals.defer({
  168. assign_fn: (function() {
  169. return function() {
  170. return err_public = arguments[0];
  171. };
  172. })(),
  173. lineno: 75
  174. }));
  175. __iced_deferrals._fulfill();
  176. })(function() {
  177. (function(__iced_k) {
  178. __iced_deferrals = new iced.Deferrals(__iced_k, {
  179. parent: ___iced_passed_deferral,
  180. filename: "/home/jacko/node-client/src/command/revoke.iced",
  181. funcname: "Command.show_key"
  182. });
  183. master_ring().gpg({
  184. args: ["-K", fp]
  185. }, __iced_deferrals.defer({
  186. assign_fn: (function() {
  187. return function() {
  188. return err_secret = arguments[0];
  189. };
  190. })(),
  191. lineno: 76
  192. }));
  193. __iced_deferrals._fulfill();
  194. })(function() {
  195. log.warn(" - Public key: " + (typeof err_public !== "undefined" && err_public !== null ? 'unfound' : colors.bold('found')));
  196. return __iced_k(log.warn(" - Secret key: " + (typeof err_secret !== "undefined" && err_secret !== null ? 'unfound' : colors.bold('found'))));
  197. });
  198. });
  199. } else {
  200. return __iced_k(err = new E.NoLocalKeyError("No local key to revoke!"));
  201. }
  202. })(function() {
  203. return cb(err);
  204. });
  205. };
  206. })(this));
  207. };
  208. Command.prototype.run = function(cb) {
  209. var email_or_username, esc, login_session, passphrase, pwh_buffer, salt, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  210. __iced_k = __iced_k_noop;
  211. ___iced_passed_deferral = iced.findDeferral(arguments);
  212. esc = make_esc(cb, "run");
  213. (function(_this) {
  214. return (function(__iced_k) {
  215. __iced_deferrals = new iced.Deferrals(__iced_k, {
  216. parent: ___iced_passed_deferral,
  217. filename: "/home/jacko/node-client/src/command/revoke.iced",
  218. funcname: "Command.run"
  219. });
  220. session.login(esc(__iced_deferrals.defer({
  221. lineno: 87
  222. })));
  223. __iced_deferrals._fulfill();
  224. });
  225. })(this)((function(_this) {
  226. return function() {
  227. (function(__iced_k) {
  228. __iced_deferrals = new iced.Deferrals(__iced_k, {
  229. parent: ___iced_passed_deferral,
  230. filename: "/home/jacko/node-client/src/command/revoke.iced",
  231. funcname: "Command.run"
  232. });
  233. session.get_email_or_username_i(esc(__iced_deferrals.defer({
  234. assign_fn: (function() {
  235. return function() {
  236. return email_or_username = arguments[0];
  237. };
  238. })(),
  239. lineno: 88
  240. })));
  241. __iced_deferrals._fulfill();
  242. })(function() {
  243. (function(__iced_k) {
  244. __iced_deferrals = new iced.Deferrals(__iced_k, {
  245. parent: ___iced_passed_deferral,
  246. filename: "/home/jacko/node-client/src/command/revoke.iced",
  247. funcname: "Command.run"
  248. });
  249. session.get_passphrase({}, esc(__iced_deferrals.defer({
  250. assign_fn: (function() {
  251. return function() {
  252. return passphrase = arguments[0];
  253. };
  254. })(),
  255. lineno: 89
  256. })));
  257. __iced_deferrals._fulfill();
  258. })(function() {
  259. (function(__iced_k) {
  260. __iced_deferrals = new iced.Deferrals(__iced_k, {
  261. parent: ___iced_passed_deferral,
  262. filename: "/home/jacko/node-client/src/command/revoke.iced",
  263. funcname: "Command.run"
  264. });
  265. session.get_salt({
  266. email_or_username: email_or_username
  267. }, esc(__iced_deferrals.defer({
  268. assign_fn: (function() {
  269. return function() {
  270. salt = arguments[0];
  271. return login_session = arguments[1];
  272. };
  273. })(),
  274. lineno: 90
  275. })));
  276. __iced_deferrals._fulfill();
  277. })(function() {
  278. (function(__iced_k) {
  279. __iced_deferrals = new iced.Deferrals(__iced_k, {
  280. parent: ___iced_passed_deferral,
  281. filename: "/home/jacko/node-client/src/command/revoke.iced",
  282. funcname: "Command.run"
  283. });
  284. session.gen_pwh({
  285. passphrase: passphrase,
  286. salt: salt
  287. }, esc(__iced_deferrals.defer({
  288. assign_fn: (function() {
  289. return function() {
  290. return pwh_buffer = arguments[0];
  291. };
  292. })(),
  293. lineno: 91
  294. })));
  295. __iced_deferrals._fulfill();
  296. })(function() {
  297. (function(__iced_k) {
  298. __iced_deferrals = new iced.Deferrals(__iced_k, {
  299. parent: ___iced_passed_deferral,
  300. filename: "/home/jacko/node-client/src/command/revoke.iced",
  301. funcname: "Command.run"
  302. });
  303. _this.show_key(esc(__iced_deferrals.defer({
  304. lineno: 92
  305. })));
  306. __iced_deferrals._fulfill();
  307. })(function() {
  308. (function(__iced_k) {
  309. __iced_deferrals = new iced.Deferrals(__iced_k, {
  310. parent: ___iced_passed_deferral,
  311. filename: "/home/jacko/node-client/src/command/revoke.iced",
  312. funcname: "Command.run"
  313. });
  314. _this.get_the_go_ahead(esc(__iced_deferrals.defer({
  315. lineno: 93
  316. })));
  317. __iced_deferrals._fulfill();
  318. })(function() {
  319. (function(__iced_k) {
  320. __iced_deferrals = new iced.Deferrals(__iced_k, {
  321. parent: ___iced_passed_deferral,
  322. filename: "/home/jacko/node-client/src/command/revoke.iced",
  323. funcname: "Command.run"
  324. });
  325. _this.revoke_key({
  326. pwh: pwh_buffer.toString('hex')
  327. }, esc(__iced_deferrals.defer({
  328. lineno: 94
  329. })));
  330. __iced_deferrals._fulfill();
  331. })(function() {
  332. log.info("success!");
  333. return cb(null);
  334. });
  335. });
  336. });
  337. });
  338. });
  339. });
  340. });
  341. };
  342. })(this));
  343. };
  344. return Command;
  345. })(Base);
  346. }).call(this);