mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
Completed port to gnutls for linux.
This commit is contained in:
+1
-2
@@ -29,7 +29,7 @@ if (APPLE)
|
||||
endif()
|
||||
endif()
|
||||
project(dolphin-emu)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeTests)
|
||||
set(CMAKE_MODULE_PATH ${dCMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeTests)
|
||||
set(DOLPHIN_IS_STABLE FALSE)
|
||||
|
||||
# Set up paths
|
||||
@@ -418,7 +418,6 @@ if(NOT ANDROID)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
include(FindOpenSSL REQUIRED)
|
||||
|
||||
########################################
|
||||
# Setup include directories (and make sure they are preferred over the Externals)
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
# - Try to find GNUTLS
|
||||
# Find GNUTLS headers, libraries and the answer to all questions.
|
||||
#
|
||||
# GNUTLS_FOUND True if gnutls got found
|
||||
# GNUTLS_INCLUDE_DIRS Location of gnutls headers
|
||||
# GNUTLS_LIBRARIES List of libaries to use gnutls
|
||||
#
|
||||
# Copyright (c) 2007 Bjoern Ricks <b.ricks@fh-osnabrueck.de>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the New
|
||||
# BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
#
|
||||
|
||||
INCLUDE( FindPkgConfig )
|
||||
|
||||
IF ( GNUTLS_FIND_REQUIRED )
|
||||
SET( _pkgconfig_REQUIRED "REQUIRED" )
|
||||
ELSE( GNUTLS_FIND_REQUIRED )
|
||||
SET( _pkgconfig_REQUIRED "" )
|
||||
ENDIF ( GNUTLS_FIND_REQUIRED )
|
||||
|
||||
IF ( GNUTLS_MIN_VERSION )
|
||||
PKG_SEARCH_MODULE( GNUTLS ${_pkgconfig_REQUIRED} gnutls>=${GNUTLS_MIN_VERSION} )
|
||||
ELSE ( GNUTLS_MIN_VERSION )
|
||||
PKG_SEARCH_MODULE( GNUTLS ${_pkgconfig_REQUIRED} gnutls )
|
||||
ENDIF ( GNUTLS_MIN_VERSION )
|
||||
|
||||
|
||||
IF( NOT GNUTLS_FOUND AND NOT PKG_CONFIG_FOUND )
|
||||
FIND_PATH( GNUTLS_INCLUDE_DIRS gnutls/gnutls.h )
|
||||
FIND_LIBRARY( GNUTLS_LIBRARIES gnutls)
|
||||
|
||||
# Report results
|
||||
IF ( GNUTLS_LIBRARIES AND GNUTLS_INCLUDE_DIRS )
|
||||
SET( GNUTLS_FOUND 1 )
|
||||
IF ( NOT GNUTLS_FIND_QUIETLY )
|
||||
MESSAGE( STATUS "Found gnutls: ${GNUTLS_LIBRARIES}" )
|
||||
ENDIF ( NOT GNUTLS_FIND_QUIETLY )
|
||||
ELSE ( GNUTLS_LIBRARIES AND GNUTLS_INCLUDE_DIRS )
|
||||
IF ( GNUTLS_FIND_REQUIRED )
|
||||
MESSAGE( SEND_ERROR "Could NOT find gnutls" )
|
||||
ELSE ( GNUTLS_FIND_REQUIRED )
|
||||
IF ( NOT GNUTLS_FIND_QUIETLY )
|
||||
MESSAGE( STATUS "Could NOT find gnutls" )
|
||||
ENDIF ( NOT GNUTLS_FIND_QUIETLY )
|
||||
ENDIF ( GNUTLS_FIND_REQUIRED )
|
||||
ENDIF ( GNUTLS_LIBRARIES AND GNUTLS_INCLUDE_DIRS )
|
||||
ENDIF( NOT GNUTLS_FOUND AND NOT PKG_CONFIG_FOUND )
|
||||
|
||||
MARK_AS_ADVANCED( GNUTLS_LIBRARIES GNUTLS_INCLUDE_DIRS )
|
||||
@@ -230,6 +230,16 @@ if(LIBUSB_FOUND)
|
||||
set(SRCS ${SRCS} Src/IPC_HLE/WII_IPC_HLE_Device_hid.cpp)
|
||||
endif(LIBUSB_FOUND)
|
||||
|
||||
set(GNUTLS_MIN_VERSION "3.1.9")
|
||||
set(GNUTLS_FIND_REQUIRED 1)
|
||||
find_package(GnuTLS)
|
||||
set(LIBS ${LIBS} ${GNUTLS_LIBRARIES})
|
||||
|
||||
|
||||
if(NOT GNUTLS_FOUND)
|
||||
message(FATAL_ERROR "GnuTLS not found")
|
||||
endif(NOT GNUTLS_FOUND)
|
||||
|
||||
if(WIN32)
|
||||
set(SRCS ${SRCS} Src/HW/BBA-TAP/TAP_Win32.cpp Src/stdafx.cpp
|
||||
Src/HW/WiimoteReal/IOWin.cpp)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -24,13 +24,15 @@
|
||||
#endif
|
||||
|
||||
#include "WII_IPC_HLE_Device.h"
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/pkcs12.h>
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
#include <gnutls/gnutls.h>
|
||||
#include <gnutls/x509.h>
|
||||
|
||||
#define MAX_HOSTNAME_LEN 256
|
||||
#define NET_SSL_MAXINSTANCES 4
|
||||
|
||||
#define SSLID_VALID(x) (x >= 0 && x < NET_SSL_MAXINSTANCES && _SSL[x].session != NULL)
|
||||
|
||||
class CWII_IPC_HLE_Device_net_ssl : public IWII_IPC_HLE_Device
|
||||
{
|
||||
public:
|
||||
@@ -48,26 +50,31 @@ public:
|
||||
int getSSLFreeID();
|
||||
|
||||
private:
|
||||
SSL * sslfds[NET_SSL_MAXINSTANCES];
|
||||
enum
|
||||
struct _SSL{
|
||||
gnutls_session_t session;
|
||||
gnutls_certificate_credentials_t xcred;
|
||||
char hostname[MAX_HOSTNAME_LEN];
|
||||
} _SSL[NET_SSL_MAXINSTANCES];
|
||||
|
||||
enum
|
||||
{
|
||||
IOCTLV_NET_SSL_NEW = 0x01,
|
||||
IOCTLV_NET_SSL_CONNECT = 0x02,
|
||||
IOCTLV_NET_SSL_DOHANDSHAKE = 0x03,
|
||||
IOCTLV_NET_SSL_READ = 0x04,
|
||||
IOCTLV_NET_SSL_WRITE = 0x05,
|
||||
IOCTLV_NET_SSL_SHUTDOWN = 0x06,
|
||||
IOCTLV_NET_SSL_SHUTDOWN = 0x06,
|
||||
IOCTLV_NET_SSL_SETCLIENTCERT = 0x07,
|
||||
IOCTLV_NET_SSL_SETCLIENTCERTDEFAULT = 0x08,
|
||||
IOCTLV_NET_SSL_REMOVECLIENTCERT = 0x09,
|
||||
IOCTLV_NET_SSL_SETCLIENTCERTDEFAULT = 0x08,
|
||||
IOCTLV_NET_SSL_REMOVECLIENTCERT = 0x09,
|
||||
IOCTLV_NET_SSL_SETROOTCA = 0x0A,
|
||||
IOCTLV_NET_SSL_SETROOTCADEFAULT = 0x0B,
|
||||
IOCTLV_NET_SSL_SETROOTCADEFAULT = 0x0B,
|
||||
IOCTLV_NET_SSL_DOHANDSHAKEEX = 0x0C,
|
||||
IOCTLV_NET_SSL_SETBUILTINROOTCA = 0x0D,
|
||||
IOCTLV_NET_SSL_SETBUILTINCLIENTCERT = 0x0E,
|
||||
IOCTLV_NET_SSL_SETBUILTINROOTCA = 0x0D,
|
||||
IOCTLV_NET_SSL_SETBUILTINCLIENTCERT = 0x0E,
|
||||
IOCTLV_NET_SSL_DISABLEVERIFYOPTIONFORDEBUG = 0x0F,
|
||||
IOCTLV_NET_SSL_DEBUGGETVERSION = 0x14,
|
||||
IOCTLV_NET_SSL_DEBUGGETTIME = 0x15,
|
||||
IOCTLV_NET_SSL_DEBUGGETTIME = 0x15,
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user