diff --git a/extra/firefox/0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch b/extra/firefox/0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch new file mode 100644 index 000000000..99c05bb2b --- /dev/null +++ b/extra/firefox/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/extra/firefox/PKGBUILD b/extra/firefox/PKGBUILD index ae02855b7..5c17181b2 100644 --- a/extra/firefox/PKGBUILD +++ b/extra/firefox/PKGBUILD @@ -10,8 +10,8 @@ buildarch=12 highmem=1 pkgname=firefox -pkgver=76.0 -pkgrel=2 +pkgver=76.0.1 +pkgrel=1 pkgdesc="Standalone web browser from mozilla.org" arch=(x86_64) license=(MPL GPL LGPL) @@ -30,12 +30,14 @@ options=(!emptydirs !makeflags !strip) source=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz{,.asc} arm.patch build-arm-libopus.patch + 0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch 0001-Use-remoting-name-for-GDK-application-names.patch $pkgname.desktop) -sha256sums=('3b7b97b0b0625fc6ec23ee28d425988c679d3a56f362d62fd3b225a5d50afdc8' +sha256sums=('f61761e32774a6bdfedd5937c4992fbe5e24c3df057c2b9a559fcd0d038777c3' 'SKIP' 'bc00516032330760444939c516a60c78f868631e1b37f075f0fe71a53737b966' '2d4d91f7e35d0860225084e37ec320ca6cae669f6c9c8fe7735cdbd542e3a7c9' + '215ca2cd2994d787c4748b8e76acdc21932700ab43fa6a32aa8de3ce4b380111' '5f7ac724a5c5afd9322b1e59006f4170ea5354ca1e0e60dab08b7784c2d8463c' '298eae9de76ec53182f38d5c549d0379569916eebf62149f9d7f4a7edef36abf') validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases @@ -57,6 +59,9 @@ prepare() { mkdir mozbuild cd firefox-$pkgver + # https://bugs.archlinux.org/task/66549 + patch -Np1 -i ../0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch + # https://bugzilla.mozilla.org/show_bug.cgi?id=1530052 patch -Np1 -i ../0001-Use-remoting-name-for-GDK-application-names.patch @@ -98,6 +103,10 @@ ac_add_options --with-mozilla-api-keyfile=${PWD@Q}/mozilla-api-key # ALARM ac_add_options --disable-webrtc +# System libraries +ac_add_options --with-system-nspr +ac_add_options --with-system-nss + # Features ac_add_options --enable-alsa ac_add_options --enable-jack