blob: 4c358e95da19969bb3eecee0f9a7a457a53ea76e [file] [log] [blame]
// Copyright (C) 2010 David Sugar, Tycho Softworks.
//
// This file is part of GNU uCommon C++.
//
// GNU uCommon C++ 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 3 of the License, or
// (at your option) any later version.
//
// GNU uCommon C++ 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 GNU uCommon C++. If not, see <http://www.gnu.org/licenses/>.
#include <ucommon-config.h>
#include <ucommon/ucommon.h>
#include <ucommon/export.h>
#include <ucommon/secure.h>
#include <gnutls/gnutls.h>
#include <gnutls/crypto.h>
#ifdef _MSWINDOWS_
#include <wincrypt.h>
#endif
#define NAMESPACE_LOCAL namespace __secure__ {
#define LOCAL_NAMESPACE __secure__
NAMESPACE_LOCAL
using namespace UCOMMON_NAMESPACE;
class __LOCAL context : public secure
{
public:
~context();
unsigned int connect;
gnutls_credentials_type_t xtype;
gnutls_certificate_credentials_t xcred;
gnutls_dh_params_t dh;
static gnutls_priority_t priority_cache;
static gnutls_session_t session(context *ctx);
static int map_digest(const char *type);
static int map_cipher(const char *type);
static int map_hmac(const char *type);
};
typedef gnutls_session_t SSL;
typedef gnutls_mac_algorithm_t HMAC_ID;
typedef gnutls_hmac_hd_t HMAC_CTX;
typedef gnutls_digest_algorithm_t MD_ID;
typedef gnutls_hash_hd_t MD_CTX;
typedef gnutls_cipher_hd_t CIPHER_CTX;
typedef gnutls_cipher_algorithm_t CIPHER_ID;
typedef gnutls_datum_t CIPHER_KEYDATA;
typedef context *SSL_CTX;
END_NAMESPACE
using namespace UCOMMON_NAMESPACE;
using namespace LOCAL_NAMESPACE;