Skip to content

Commit

Permalink
Bug 1692899 - Don't use a file for passing OpenPGP signature data bet…
Browse files Browse the repository at this point in the history
…ween modules. r=mkmelin DONTBUILD

--HG--
extra : amend_source : ac80d351c55bd8187d682d58bda0887da98d9d13
  • Loading branch information
kaie committed Mar 25, 2021
1 parent 0a25be0 commit 5c8b4f1
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 20 deletions.
14 changes: 10 additions & 4 deletions mail/extensions/openpgp/content/modules/RNP.jsm
Expand Up @@ -1439,10 +1439,16 @@ var RNP = {
result.userId = "";
result.keyId = "";

let input_sig = await RNPLib.createInputFromPath(options.mimeSignatureFile);
if (!input_sig) {
return result;
}
let sig_arr = options.mimeSignatureData.split("").map(e => e.charCodeAt());
var sig_array = ctypes.uint8_t.array()(sig_arr);

let input_sig = new RNPLib.rnp_input_t();
RNPLib.rnp_input_from_memory(
input_sig.address(),
sig_array,
sig_array.length,
false
);

let input_from_memory = new RNPLib.rnp_input_t();

Expand Down
Expand Up @@ -292,7 +292,7 @@ class RNPCryptoAPI extends CryptoAPI {
//options.verifyOnly = true;
//options.uiFlags = EnigmailConstants.UI_PGP_MIME;

if (!options.mimeSignatureFile) {
if (!options.mimeSignatureData) {
throw new Error("inline verify not yet implemented");
}
return RNP.verifyDetached(signed, options);
Expand Down
16 changes: 1 addition & 15 deletions mail/extensions/openpgp/content/modules/mimeVerify.jsm
Expand Up @@ -21,7 +21,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
EnigmailCryptoAPI: "chrome://openpgp/content/modules/cryptoAPI.jsm",
EnigmailData: "chrome://openpgp/content/modules/data.jsm",
EnigmailDecryption: "chrome://openpgp/content/modules/decryption.jsm",
EnigmailFiles: "chrome://openpgp/content/modules/files.jsm",
EnigmailFuncs: "chrome://openpgp/content/modules/funcs.jsm",
EnigmailLog: "chrome://openpgp/content/modules/log.jsm",
EnigmailMime: "chrome://openpgp/content/modules/mime.jsm",
Expand Down Expand Up @@ -535,22 +534,13 @@ MimeVerify.prototype = {
var windowManager = Services.wm;
var win = windowManager.getMostRecentWindow(null);

// create temp file holding signature data
this.sigFile = EnigmailFiles.getTempDirObj();
this.sigFile.append("data.sig");
this.sigFile.createUnique(this.sigFile.NORMAL_FILE_TYPE, 0x180);
EnigmailFiles.writeFileContents(this.sigFile, this.sigData, 0x180);

if (!EnigmailDecryption.isReady(win)) {
return;
}

let sigFileName = EnigmailFiles.getEscapedFilename(
EnigmailFiles.getFilePath(this.sigFile)
);
let options = {
fromAddr: EnigmailDecryption.getFromAddr(win),
mimeSignatureFile: sigFileName,
mimeSignatureData: this.sigData,
};
const cApi = EnigmailCryptoAPI();

Expand All @@ -576,10 +566,6 @@ MimeVerify.prototype = {

this.displayStatus();
}

if (this.sigFile) {
this.sigFile.remove(false);
}
}
},

Expand Down

0 comments on commit 5c8b4f1

Please sign in to comment.