Fix memory leak.
[gnutls.git] / lib / auth_psk.h
blobc71ec15ff96096365380ad560e92848ce382605d
1 /*
2 * Copyright (C) 2005, 2007, 2008 Free Software Foundation
4 * Author: Nikos Mavrogiannopoulos
6 * This file is part of GNUTLS.
8 * The GNUTLS library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public License
10 * as published by the Free Software Foundation; either version 2.1 of
11 * the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
21 * USA
25 #ifndef AUTH_PSK_H
26 # define AUTH_PSK_H
28 #include <gnutls_auth.h>
29 #include <auth_dh_common.h>
31 typedef struct gnutls_psk_client_credentials_st
33 gnutls_datum_t username;
34 gnutls_datum_t key;
35 gnutls_psk_client_credentials_function *get_function;
36 } psk_client_credentials_st;
38 typedef struct gnutls_psk_server_credentials_st
40 char *password_file;
41 /* callback function, instead of reading the
42 * password files.
44 gnutls_psk_server_credentials_function *pwd_callback;
46 /* For DHE_PSK */
47 gnutls_dh_params_t dh_params;
48 /* this callback is used to retrieve the DH or RSA
49 * parameters.
51 gnutls_params_function *params_func;
53 /* Identity hint. */
54 char *hint;
55 } psk_server_cred_st;
57 /* these structures should not use allocated data */
58 typedef struct psk_auth_info_st
60 char username[MAX_SRP_USERNAME + 1];
61 dh_info_st dh;
62 char hint[MAX_SRP_USERNAME + 1];
63 } *psk_auth_info_t;
66 #ifdef ENABLE_PSK
68 typedef struct psk_auth_info_st psk_auth_info_st;
70 int
71 _gnutls_set_psk_session_key (gnutls_session_t session, gnutls_datum_t * psk2);
72 #else
73 # define _gnutls_set_psk_session_key(x,y) GNUTLS_E_INTERNAL_ERROR
74 #endif /* ENABLE_PSK */
76 #endif