Active Post Quantum ZRTP for official build.

Upgrade secure shield quality and display it in call instead of generic secure shield.
This commit is contained in:
Julien Wadel 2022-09-28 15:40:27 +02:00
parent 8213fd005f
commit edf2c3c71e
14 changed files with 96 additions and 299 deletions

View file

@ -10,6 +10,7 @@ job-archlinux-latest-ninja-clang:
- schedules
variables:
CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: clang
CXX: clang++
extends: .job-linux-desktop
@ -27,6 +28,7 @@ job-archlinux-latest-makefile-gcc:
- $NIGHTLY_MASTER
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
extends: .job-linux-desktop
@ -41,6 +43,7 @@ job-archlinux-latest-makefile-clang:
- $NIGHTLY_MASTER
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: clang
CXX: clang++
extends: .job-linux-desktop
@ -55,6 +58,7 @@ job-archlinux-latest-ninja-gcc:
- $NIGHTLY_MASTER
variables:
CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
extends: .job-linux-desktop
@ -77,7 +81,7 @@ job-archlinux-latest-ninja-clang-novideo:
variables:
- $NIGHTLY_MASTER
variables:
CMAKE_OPTIONS: -DENABLE_VIDEO=NO
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_PQCRYPTO=OFF
CMAKE_GENERATOR: Ninja
CC: clang
CXX: clang++

View file

@ -38,6 +38,7 @@ job-centos7-ninja-gcc:
- schedules
variables:
CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
extends: .job-linux-desktop
@ -73,7 +74,7 @@ job-centos7-ninja-gcc-package:
variables:
- $DEPLOY_LINUX_CENTOS7
variables:
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON
CMAKE_GENERATOR: Ninja
CC: gcc
CXX: g++

View file

@ -7,6 +7,7 @@ job-debian10-ninja-gcc:
- schedules
variables:
CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
extends: .job-linux-desktop
@ -23,6 +24,7 @@ job-debian10-makefile-gcc:
- $NIGHTLY_MASTER
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
@ -36,7 +38,7 @@ job-debian10-ninja-gcc-novideo:
variables:
- $NIGHTLY_MASTER
variables:
CMAKE_OPTIONS: -DENABLE_VIDEO=NO
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_PQCRYPTO=OFF
CMAKE_GENERATOR: Ninja
CC: gcc
CXX: g++
@ -50,7 +52,7 @@ job-debian10-ninja-gcc-smallsdk:
variables:
- $NIGHTLY_MASTER
variables:
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_ADVANCED_IM=NO -DENABLE_DB_STORAGE=NO
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_ADVANCED_IM=NO -DENABLE_DB_STORAGE=NO -DENABLE_PQCRYPTO=OFF
CMAKE_GENERATOR: Ninja
CC: gcc
CXX: g++
@ -65,6 +67,7 @@ job-debian10-ninja-clang:
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian10:$DEBIAN_10_IMAGE_VERSION
variables:
CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: clang
CXX: clang++
extends: .job-linux-desktop
@ -87,6 +90,7 @@ job-debian10-makefile-clang:
- $DEPLOY_LINUX
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: clang
CXX: clang++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
@ -105,7 +109,7 @@ job-debian10-makefile-clang-package:
- $NIGHTLY_MASTER
- $DEPLOY_LINUX
variables:
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DENABLE_G729=ON
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON
extends: job-debian10-makefile-clang
artifacts:
paths:

View file

@ -10,6 +10,7 @@ job-debian8-makefile-gcc:
- schedules
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
@ -25,6 +26,7 @@ job-debian8-makefile-clang:
- $NIGHTLY_MASTER
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: clang
CXX: clang++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS

View file

@ -8,6 +8,7 @@ job-debian9-ninja-gcc:
- schedules
variables:
CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
extends: .job-linux-desktop
@ -18,7 +19,7 @@ job-debian9-ninja-gcc-smallsdk:
refs:
- schedules
variables:
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_ADVANCED_IM=NO -DENABLE_DB_STORAGE=NO
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_ADVANCED_IM=NO -DENABLE_DB_STORAGE=NO -DENABLE_PQCRYPTO=OFF
extends: job-debian9-ninja-gcc
@ -34,6 +35,7 @@ job-debian9-makefile-gcc:
- $NIGHTLY_MASTER
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
@ -44,7 +46,7 @@ job-debian9-ninja-gcc-novideo:
variables:
- $NIGHTLY_MASTER
variables:
CMAKE_OPTIONS: -DENABLE_VIDEO=NO
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_PQCRYPTO=OFF
extends: job-debian9-ninja-gcc
@ -55,7 +57,7 @@ job-debian9-ninja-clang:
- $NIGHTLY_MASTER
image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-debian9-qt-fuse-wget-gpg2:$DEBIAN_9_QT_IMAGE_VERSION
variables:
CMAKE_OPTIONS: -DENABLE_DOC=ON -DENABLE_G729=ON
CMAKE_OPTIONS: -DENABLE_DOC=ON -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON
CMAKE_GENERATOR: Ninja
CC: clang
CXX: clang++
@ -66,7 +68,7 @@ job-debian9-ninja-clang-novideo:
variables:
- $NIGHTLY_MASTER
variables:
CMAKE_OPTIONS: -DENABLE_VIDEO=NO
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_PQCRYPTO=OFF
extends: job-debian9-ninja-clang
job-debian9-makefile-clang:
@ -77,7 +79,7 @@ job-debian9-makefile-clang:
- $NIGHTLY_MASTER
- $DEPLOY_PLUGINS
variables:
CMAKE_OPTIONS: -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON
CMAKE_OPTIONS: -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON
CMAKE_GENERATOR: Unix Makefiles
CC: clang
CXX: clang++
@ -118,7 +120,7 @@ job-debian9-makefile-clang-package:
- $PACKAGE_LINUX
- $DEPLOY_LINUX
variables:
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON -DLINPHONE_SDK_MAKE_RELEASE_FILE_URL=$MAKE_RELEASE_FILE_URL/$LINUX_PLATFORM/$APP_FOLDER
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON -DLINPHONE_SDK_MAKE_RELEASE_FILE_URL=$MAKE_RELEASE_FILE_URL/$LINUX_PLATFORM/$APP_FOLDER -DENABLE_PQCRYPTO=ON
CMAKE_GENERATOR: Unix Makefiles
CC: clang
CXX: clang++

View file

@ -7,6 +7,7 @@ job-ubuntu-rolling-ninja-clang:
- schedules
variables:
CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: clang
CXX: clang++
extends: .job-linux-desktop
@ -26,6 +27,7 @@ job-ubuntu-rolling-makefile-gcc:
- $NIGHTLY_MASTER
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
@ -40,6 +42,7 @@ job-ubuntu-rolling-makefile-clang:
- $NIGHTLY_MASTER
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: clang
CXX: clang++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
@ -54,6 +57,7 @@ job-ubuntu-rolling-ninja-gcc:
- $NIGHTLY_MASTER
variables:
CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
CC: gcc
CXX: g++
extends: .job-linux-desktop
@ -64,7 +68,7 @@ job-ubuntu-rolling-ninja-gcc-novideo:
variables:
- $NIGHTLY_MASTER
variables:
CMAKE_OPTIONS: -DENABLE_VIDEO=NO
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_PQCRYPTO=OFF
extends: job-ubuntu-rolling-ninja-gcc
@ -73,7 +77,7 @@ job-ubuntu-rolling-ninja-clang-novideo:
variables:
- $NIGHTLY_MASTER
variables:
CMAKE_OPTIONS: -DENABLE_VIDEO=NO
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_PQCRYPTO=OFF
extends: job-ubuntu-rolling-ninja-clang
#################################################

View file

@ -45,6 +45,7 @@ job-macosx-ninja:
- schedules
variables:
CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
extends: .job-macosx-desktop
#################################################
@ -58,6 +59,7 @@ job-macosx-makefile:
- $DEPLOY_PLUGINS
variables:
CMAKE_GENERATOR: Unix Makefiles
CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
extends: .job-macosx-desktop
@ -66,7 +68,7 @@ job-macosx-ninja-novideo:
variables:
- $NIGHTLY_MASTER
variables:
CMAKE_OPTIONS: -DENABLE_VIDEO=NO
CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_PQCRYPTO=ON
CMAKE_GENERATOR: Ninja
extends: .job-macosx-desktop

View file

@ -10,7 +10,7 @@
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $DOCKER_UPDATE == null && $SKIP_WINDOWS == null
- if: $CI_PIPELINE_SOURCE == "schedule" && $DOCKER_UPDATE == null && $SKIP_WINDOWS == null
variables:
CMAKE_OPTIONS: -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DENABLE_G729=ON
CMAKE_OPTIONS: -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON
LINPHONESDK_PLATFORM: Desktop
OUTPUT_ZIP_FOLDER: win64
MINGW_TYPE: mingw64
@ -100,7 +100,7 @@
.windows-vs2019-msvc:
extends: .windows-vs2019
variables:
CMAKE_OPTIONS: -DENABLE_UNIT_TESTS=ON -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DENABLE_G729=ON
CMAKE_OPTIONS: -DENABLE_UNIT_TESTS=ON -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON
LINPHONESDK_PLATFORM: Desktop
CMAKE_GENERATOR: "Visual Studio 16 2019"
BUILD_TARGET: install
@ -156,7 +156,7 @@ vs2019-win64-package:
- if: $PACKAGE_WINDOWS
- if: $DEPLOY_WINDOWS
variables:
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DENABLE_G729=ON -DLINPHONE_SDK_MAKE_RELEASE_FILE_URL=$MAKE_RELEASE_FILE_URL/$WINDOWS_PLATFORM/$APP_FOLDER
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DENABLE_G729=ON -DLINPHONE_SDK_MAKE_RELEASE_FILE_URL=$MAKE_RELEASE_FILE_URL/$WINDOWS_PLATFORM/$APP_FOLDER -DENABLE_PQCRYPTO=ON
#################################################

View file

@ -1,23 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.1"
id="svg2"
width="15"
height="15"
viewBox="0 0 15 15"
fill="none"
version="1.1"
id="svg10"
sodipodi:docname="secure_pq_zrtp.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs6" />
id="defs14" />
<sodipodi:namedview
id="namedview4"
id="namedview12"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
@ -25,275 +23,35 @@
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
width="15px"
inkscape:zoom="37.447237"
inkscape:cx="3.0709876"
inkscape:cy="10.094203"
inkscape:zoom="25.052632"
inkscape:cx="11.415966"
inkscape:cy="11.296218"
inkscape:window-width="1920"
inkscape:window-height="1043"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-height="1163"
inkscape:window-x="1920"
inkscape:window-y="500"
inkscape:window-maximized="1"
inkscape:current-layer="g8" />
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g8">
<image
width="12.814071"
height="15"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
"
id="image10"
x="1.1"
y="0" />
</g>
inkscape:current-layer="svg10" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M 7.6357719,14.961926 C 7.5928359,14.986515 7.5442639,15 7.495693,15 7.449704,15 7.404885,14.988329 7.3635906,14.964759 7.2939012,14.925778 5.6359424,13.976423 4.0136432,12.026266 2.5159402,10.223624 0.77984819,7.1954764 1.0229343,3.0055071 1.030208,2.8834212 1.1200754,2.7812561 1.2418528,2.7567007 4.6204301,2.0887976 7.226094,0.18123082 7.3351961,0.09991531 c 0.00376,-0.0027801 0.00822,-0.0064867 0.012912,-0.0092668 l 0.066866,-0.04424872 c 0.097143,-0.06509908 0.2264332,-0.06162404 0.319823,0.0099617 0.025571,0.01992355 2.6258409,1.98377871 6.0217429,2.65516041 0.122002,0.023626 0.211639,0.1267206 0.219214,0.2488064 0.46012,7.9474137 -5.7745014,11.6786487 -6.3141698,11.9853937 -0.00845,0.0053 -0.016653,0.01178 -0.025812,0.0162 z"
fill="#96c11f"
id="path2"
style="stroke-width:0.114041" />
<path
d="m 9.1652437,6.9122335 c 0,1.1273286 -0.2080697,2.1342711 -0.5325296,2.8487694 C 8.470335,10.118569 8.2844391,10.390549 8.0924603,10.56936 7.902008,10.746744 7.7186486,10.821611 7.5482699,10.821611 c -0.1703787,0 -0.3537381,-0.07487 -0.5441904,-0.252251 C 6.8121007,10.390549 6.6261934,10.118569 6.4638257,9.7610029 6.1393659,9.0465046 5.9312961,8.0395621 5.9312961,6.9122335 c 0,-1.1273286 0.2080698,-2.1342711 0.5325296,-2.8487694 C 6.6261934,3.7058977 6.8121007,3.4339183 7.0040795,3.2551067 7.1945318,3.077723 7.3778912,3.0028555 7.5482699,3.0028555 c 0.1703787,0 0.3537381,0.074868 0.5441904,0.2522512 0.1919788,0.1788116 0.3778747,0.450791 0.5402538,0.8083574 0.3244599,0.7144983 0.5325296,1.7214408 0.5325296,2.8487694 z"
stroke="#ffffff"
stroke-width="0.570206"
id="path4" />
<path
d="M 8.6804362,5.9149682 C 9.589578,6.7157788 10.25499,7.5622894 10.601808,8.2750993 10.775572,8.6322352 10.862983,8.9428098 10.87081,9.1897691 10.8786,9.4359466 10.807881,9.5931376 10.699834,9.6882998 10.5918,9.7834733 10.413353,9.8457741 10.133872,9.8389072 9.8535072,9.8320063 9.5009283,9.7550085 9.0954854,9.6019535 8.2862525,9.2964668 7.3252569,8.7103208 6.4161151,7.9095102 5.5069733,7.1086883 4.8415609,6.2621889 4.4947435,5.5493677 4.3209791,5.1922319 4.2335689,4.8816573 4.2257529,4.6346979 4.2179529,4.3885204 4.2886819,4.2313294 4.396717,4.1361672 4.5047516,4.041005 4.6831988,3.9786929 4.9626911,3.9855712 c 0.280353,0.00689 0.632932,0.083887 1.0383863,0.2369423 0.8092214,0.305498 1.7702285,0.8916328 2.6793588,1.6924547 z"
stroke="#ffffff"
stroke-width="0.570206"
id="path6" />
<path
d="M 8.6804477,7.9095102 C 7.7713059,8.7103321 6.8103103,9.2964668 6.0010774,9.6019649 5.5956345,9.7550199 5.2430556,9.8320176 4.9626911,9.8389072 4.6832103,9.8457854 4.5047631,9.7834733 4.3967284,9.6883111 4.2886823,9.5931489 4.2179599,9.435958 4.2257529,9.1897691 4.2335803,8.9428098 4.3209905,8.6322465 4.494755,8.2751107 4.8415609,7.5622894 5.5069848,6.7157901 6.4161266,5.9149682 7.3252569,5.1141576 8.286264,4.5280115 9.0954854,4.2225248 9.5009283,4.0694698 9.8535072,3.9924607 10.133872,3.9855712 c 0.279492,-0.00687 0.457928,0.055434 0.565974,0.1506073 0.108035,0.095162 0.178768,0.2523532 0.170964,0.4985307 -0.0078,0.2469594 -0.09524,0.557534 -0.268991,0.9146698 -0.346817,0.7128099 -1.012241,1.5593206 -1.9213713,2.3601312 z"
stroke="#ffffff"
stroke-width="0.570206"
id="path8" />
</svg>

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View file

@ -1075,13 +1075,13 @@ QString CallModel::getRemoteSas () const {
// -----------------------------------------------------------------------------
QString CallModel::getSecuredString () const {
QString CallModel::getSecuredString (const shared_ptr<const linphone::CallStats> &callStats) const {
if(mCall){
switch (mCall->getCurrentParams()->getMediaEncryption()) {
case linphone::MediaEncryption::SRTP:
return QStringLiteral("SRTP");
case linphone::MediaEncryption::ZRTP:
return CoreManager::getInstance()->getCore()->getPostQuantumAvailable()
return (callStats && callStats->isZrtpKeyAgreementAlgoPostQuantum() || (!callStats && CoreManager::getInstance()->getCore()->getPostQuantumAvailable()) )
? QStringLiteral("Post Quantum ZRTP")
: QStringLiteral("ZRTP");
case linphone::MediaEncryption::DTLS:
@ -1196,7 +1196,7 @@ void CallModel::updateEncrypionStats (const shared_ptr<const linphone::CallStats
statsList.clear();
if(isSecured()) {
//: 'Media encryption' : label in encryption section of call statistics
statsList << createStat(tr("callStatsMediaEncryption"), getSecuredString());
statsList << createStat(tr("callStatsMediaEncryption"), getSecuredString(callStats));
if(mCall->getCurrentParams()->getMediaEncryption() == linphone::MediaEncryption::ZRTP){
//: 'Cipher algorithm' : label in encryption section of call statistics
statsList << createStat(tr("callStatsCipherAlgo"), Utils::coreStringToAppString(callStats->getZrtpCipherAlgo()));

View file

@ -283,7 +283,7 @@ public:
QString getLocalSas () const;
QString getRemoteSas () const;
QString getSecuredString () const;
QString getSecuredString (const std::shared_ptr<const linphone::CallStats> &callStats = nullptr) const;
QVariantList getAudioStats () const;
QVariantList getVideoStats () const;

View file

@ -955,7 +955,7 @@ QVariantList SettingsModel::getSupportedMediaEncryptions () const {
if (core->mediaEncryptionSupported(linphone::MediaEncryption::ZRTP)){
if( core->getPostQuantumAvailable())
list << buildEncryptionDescription(MediaEncryptionZrtp, "PQ-ZRTP");
list << buildEncryptionDescription(MediaEncryptionZrtp, "Post Quantum ZRTP");
else
list << buildEncryptionDescription(MediaEncryptionZrtp, "ZRTP");
}

View file

@ -403,9 +403,14 @@ Rectangle {
height: IncallStyle.buttons.secure.buttonSize
width: height
isCustom: true
iconIsCustom: ! (callModel.isSecured && SettingsModel.isPostQuantumAvailable && callModel.encryption === CallModel.CallEncryptionZrtp)
backgroundRadius: width/2
colorSet: callModel.isSecured ? IncallStyle.buttons.secure : IncallStyle.buttons.unsecure
colorSet: callModel.isSecured
? SettingsModel.isPostQuantumAvailable && callModel.encryption === CallModel.CallEncryptionZrtp
? IncallStyle.buttons.postQuantumSecure
: IncallStyle.buttons.secure
: IncallStyle.buttons.unsecure
onClicked: zrtp.visible = (callModel.encryption === CallModel.CallEncryptionZrtp)

View file

@ -275,6 +275,21 @@ QtObject {
property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's').color
property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_c', icon, 's').color
}
property QtObject postQuantumSecure: QtObject {
property int buttonSize: 40
property int iconSize: 20
property string icon : 'secure_pq_zrtp'
property string name : 'secure_pq_zrtp'
property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, '', '', '#66727B').color
property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, '', '', '#66727B').color
property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, '', '', '#66727B').color
property color backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_c', icon, '', '', '#66727B').color
property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 's').color
property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 's').color
property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 's').color
property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_c', icon, 's').color
}
property QtObject unsecure: QtObject {
property int buttonSize: 40
property int iconSize: 20