00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _QORE_QORESSLPRIVATEKEY_H
00025
00026 #define _QORE_QORESSLPRIVATEKEY_H
00027
00028 #include <openssl/ssl.h>
00029 #include <openssl/evp.h>
00030
00032 class QoreSSLPrivateKey : public AbstractPrivateData {
00033 private:
00034
00035 struct qore_sslpk_private *priv;
00036
00038 DLLLOCAL QoreSSLPrivateKey(const QoreSSLPrivateKey&);
00039
00041 DLLLOCAL QoreSSLPrivateKey& operator=(const QoreSSLPrivateKey&);
00042
00043 protected:
00044 DLLLOCAL virtual ~QoreSSLPrivateKey();
00045
00046 public:
00048
00052 DLLEXPORT QoreSSLPrivateKey(const char *fn, const char *pp, ExceptionSink *xsink);
00053
00055
00058 DLLEXPORT QoreSSLPrivateKey(const BinaryNode *bin, ExceptionSink *xsink);
00059
00061
00065 DLLEXPORT QoreSSLPrivateKey(const QoreString *str, const char *pp, ExceptionSink *xsink);
00066
00068
00070 DLLEXPORT QoreStringNode *getPEM(ExceptionSink *xsink) const;
00071
00072
00073 DLLEXPORT EVP_PKEY *getData() const;
00074
00075 DLLEXPORT const char *getType() const;
00076 DLLEXPORT int64 getVersion() const;
00077
00078
00079 DLLEXPORT int64 getBitLength() const;
00080
00081
00082 DLLEXPORT QoreHashNode *getInfo() const;
00083
00084 DLLLOCAL QoreSSLPrivateKey(EVP_PKEY *p);
00085 };
00086
00087 #endif