diff --git a/network/web/firefox/files/0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch b/network/web/firefox/files/0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch new file mode 100644 index 0000000000..99c05bb2bb --- /dev/null +++ b/network/web/firefox/files/0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch @@ -0,0 +1,70 @@ +From c3acffdb8e0cd46561d2c5131227dc92967cf3d2 Mon Sep 17 00:00:00 2001 +From: Kevin Jacobs +Date: Tue, 14 Apr 2020 18:32:19 +0000 +Subject: [PATCH] Bug 1624128 - Update CK_GCM_PARAMS uses for PKCS11 v3.0 + definition r=keeler + +This patch initializes the ulIvBits member of CK_GCM_PARAMS, which is new in PKCS11 v3. + +For libprio, we instead define NSS_PKCS11_2_0_COMPAT, which yields the old struct definition. + +Differential Revision: https://phabricator.services.mozilla.com/D67740 +--- + dom/crypto/WebCryptoTask.cpp | 1 + + netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c | 1 + + security/manager/ssl/OSKeyStore.cpp | 1 + + third_party/prio/moz.build | 5 +++++ + 4 files changed, 8 insertions(+) + +diff --git a/dom/crypto/WebCryptoTask.cpp b/dom/crypto/WebCryptoTask.cpp +index ad0d1432738f..60a265972d21 100644 +--- a/dom/crypto/WebCryptoTask.cpp ++++ b/dom/crypto/WebCryptoTask.cpp +@@ -600,6 +600,7 @@ class AesTask : public ReturnArrayBufferViewTask, public DeferredData { + case CKM_AES_GCM: + gcmParams.pIv = mIv.Elements(); + gcmParams.ulIvLen = mIv.Length(); ++ gcmParams.ulIvBits = gcmParams.ulIvLen * 8; + gcmParams.pAAD = mAad.Elements(); + gcmParams.ulAADLen = mAad.Length(); + gcmParams.ulTagBits = mTagLength; +diff --git a/netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c b/netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c +index e1fdbe36fbf8..2be2ce932ddf 100644 +--- a/netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c ++++ b/netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c +@@ -271,6 +271,7 @@ static srtp_err_status_t srtp_aes_gcm_nss_do_crypto(void *cv, + + c->params.pIv = c->iv; + c->params.ulIvLen = GCM_IV_LEN; ++ c->params.ulIvBits = GCM_IV_LEN * 8; + c->params.pAAD = c->aad; + c->params.ulAADLen = c->aad_size; + +diff --git a/security/manager/ssl/OSKeyStore.cpp b/security/manager/ssl/OSKeyStore.cpp +index 00bc918c5fdd..c83a559d9c1e 100644 +--- a/security/manager/ssl/OSKeyStore.cpp ++++ b/security/manager/ssl/OSKeyStore.cpp +@@ -663,6 +663,7 @@ nsresult AbstractOSKeyStore::DoCipher(const UniquePK11SymKey& aSymKey, + CK_GCM_PARAMS gcm_params; + gcm_params.pIv = const_cast(ivp); + gcm_params.ulIvLen = mIVLength; ++ gcm_params.ulIvBits = gcm_params.ulIvLen * 8; + gcm_params.ulTagBits = 128; + gcm_params.pAAD = nullptr; + gcm_params.ulAADLen = 0; +diff --git a/third_party/prio/moz.build b/third_party/prio/moz.build +index 3e10fe71ce8e..0a6e3c74a269 100644 +--- a/third_party/prio/moz.build ++++ b/third_party/prio/moz.build +@@ -42,3 +42,8 @@ SOURCES += [ + ] + + FINAL_LIBRARY = 'xul' ++ ++# Use PKCS11 v2 struct definitions for now, otherwise NSS requires ++# CK_GCM_PARAMS.ulIvBits to be set. This workaround is only required ++# until NSS 3.52 RTM and upstream correctly initializes the field. ++DEFINES['NSS_PKCS11_2_0_COMPAT'] = True +-- +2.26.2 + diff --git a/network/web/firefox/pspec.xml b/network/web/firefox/pspec.xml index 3eb82bc791..621f1b70f8 100644 --- a/network/web/firefox/pspec.xml +++ b/network/web/firefox/pspec.xml @@ -15,7 +15,7 @@ app:gui Firefox Web Browser It is more secure and faster to browse the web with Firefox web browser. You can personalize your web browser with many specifications that is not enough to explain in two sentences. - https://ftp.mozilla.org/pub/firefox/releases/76.0/source/firefox-76.0.source.tar.xz + https://ftp.mozilla.org/pub/firefox/releases/76.0.1/source/firefox-76.0.1.source.tar.xz mozconfig @@ -66,7 +66,7 @@ gdb-devel - + 0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch @@ -550,6 +550,13 @@ + + 2020-05-12 + 76.0.1 + Version bump. + Mustafa Cinasal + muscnsl@gmail.com + 2020-05-05 76.0