Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qffmpegcertificateutils.cpp
Go to the documentation of this file.
1// Copyright (C) 2026 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5
6#include <algorithm>
7
8QT_BEGIN_NAMESPACE
9
10namespace QFFmpeg {
11
12QByteArray derToPem(QByteArrayView der)
13{
14 const QByteArray base64 = QByteArray(der.data(), der.size()).toBase64();
15
16 constexpr qsizetype lineLength = 64;
17
18 QByteArray pem = "-----BEGIN CERTIFICATE-----\n";
19 for (qsizetype pos = 0; pos < base64.size(); pos += lineLength) {
20 pem += base64.sliced(pos, std::min(lineLength, base64.size() - pos));
21 pem += '\n';
22 }
23 pem += "-----END CERTIFICATE-----\n";
24
25 return pem;
26}
27
28QByteArray certificatesToPemBundle(const QList<QByteArray> &derCertificates)
29{
30 QByteArray bundle;
31 for (const QByteArray &der : derCertificates)
32 bundle += derToPem(der);
33
34 return bundle;
35}
36
37} // namespace QFFmpeg
38
39QT_END_NAMESPACE
QByteArray derToPem(QByteArrayView der)
QByteArray certificatesToPemBundle(const QList< QByteArray > &derCertificates)