KUnifiedPush

vapid-keygen.cpp
1/*
2 SPDX-FileCopyrightText: 2025 Volker Krause <vkrause@kde.org>
3 SPDX-License-Identifier: LGPL-2.0-or-later
4*/
5
6#include "kunifiedpush_version.h"
7
8#include "../shared/eckey_p.h"
9
10#include <QCoreApplication>
11#include <QCommandLineOption>
12#include <QCommandLineParser>
13
14#include <openssl/ec.h>
15
16#include <iostream>
17
18using namespace Qt::Literals;
19using namespace KUnifiedPush;
20
21int main(int argc, char **argv)
22{
23 QCoreApplication::setApplicationName(u"VAPID Key Generator"_s);
25 QCoreApplication app(argc, argv);
26
27 QCommandLineParser parser;
28 parser.addHelpOption();
29 parser.addVersionOption();
30 parser.process(app);
31
32 openssl::evp_pkey_ptr key(EVP_EC_gen("prime256v1"));
33 if (!key) {
34 return {};
35 }
36 const auto keyPair = ECKey::store(key);
37
38 std::cout << "public key: " << keyPair.publicKey.toBase64(QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals).constData() << std::endl;
39 std::cout << "private key: " << keyPair.privateKey.toBase64(QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals).constData() << std::endl;
40
41 return 0;
42}
Client-side integration with UnifiedPush.
Definition connector.h:14
QCommandLineOption addHelpOption()
QCommandLineOption addVersionOption()
void process(const QCoreApplication &app)
void setApplicationName(const QString &application)
void setApplicationVersion(const QString &version)
QString fromLatin1(QByteArrayView str)
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Apr 25 2025 12:05:39 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.