File: gnutls_srp_set_server_credentials_function

package info (click to toggle)
gnutls28 3.3.8-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 51,388 kB
  • sloc: ansic: 191,357; asm: 60,370; sh: 21,457; makefile: 5,257; lisp: 1,531; yacc: 1,254; cpp: 1,155; perl: 199; sed: 16
file content (37 lines) | stat: -rw-r--r-- 1,624 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37




@deftypefun {void} {gnutls_srp_set_server_credentials_function} (gnutls_srp_server_credentials_t         @var{cred}, gnutls_srp_server_credentials_function         * @var{func})
@var{cred}: is a @code{gnutls_srp_server_credentials_t}  structure.

@var{func}: is the callback function

This function can be used to set a callback to retrieve the user's
SRP credentials.  The callback's function form is:

int (*callback)(gnutls_session_t, const char* username,
gnutls_datum_t *salt, gnutls_datum_t *verifier, gnutls_datum_t *generator,
gnutls_datum_t *prime);

 @code{username} contains the actual username.
The  @code{salt} ,  @code{verifier} ,  @code{generator} and  @code{prime} must be filled
in using the @code{gnutls_malloc()} . For convenience  @code{prime} and  @code{generator} may also be one of the static parameters defined in gnutls.h.

Initially, the data field is NULL in every @code{gnutls_datum_t} 
structure that the callback has to fill in. When the
callback is done GnuTLS deallocates all of those buffers
which are non-NULL, regardless of the return value.

In order to prevent attackers from guessing valid usernames,
if a user does not exist, g and n values should be filled in
using a random user's parameters. In that case the callback must
return the special value (1).
See @code{gnutls_srp_set_server_fake_salt_seed}  too.
If this is not required for your application, return a negative
number from the callback to abort the handshake.

The callback function will only be called once per handshake.
The callback function should return 0 on success, while
-1 indicates an error.
@end deftypefun