File indexing completed on 2024-04-28 16:01:31

0001 /******************************************************************************
0002  * This file is part of the libqgit2 library
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Lesser General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2.1 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Lesser General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Lesser General Public
0015  * License along with this library; if not, write to the Free Software
0016  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0017  */
0018 
0019 #ifndef LIBQGIT2_CREDENTIALS_H
0020 #define LIBQGIT2_CREDENTIALS_H
0021 
0022 #include <QtCore/QSharedPointer>
0023 
0024 #include "libqgit2_export.h"
0025 
0026 namespace LibQGit2
0027 {
0028 
0029 class CredentialsPrivate;
0030 
0031 /**
0032  * @brief Credentials are used to authenticate communication
0033  *
0034  * There can be different types of credentials. What types of credentials are needed depends
0035  * on the communication method. Credentials can be for example a user name/password combination
0036  * or a public key/private key pair for SSH. The user must choose a correct type of \c Credentials
0037  * or otherwise the authentication can fail.
0038  *
0039  * @ingroup LibQGit2
0040  * @{
0041  */
0042 class LIBQGIT2_EXPORT Credentials
0043 {
0044 public:
0045     /**
0046      * An empty Credentials. This does not authenticate any communication.
0047      */
0048     Credentials();
0049 
0050     bool isEmpty() const;
0051 
0052     /**
0053      * @brief Creates \c Credentials suitable for public key SSH authentication.
0054      *
0055      * @param privateKeyPath path to the private key file
0056      * @param publicKeyPath path to the public key file
0057      * @param userName the user name to use in the authentication
0058      * @param passphrase the passphrase for the private key
0059      * @return a new Credentials object
0060      */
0061     static Credentials ssh(const QString &privateKeyPath, const QString &publicKeyPath = QString(), const QByteArray &userName = QByteArray(), const QByteArray &passphrase = QByteArray());
0062 
0063 private:
0064     QSharedPointer<CredentialsPrivate> d_ptr;
0065     Q_DECLARE_PRIVATE(Credentials)
0066 
0067     Credentials(CredentialsPrivate &p);
0068 };
0069 
0070 /** @} */
0071 
0072 }
0073 
0074 #endif // LIBQGIT2_CREDENTIALS_H