Page MenuHome GnuPG

enigmailSetCardPin.js
No OneTemporary

enigmailSetCardPin.js

/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/* global Components: false */
"use strict";
Components.utils.import("resource://enigmail/keyEditor.jsm"); /* global EnigmailKeyEditor: false */
Components.utils.import("resource://enigmail/log.jsm"); /* global EnigmailLog: false */
Components.utils.import("resource://enigmail/locale.jsm"); /* global EnigmailLocale: false */
Components.utils.import("resource://enigmail/dialog.jsm"); /* global EnigmailDialog: false */
Components.utils.import("resource://enigmail/gpgAgent.jsm"); /* global EnigmailGpgAgent: false */
Components.utils.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
const nsIEnigmail = Components.interfaces.nsIEnigmail;
const Ci = Components.interfaces;
const CHANGE_PIN = 'P';
const ADMIN_PIN = 'A';
const UNBLOCK_PIN = 'U';
var gAction = null;
function onLoad() {
setDlgContent(CHANGE_PIN);
}
function onAccept() {
var enigmailSvc = EnigmailCore.getService(window);
if (!enigmailSvc)
return false;
var pinItem1;
var pinItem2;
var minLen = 0;
var action;
switch (gAction) {
case CHANGE_PIN:
pinItem1 = "pinTxt";
pinItem2 = "pinRepeatTxt";
minLen = 6;
action = nsIEnigmail.CARD_PIN_CHANGE;
break;
case UNBLOCK_PIN:
pinItem1 = "pinTxt";
pinItem2 = "pinRepeatTxt";
minLen = 6;
action = nsIEnigmail.CARD_PIN_UNBLOCK;
break;
case ADMIN_PIN:
pinItem1 = "adminPinTxt";
pinItem2 = "adminPinRepeatTxt";
minLen = 8;
action = nsIEnigmail.CARD_ADMIN_PIN_CHANGE;
break;
}
var adminPin = "";
var oldPin = "";
var newPin = "";
var pinObserver = new changePinObserver();
EnigmailKeyEditor.cardChangePin(window,
action,
oldPin,
newPin,
adminPin,
pinObserver,
function _ChangePinCb(exitCode, errorMsg) {
if (exitCode !== 0) {
EnigmailDialog.info(window, EnigmailLocale.getString("cardPin.processFailed") + "\n" + pinObserver.result);
}
else
window.close();
});
return false;
}
function dlgEnable(item) {
document.getElementById(item).removeAttribute("collapsed");
}
function dlgDisable(item) {
document.getElementById(item).setAttribute("collapsed", "true");
}
function setDlgContent(sel) {
var enigmailSvc = EnigmailCore.getService(window);
if (!enigmailSvc)
return;
gAction = sel;
dlgDisable("currAdminPinRow");
dlgDisable("adminPinRow");
dlgDisable("adminPinRepeatRow");
dlgDisable("currPinRow");
dlgDisable("pinRow");
dlgDisable("pinRepeatRow");
return;
}
function changePinObserver() {}
changePinObserver.prototype = {
_data: "",
result: "",
QueryInterface: function(iid) {
if (iid.equals(Ci.nsIEnigMimeReadCallback) ||
iid.equals(Ci.nsISupports))
return this;
throw Components.results.NS_NOINTERFACE;
},
onDataAvailable: function(data) {
var ret = "";
EnigmailLog.DEBUG("enigmailSetCardPin: changePinObserver.onDataAvailable: data=" + data + "\n");
if (data.indexOf("[GNUPG:] SC_OP_FAILURE") >= 0) {
this.result = this._data;
}
else if (data.indexOf("[GNUPG:] BAD_PASSPHRASE") >= 0) {
this.result = EnigmailLocale.getString("badPhrase");
return data;
}
else {
this._data = data;
}
return "";
}
};

File Metadata

Mime Type
text/plain
Expires
Thu, Feb 26, 7:17 PM (15 h, 28 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
24/22/2f35e29eaa1f5abd5a274a218fd6

Event Timeline