📄 ksslpkcs12.h
字号:
/* This file is part of the KDE project * * Copyright (C) 2001 George Staikos <staikos@kde.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */#ifndef _KSSLPKCS12_H#define _KSSLPKCS12_H#ifdef Q_WS_WIN#include "ksslconfig_win.h"#else#include "ksslconfig.h"#endif#ifdef KSSL_HAVE_SSL#define crypt _openssl_crypt#include <openssl/pkcs12.h>#undef crypt#elseclass PKCS12;class EVP_PKEY;class X509;#endif#include <ksslcertificate.h>#include <ksslcertchain.h>#ifndef STACK_OF#define STACK_OF(x) void#endifclass KSSL;class KSSLPKCS12Private;class KOpenSSLProxy;/** * KDE PKCS#12 Certificate * * As of yet, this class is being defined. if you use it, let it be known * that BC will break on you until this message is removed. * * @author George Staikos <staikos@kde.org> * @see KSSL, KSSLCertificate * @short KDE PKCS#12 Certificate */class KIO_EXPORT KSSLPKCS12 {friend class KSSL;public: /** * Destroy this PKCS#12 certificate */ virtual ~KSSLPKCS12(); /** * The name of this certificate. This can be used to refer to the * certificate instead of passing the object itself. * @return the name of the certificate */ QString name(); /** * Create a KSSLPKCS12 object from a Base64 in a QString. * @param base64 the base64 encoded certificate * @param password a password for the certificate if encrypted * @return the PKCS#12 object, or NULL on failure. */ static KSSLPKCS12* fromString(QString base64, QString password = ""); /** * Create a KSSLPKCS12 object by reading a PKCS#12 file. * @param filename the filename of the certificate * @param password a password for the certificate if encrypted * @return the PKCS#12 object, or NULL on failure. */ static KSSLPKCS12* loadCertFile(QString filename, QString password = ""); /** * Convert to a Base64 string. * @return the certificate in base64 form */ QString toString(); /** * Raw set the PKCS12 object. * @param c the openssl PKCS12 object * @internal */ void setCert(PKCS12 *c); /** * Change the password of the PKCS#12 in memory. * @param pold the old password * @param pnew the new password * @return true on success */ bool changePassword(QString pold, QString pnew); /** * Get the private key. * @return the internal OpenSSL private key format * @internal */ EVP_PKEY *getPrivateKey(); /** * Get the X.509 certificate. * @return the X.509 certificate for the PKCS#12 object, or NULL */ KSSLCertificate *getCertificate(); /** * Write the PKCS#12 to a file in raw mode. * @param filename the file to write to * @return true on success */ bool toFile(QString filename); /** * Check the X.509 and private key to make sure they're valid. * @return the result of the validation * @see KSSLCertificate */ KSSLCertificate::KSSLValidation validate(); /** * Check the X.509 and private key to make sure they're valid. * @param p the purpose to validate for * @return the result of the validation * @see KSSLCertificate */ KSSLCertificate::KSSLValidation validate(KSSLCertificate::KSSLPurpose p); /** * Check the X.509 and private key to make sure they're valid. * Ignore any cached validation result. * @return the result of the validation * @see KSSLCertificate */ KSSLCertificate::KSSLValidation revalidate(); /** * Check the X.509 and private key to make sure they're valid. * Ignore any cached validation result. * @param p the purpose to validate for * @return the result of the validation * @see KSSLCertificate */ KSSLCertificate::KSSLValidation revalidate(KSSLCertificate::KSSLPurpose p); /** * Check if the X.509 and private key are valid. * @return true if valid */ bool isValid(); /** * Check if the X.509 and private key are valid. * @param p the purpose to validate for * @return true if valid */ bool isValid(KSSLCertificate::KSSLPurpose p);protected: KSSLPKCS12(); bool parse(QString pass);private: KSSLPKCS12Private *d; PKCS12 *_pkcs; KOpenSSLProxy *kossl; EVP_PKEY *_pkey; KSSLCertificate *_cert; STACK_OF(X509) *_caStack;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -