Linphone-SDK Post Quantum media encryption

Starting SDK release 5.2 the post quantum media encryption is available when using ZRTP.

cmake .. -DENABLE_PQCRYPTO=ON

By default ZRTP won’t use post quantum algorithm, so you have to configure it.

You can do it in your configuration file, like this:

[sip]
zrtp_key_agreements_suites=MS_ZRTP_KEY_AGREEMENT_K255_KYB512

Or in code:

linphone_core_set_zrtp_key_agreement_suites(core, key_agreement_algorithms);

Ex) linphone-sdk/.gitlab-ci-files/linux-desktop/linux-desktop-ubuntu-rolling.yml

Ex) linphone-desktop/.gitlab-ci-files/job-linux-desktop-ubuntu-rolling.yml

デスクトップ版LinphoneでPost Quantumオプションを有効化してビルド

デスクトップ版Linphoneのビルドオプションについては下記テーブルを参照して下さい。AppImageによるパッケージをビルドします。AppImageによるアプリの動作条件は、Linuxディストリビューションに依存しないため、ビルド環境も、どのディストリビューションを利用しても構いません。

下記オプションの ENABLE_APP_PACKAGING(AppImage)ENABLE_PQCRYPTO(Post Quantum) を指定してビルドします。

Options

Options Description Default value
ENABLE_APP_LICENSE Enable the license in packages. YES
ENABLE_APP_PACKAGING Enable packaging. Package will be deployed in OUTPUT/packages NO
ENABLE_APP_PDF_VIEWER Enable PDF viewer. Need Qt PDF module. YES
ENABLE_APP_WEBVIEW Enable webview for accounts. The Webview engine must be deployed, it takes a large size. NO
ENABLE_APP_PACKAGE_ROOTCA Embed the rootca file (concatenation of all root certificates published by mozilla) into the package YES
ENABLE_BUILD_APP_PLUGINS Enable the build of plugins YES
ENABLE_BUILD_EXAMPLES Enable the build of examples NO
ENABLE_BUILD_VERBOSE Enable the build generation to be more verbose NO
ENABLE_DAEMON Enable the linphone daemon interface. NO
ENABLE_PQCRYPTO Enable post quantum ZRTP. NO
ENABLE_STRICT Build with strict compilator flags e.g. -Wall -Werror NO
ENABLE_TESTS Build with testing binaries of SDK NO
ENABLE_TESTS_COMPONENTS Build libbctoolbox-tester NO
ENABLE_TOOLS Enable tools of SDK NO
ENABLE_UNIT_TESTS Enable unit test of SDK. NO
ENABLE_UPDATE_CHECK Enable update check. YES
LINPHONE_SDK_MAKE_RELEASE_FILE_URL Make a RELEASE file that work along check_version and use this URL “”

ソースコードをGitLabからダウンロードします。

$ git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive

Dockerコンテナ内にビルド環境を構築しコンテナ内でビルドします。デスクトップ版Linphoneのソースには、ビルド環境を構築するためのDockerファイル(docker-files)が含まれていますが、このままでは使えません(Debianの場合、バージョンが古いことによるパッケージのアップデート不具合、設定したPython仮想環境のパスでインストール作業をする必要あり)。

ダウンロードしたフォルダに含まれる linphone-desktop/linphone-sdk/bc-dev-debian12 をベースにした新規Dockerファイル bc-dev-debian-12-appimagelinphone-desktop/docker-files 内に作成します。

内容は linphone-desktop/docker-files/bc-dev-debian9-appimage の中身を変更したものです。

linphone-desktop/docker-files/bc-dev-debian12-appimage (変更箇所のみ記載)

# build from linphone-desktop/linphone-sdk/docker-files/bc-dev-debian12
FROM gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian12:20230706_add_deps_for_av1
.....
.....
#	Manual
RUN sudo /opt/bc/pip-packages/bin/pip install aqtinstall
RUN sudo /opt/bc/pip-packages/bin/python3 -m aqt install $QT_VERSION linux desktop -O /opt/Qt -m $QT_MODULES
.....
.....
ENV Qt5_DIR=/opt/Qt/$QT_VERSION/gcc_64/lib/cmake
ENV PATH=/opt/Qt/$QT_VERSION/gcc_64/bin:$PATH
ENV PS1='\[\e[34m\]\u@bc-dev-debian12>\[\e[0m\] '
CMD bash

上記Dockerファイルから開発環境イメージを作成
注)linphone-desktopディレクトリで実行すること

$ docker build -f docker-files/bc-dev-debian12-appimage --no-cache -t linphone-sdk-desktop:debian12 --rm .

上記イメージからコンテナを稼働
注)linphone-desktopディレクトリで実行すること

$ docker run --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined --name linphone-desktop-sdk -v $PWD:/home/bc -it linphone-sdk-desktop:debian12

上記コマンドについては下記も参照願います。

コンテナ内でビルド

# mkdir build
# cd build
# cmake .. -DENABLE_APP_PACKAGING=YES -DENABLE_PQCRYPTO=YES -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo
# cmake --build . --target install --parallel 10 --config RelWithDebInfo

AppImageパッケージが build/OUTPUT/Packages に作成されるので、これを任意の場所に移動して実行権を付与して起動して下さい。