diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2002-12-01 21:47:03 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2002-12-01 21:47:03 +0000 |
commit | 85088089b0982015ee1feccecb5fafdf8f717ebc (patch) | |
tree | 69de94d4d8e55f2eab89527aca047c0fe17da74c /lib | |
parent | 648adb7f12bea73c169088d00b1f3261e1ebff80 (diff) | |
download | gnutls-85088089b0982015ee1feccecb5fafdf8f717ebc.tar.gz |
Added the function gnutls_srp_server_set_credentials_function()
to allow retrieving SRP parameters from an external backend - other
than password files.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gnutls_dh.h | 2 | ||||
-rw-r--r-- | lib/gnutls_dh_primes.c | 32 |
2 files changed, 17 insertions, 17 deletions
diff --git a/lib/gnutls_dh.h b/lib/gnutls_dh.h index aff0144ace..5a455df188 100644 --- a/lib/gnutls_dh.h +++ b/lib/gnutls_dh.h @@ -24,6 +24,6 @@ MPI gnutls_calc_dh_key( MPI f, MPI x, MPI prime ); int _gnutls_dh_generate_prime(MPI *ret_g, MPI* ret_n, int bits); void _gnutls_dh_clear_mpis(void); int _gnutls_dh_calc_mpis(void); -MPI _gnutls_get_rnd_srp_params( MPI * ret_p, int bits); +int _gnutls_get_rnd_srp_params(gnutls_datum *g, gnutls_datum* p, int bits); extern _gnutls_dh_params _gnutls_dh_default_params; diff --git a/lib/gnutls_dh_primes.c b/lib/gnutls_dh_primes.c index e89a224998..9eda417692 100644 --- a/lib/gnutls_dh_primes.c +++ b/lib/gnutls_dh_primes.c @@ -420,42 +420,42 @@ GNUTLS_MPI gnutls_get_dh_params(gnutls_dh_params dh_primes, /* returns g and p, depends on the requested bits. * We only support limited key sizes. */ -GNUTLS_MPI _gnutls_get_rnd_srp_params(GNUTLS_MPI * ret_p, int bits) +int _gnutls_get_rnd_srp_params(gnutls_datum *g, gnutls_datum* p, int bits) { - GNUTLS_MPI g = NULL, prime = NULL; int i; if (_gnutls_dh_default_params == NULL) { gnutls_assert(); - return NULL; + return GNUTLS_E_INTERNAL_ERROR; } + g->data = p->data = NULL; + g->size = p->size = 0; + bits = normalize_bits(bits); i = 0; do { if (_gnutls_dh_default_params[i].bits == bits) { - prime = - _gnutls_mpi_copy(_gnutls_dh_default_params[i]. - _prime); - g = _gnutls_mpi_copy(_gnutls_dh_default_params[i]. - _generator); + gnutls_set_datum( p, _gnutls_dh_default_params[i].prime.data, + _gnutls_dh_default_params[i].prime.size); + + gnutls_set_datum( g, _gnutls_dh_default_params[i].generator.data, + _gnutls_dh_default_params[i].generator.size); + break; } i++; } while (_gnutls_dh_default_params[i].bits != 0); - if (prime == NULL || g == NULL) { /* if not prime was found */ + if (g->data == NULL || p->data == NULL) { gnutls_assert(); - _gnutls_mpi_release(&g); - _gnutls_mpi_release(&prime); - *ret_p = NULL; - return NULL; + gnutls_free_datum(&g); + gnutls_free_datum(&p); + return GNUTLS_E_INTERNAL_ERROR; } - if (ret_p) - *ret_p = prime; - return g; + return 0; } /* These should be added in gcrypt.h */ |