gnutls.c File Reference

Include dependency graph for gnutls.c:


Data Structures

struct  tls_session_sys_t
struct  error_msg_t
struct  tls_client_sys_t
 TLS client session data. More...
struct  tls_server_sys_t
 Server-side TLS. More...
struct  saved_session_t

Defines

#define CACHE_TIMEOUT   3600
#define CACHE_SIZE   64
#define CACHE_TIMEOUT_TEXT   N_("Expiration time for resumed TLS sessions")
#define CACHE_TIMEOUT_LONGTEXT
#define CACHE_SIZE_TEXT   N_("Number of resumed TLS sessions")
#define CACHE_SIZE_LONGTEXT
#define MAX_SESSION_ID   32
 TLS session resumption callbacks (server-side).
#define MAX_SESSION_DATA   1024

Typedefs

typedef int(*) tls_prio_func (gnutls_session_t, const int *)

Functions

static int OpenClient (vlc_object_t *obj)
 Initializes a client-side TLS session.
static void CloseClient (vlc_object_t *)
static int OpenServer (vlc_object_t *obj)
 Allocates a whole server's TLS credentials.
static void CloseServer (vlc_object_t *p_server)
 Destroys a TLS server object.
int vlc_entry__main (module_t *p_module)
const char * vlc_entry_license__main (void)
static int gnutls_Init (vlc_object_t *p_this)
 Initializes GnuTLS with proper locking.
static void gnutls_Deinit (vlc_object_t *p_this)
 Deinitializes GnuTLS.
static int gnutls_Error (vlc_object_t *obj, int val)
static int gnutls_Send (void *p_session, const void *buf, int i_length)
 Sends data through a TLS session.
static int gnutls_Recv (void *p_session, void *buf, int i_length)
 Receives data through a TLS session.
static int gnutls_ContinueHandshake (tls_session_t *p_session)
 Starts or continues the TLS handshake.
static int gnutls_HandshakeAndValidate (tls_session_t *session)
static void gnutls_SetFD (tls_session_t *p_session, int fd)
 Sets the operating system file descriptor backend for the TLS sesison.
static int gnutls_SetPriority (vlc_object_t *restrict obj, const char *restrict name, tls_prio_func func, gnutls_session_t session, const int *restrict values)
static int gnutls_SessionPrioritize (vlc_object_t *obj, gnutls_session_t session)
static int gnutls_Addx509File (vlc_object_t *p_this, gnutls_certificate_credentials_t cred, const char *psz_path, bool b_priv)
static int gnutls_Addx509Directory (vlc_object_t *p_this, gnutls_certificate_credentials_t cred, const char *psz_dirname, bool b_priv)
static int gnutls_Addx509File (vlc_object_t *p_this, gnutls_certificate_credentials cred, const char *psz_path, bool b_priv)
static int cb_store (void *p_server, gnutls_datum key, gnutls_datum data)
static gnutls_datum cb_fetch (void *p_server, gnutls_datum key)
static int cb_delete (void *p_server, gnutls_datum key)
static void gnutls_SessionClose (tls_server_t *p_server, tls_session_t *p_session)
 Terminates TLS session and releases session data.
static tls_session_tgnutls_ServerSessionPrepare (tls_server_t *p_server)
 Initializes a server-side TLS session.
static int gnutls_ServerAddCA (tls_server_t *p_server, const char *psz_ca_path)
 Adds one or more certificate authorities.
static int gnutls_ServerAddCRL (tls_server_t *p_server, const char *psz_crl_path)
 Adds a certificates revocation list to be sent to TLS clients.

Variables

static const error_msg_t cert_errors []

Define Documentation

#define CACHE_SIZE   64

#define CACHE_SIZE_LONGTEXT

Value:

N_( \
    "This is the maximum number of resumed TLS sessions that " \
    "the cache will hold." )

#define CACHE_SIZE_TEXT   N_("Number of resumed TLS sessions")

#define CACHE_TIMEOUT   3600

#define CACHE_TIMEOUT_LONGTEXT

Value:

N_( \
    "It is possible to cache the resumed TLS sessions. This is the expiration "\
    "time of the sessions stored in this cache, in seconds." )

#define CACHE_TIMEOUT_TEXT   N_("Expiration time for resumed TLS sessions")

#define MAX_SESSION_DATA   1024

#define MAX_SESSION_ID   32

TLS session resumption callbacks (server-side).


Typedef Documentation

typedef int(*) tls_prio_func(gnutls_session_t, const int *)


Function Documentation

static int cb_delete ( void *  p_server,
gnutls_datum  key 
) [static]

static gnutls_datum cb_fetch ( void *  p_server,
gnutls_datum  key 
) [static]

static int cb_store ( void *  p_server,
gnutls_datum  key,
gnutls_datum  data 
) [static]

static void CloseClient ( vlc_object_t  )  [static]

static void CloseServer ( vlc_object_t  )  [static]

Destroys a TLS server object.

static int gnutls_Addx509Directory ( vlc_object_t p_this,
gnutls_certificate_credentials_t  cred,
const char *  psz_dirname,
bool  b_priv 
) [static]

static int gnutls_Addx509File ( vlc_object_t p_this,
gnutls_certificate_credentials  cred,
const char *  psz_path,
bool  b_priv 
) [static]

static int gnutls_Addx509File ( vlc_object_t p_this,
gnutls_certificate_credentials_t  cred,
const char *  psz_path,
bool  b_priv 
) [static]

static int gnutls_ContinueHandshake ( tls_session_t p_session  )  [static]

Starts or continues the TLS handshake.

Returns:
-1 on fatal error, 0 on succesful handshake completion, 1 if more would-be blocking recv is needed, 2 if more would-be blocking send is required.

static void gnutls_Deinit ( vlc_object_t p_this  )  [static]

Deinitializes GnuTLS.

static int gnutls_Error ( vlc_object_t obj,
int  val 
) [static]

static int gnutls_HandshakeAndValidate ( tls_session_t session  )  [static]

static int gnutls_Init ( vlc_object_t p_this  )  [static]

Initializes GnuTLS with proper locking.

Returns:
VLC_SUCCESS on success, a VLC error code otherwise.

static int gnutls_Recv ( void *  p_session,
void *  buf,
int  i_length 
) [static]

Receives data through a TLS session.

static int gnutls_Send ( void *  p_session,
const void *  buf,
int  i_length 
) [static]

Sends data through a TLS session.

static int gnutls_ServerAddCA ( tls_server_t p_server,
const char *  psz_ca_path 
) [static]

Adds one or more certificate authorities.

Parameters:
psz_ca_path (Unicode) path to an x509 certificates list.
Returns:
-1 on error, 0 on success.

static int gnutls_ServerAddCRL ( tls_server_t p_server,
const char *  psz_crl_path 
) [static]

Adds a certificates revocation list to be sent to TLS clients.

Parameters:
psz_crl_path (Unicode) path of the CRL file.
Returns:
-1 on error, 0 on success.

static tls_session_t* gnutls_ServerSessionPrepare ( tls_server_t p_server  )  [static]

Initializes a server-side TLS session.

static void gnutls_SessionClose ( tls_server_t p_server,
tls_session_t p_session 
) [static]

Terminates TLS session and releases session data.

You still have to close the socket yourself.

static int gnutls_SessionPrioritize ( vlc_object_t obj,
gnutls_session_t  session 
) [static]

static void gnutls_SetFD ( tls_session_t p_session,
int  fd 
) [static]

Sets the operating system file descriptor backend for the TLS sesison.

Parameters:
fd stream socket already connected with the peer.

static int gnutls_SetPriority ( vlc_object_t *restrict  obj,
const char *restrict  name,
tls_prio_func  func,
gnutls_session_t  session,
const int *restrict  values 
) [static]

static int OpenClient ( vlc_object_t  )  [static]

Initializes a client-side TLS session.

static int OpenServer ( vlc_object_t  )  [static]

Allocates a whole server's TLS credentials.

int vlc_entry__main ( module_t p_module  ) 

const char* vlc_entry_license__main ( void   ) 


Variable Documentation

const error_msg_t cert_errors[] [static]

Initial value:

{
    { GNUTLS_CERT_INVALID,
        "Certificate could not be verified" },
    { GNUTLS_CERT_REVOKED,
        "Certificate was revoked" },
    { GNUTLS_CERT_SIGNER_NOT_FOUND,
        "Certificate's signer was not found" },
    { GNUTLS_CERT_SIGNER_NOT_CA,
        "Certificate's signer is not a CA" },
    { GNUTLS_CERT_INSECURE_ALGORITHM,
        "Insecure certificate signature algorithm" },
    { 0, NULL }
}


Generated on Wed Aug 13 08:04:40 2008 for VLC by  doxygen 1.5.1