# kio Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# ksslpemcallback.cc

    00001 /* This file is part of the KDE project
    00002  *
    00003  * Copyright (C) 2001 George Staikos <staikos@kde.org>
    00004  *
    00005  * This library is free software; you can redistribute it and/or
    00006  * modify it under the terms of the GNU Library General Public
    00007  * License as published by the Free Software Foundation; either
    00008  * version 2 of the License, or (at your option) any later version.
    00009  *
    00010  * This library is distributed in the hope that it will be useful,
    00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013  * Library General Public License for more details.
    00014  *
    00015  * You should have received a copy of the GNU Library General Public License
    00016  * along with this library; see the file COPYING.LIB.  If not, write to
    00017  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00018  * Boston, MA 02111-1307, USA.
    00019  */
    00020
    00021 #ifdef HAVE_CONFIG_H
    00022 #include <config.h>
    00023 #endif
    00024
    00025 #include <kpassdlg.h>
    00026 #include <klocale.h>
    00027 #include "ksslpemcallback.h"
    00028
    00029 int KSSLPemCallback(char *buf, int size, int rwflag, void *userdata) {
    00030 #ifdef KSSL_HAVE_SSL
    00031         QCString pass;
    00032         Q_UNUSED(userdata);
    00033         Q_UNUSED(rwflag);
    00034
    00035         if (!buf) return -1;
    00036         int rc = KPasswordDialog::getPassword(pass, i18n("Certificate password"));
    00037         if (rc != KPasswordDialog::Accepted) return -1;
    00038
    00039         if (pass.length() > (unsigned int)size-1)
    00040                 pass.truncate((unsigned int)size-1);
    00041
    00042         qstrncpy(buf, pass.data(), size-1);
    00043         for (unsigned int i = 0; i < pass.length(); i++)
    00044                 pass[i] = 0;
    00045         // To be sure that it doesn't optimise the previous loop away
    00046         for (unsigned int i = 0; i < pass.length(); i++)
    00047                 pass[i] = pass[i];
    00048         buf[size-1] = 0;
    00049         return (int)pass.length();
    00050 #else
    00051         Q_UNUSED(buf);
    00052         Q_UNUSED(size);
    00053         Q_UNUSED(rwflag);
    00054         Q_UNUSED(userdata);
    00055         return -1;
    00056 #endif
    00057 }
    00058
    00059

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:14:26 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001