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