/*
    Copyright (C) 2010 Eduardo Robles Elvira

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include <QCoreApplication>
#include <QtCore/QFile>
#include <QtNetwork/QSslConfiguration>
#include "secureclient.h"

int main(int argc, char** argv)
{
    QCoreApplication app(argc, argv);

    QFile rootCertificateFile("ca-cert.pem");
    if (!rootCertificateFile.open(QIODevice::ReadOnly)) {
        qDebug() << "open of \"ca-cert.pem\" failed";
        return 1;
    }
    QSslCertificate rootCertificate(&rootCertificateFile, QSsl::Pem);
    rootCertificateFile.close();

    if (!rootCertificate.isValid()) {
        qDebug() << "certificate \"ca-cert.pem\" is invalid";
        return 2;
    }

    QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();
    sslConfig.setCaCertificates(QList<QSslCertificate>() << rootCertificate);
    QSslConfiguration::setDefaultConfiguration(sslConfig);

    SecureClient secureClient;
    secureClient.start("localhost", 1025);
    return app.exec();
}
