parent
b701e9bde1
commit
68b5e38626
@ -1,191 +0,0 @@
|
|||||||
/*
|
|
||||||
* qcaprovider.h - QCA Plugin API
|
|
||||||
* Copyright (C) 2003 Justin Karneges
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2.1 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
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this library; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef QCAPROVIDER_H
|
|
||||||
#define QCAPROVIDER_H
|
|
||||||
|
|
||||||
#include<tqglobal.h>
|
|
||||||
#include<tqstring.h>
|
|
||||||
#include<tqdatetime.h>
|
|
||||||
#include<tqobject.h>
|
|
||||||
#include<tqhostaddress.h>
|
|
||||||
#include"qca.h"
|
|
||||||
|
|
||||||
#define QCA_PLUGIN_VERSION 1
|
|
||||||
|
|
||||||
class QCAProvider
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QCAProvider() {}
|
|
||||||
virtual ~QCAProvider() {}
|
|
||||||
|
|
||||||
virtual void init()=0;
|
|
||||||
virtual int qcaVersion() const=0;
|
|
||||||
virtual int capabilities() const=0;
|
|
||||||
virtual void *context(int cap)=0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QCA_HashContext
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~QCA_HashContext() {}
|
|
||||||
|
|
||||||
virtual QCA_HashContext *clone()=0;
|
|
||||||
virtual void reset()=0;
|
|
||||||
virtual void update(const char *in, unsigned int len)=0;
|
|
||||||
virtual void final(TQByteArray *out)=0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QCA_CipherContext
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~QCA_CipherContext() {}
|
|
||||||
|
|
||||||
virtual QCA_CipherContext *clone()=0;
|
|
||||||
virtual int keySize()=0;
|
|
||||||
virtual int blockSize()=0;
|
|
||||||
virtual bool generateKey(char *out, int keysize=-1)=0;
|
|
||||||
virtual bool generateIV(char *out)=0;
|
|
||||||
|
|
||||||
virtual bool setup(int dir, int mode, const char *key, int keysize, const char *iv, bool pad)=0;
|
|
||||||
virtual bool update(const char *in, unsigned int len)=0;
|
|
||||||
virtual bool final(TQByteArray *out)=0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QCA_RSAKeyContext
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~QCA_RSAKeyContext() {}
|
|
||||||
|
|
||||||
virtual QCA_RSAKeyContext *clone() const=0;
|
|
||||||
virtual bool isNull() const=0;
|
|
||||||
virtual bool havePublic() const=0;
|
|
||||||
virtual bool havePrivate() const=0;
|
|
||||||
virtual bool createFromDER(const char *in, unsigned int len)=0;
|
|
||||||
virtual bool createFromPEM(const char *in, unsigned int len)=0;
|
|
||||||
virtual bool createFromNative(void *in)=0;
|
|
||||||
virtual bool generate(unsigned int bits)=0;
|
|
||||||
virtual bool toDER(TQByteArray *out, bool publicOnly)=0;
|
|
||||||
virtual bool toPEM(TQByteArray *out, bool publicOnly)=0;
|
|
||||||
|
|
||||||
virtual bool encrypt(const TQByteArray &in, TQByteArray *out, bool oaep)=0;
|
|
||||||
virtual bool decrypt(const TQByteArray &in, TQByteArray *out, bool oaep)=0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct QCA_CertProperty
|
|
||||||
{
|
|
||||||
TQString var;
|
|
||||||
TQString val;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QCA_CertContext
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~QCA_CertContext() {}
|
|
||||||
|
|
||||||
virtual QCA_CertContext *clone() const=0;
|
|
||||||
virtual bool isNull() const=0;
|
|
||||||
virtual bool createFromDER(const char *in, unsigned int len)=0;
|
|
||||||
virtual bool createFromPEM(const char *in, unsigned int len)=0;
|
|
||||||
virtual bool toDER(TQByteArray *out)=0;
|
|
||||||
virtual bool toPEM(TQByteArray *out)=0;
|
|
||||||
|
|
||||||
virtual TQString serialNumber() const=0;
|
|
||||||
virtual TQString subjectString() const=0;
|
|
||||||
virtual TQString issuerString() const=0;
|
|
||||||
virtual TQValueList<QCA_CertProperty> subject() const=0;
|
|
||||||
virtual TQValueList<QCA_CertProperty> issuer() const=0;
|
|
||||||
virtual TQDateTime notBefore() const=0;
|
|
||||||
virtual TQDateTime notAfter() const=0;
|
|
||||||
virtual bool matchesAddress(const TQString &realHost) const=0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QCA_TLSContext
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
enum Result { Success, Error, Continue };
|
|
||||||
virtual ~QCA_TLSContext() {}
|
|
||||||
|
|
||||||
virtual void reset()=0;
|
|
||||||
virtual bool startClient(const TQPtrList<QCA_CertContext> &store, const QCA_CertContext &cert, const QCA_RSAKeyContext &key)=0;
|
|
||||||
virtual bool startServer(const TQPtrList<QCA_CertContext> &store, const QCA_CertContext &cert, const QCA_RSAKeyContext &key)=0;
|
|
||||||
|
|
||||||
virtual int handshake(const TQByteArray &in, TQByteArray *out)=0;
|
|
||||||
virtual int shutdown(const TQByteArray &in, TQByteArray *out)=0;
|
|
||||||
virtual bool encode(const TQByteArray &plain, TQByteArray *to_net, int *encoded)=0;
|
|
||||||
virtual bool decode(const TQByteArray &from_net, TQByteArray *plain, TQByteArray *to_net)=0;
|
|
||||||
virtual bool eof() const=0;
|
|
||||||
virtual TQByteArray unprocessed()=0;
|
|
||||||
|
|
||||||
virtual QCA_CertContext *peerCertificate() const=0;
|
|
||||||
virtual int validityResult() const=0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct QCA_SASLHostPort
|
|
||||||
{
|
|
||||||
TQHostAddress addr;
|
|
||||||
TQ_UINT16 port;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct QCA_SASLNeedParams
|
|
||||||
{
|
|
||||||
bool user, authzid, pass, realm;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QCA_SASLContext
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
enum Result { Success, Error, NeedParams, AuthCheck, Continue };
|
|
||||||
virtual ~QCA_SASLContext() {}
|
|
||||||
|
|
||||||
// common
|
|
||||||
virtual void reset()=0;
|
|
||||||
virtual void setCoreProps(const TQString &service, const TQString &host, QCA_SASLHostPort *local, QCA_SASLHostPort *remote)=0;
|
|
||||||
virtual void setSecurityProps(bool noPlain, bool noActive, bool noDict, bool noAnon, bool reqForward, bool reqCreds, bool reqMutual, int ssfMin, int ssfMax, const TQString &_ext_authid, int _ext_ssf)=0;
|
|
||||||
virtual int security() const=0;
|
|
||||||
virtual int errorCond() const=0;
|
|
||||||
|
|
||||||
// init / first step
|
|
||||||
virtual bool clientStart(const TQStringList &mechlist)=0;
|
|
||||||
virtual int clientFirstStep(bool allowClientSendFirst)=0;
|
|
||||||
virtual bool serverStart(const TQString &realm, TQStringList *mechlist, const TQString &name)=0;
|
|
||||||
virtual int serverFirstStep(const TQString &mech, const TQByteArray *in)=0;
|
|
||||||
|
|
||||||
// get / set params
|
|
||||||
virtual QCA_SASLNeedParams clientParamsNeeded() const=0;
|
|
||||||
virtual void setClientParams(const TQString *user, const TQString *authzid, const TQString *pass, const TQString *realm)=0;
|
|
||||||
virtual TQString username() const=0;
|
|
||||||
virtual TQString authzid() const=0;
|
|
||||||
|
|
||||||
// continue steps
|
|
||||||
virtual int nextStep(const TQByteArray &in)=0;
|
|
||||||
virtual int tryAgain()=0;
|
|
||||||
|
|
||||||
// results
|
|
||||||
virtual TQString mech() const=0;
|
|
||||||
virtual const TQByteArray *clientInit() const=0;
|
|
||||||
virtual TQByteArray result() const=0;
|
|
||||||
|
|
||||||
// security layer
|
|
||||||
virtual bool encode(const TQByteArray &in, TQByteArray *out)=0;
|
|
||||||
virtual bool decode(const TQByteArray &in, TQByteArray *out)=0;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in new issue