Bug 1525872 PushEvent.data is null for push messages encrypted with aes128gcm r=JanH

Added check for AES128GCM encoding since we won't have separate enckey and cryptokey but rather encoded in the body.

Differential Revision: https://phabricator.services.mozilla.com/D19806

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Andrei Lazar 2019-02-18 08:15:26 +00:00
parent a53a4ff68a
commit db07b8d19c

View File

@ -113,19 +113,26 @@ var PushServiceAndroidGCM = {
let message = null;
let headers = null;
if (data.message && data.enc && (data.enckey || data.cryptokey)) {
headers = {
encryption_key: data.enckey,
crypto_key: data.cryptokey,
encryption: data.enc,
encoding: data.con,
};
if (data.message) {
if (data.enc && (data.enckey || data.cryptokey)) {
headers = {
encryption_key: data.enckey,
crypto_key: data.cryptokey,
encryption: data.enc,
encoding: data.con,
};
} else if (data.con == 'aes128gcm') {
headers = {
encoding: data.con,
};
}
// Ciphertext is (urlsafe) Base 64 encoded.
message = ChromeUtils.base64URLDecode(data.message, {
// The Push server may append padding.
padding: "ignore",
});
}
return { headers, message };
},