#define GNUTLS_RSA_PSK_AES_128_CBC_SHA1 { 0x00, 0x94 }
#define GNUTLS_RSA_PSK_AES_256_CBC_SHA1 { 0x00, 0x95 }
+#ifdef ENABLE_SRP
/* SRP (rfc5054)
*/
#define GNUTLS_SRP_SHA_3DES_EDE_CBC_SHA1 { 0xC0, 0x1A }
#define GNUTLS_SRP_SHA_AES_256_CBC_SHA1 { 0xC0, 0x20 }
#define GNUTLS_SRP_SHA_RSA_AES_256_CBC_SHA1 { 0xC0, 0x21 }
#define GNUTLS_SRP_SHA_DSS_AES_256_CBC_SHA1 { 0xC0, 0x22 }
+#endif
/* RSA
*/
return 0;
}
-
+#endif /* ENABLE_SRP */
/* Static parameters according to draft-ietf-tls-srp-07
* Note that if more parameters are added check_g_n()
(void *) &srp8192_generator, sizeof(srp8192_generator)
};
+#ifdef ENABLE_SRP
+
/* Check if G and N are parameters from the SRP draft.
*/
static int
#include "errors.h"
#include <datum.h>
#include <auth/srp_passwd.h>
+#include "attribute.h"
#ifdef ENABLE_SRP
return 0;
}
+#else
+
+int
+gnutls_srp_base64_encode(const gnutls_datum_t *data MAYBE_UNUSED,
+ char *result MAYBE_UNUSED,
+ size_t *result_size MAYBE_UNUSED)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int
+gnutls_srp_base64_encode2(const gnutls_datum_t *data MAYBE_UNUSED,
+ gnutls_datum_t *result MAYBE_UNUSED)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int
+gnutls_srp_base64_decode(const gnutls_datum_t *b64_data MAYBE_UNUSED,
+ char *result MAYBE_UNUSED,
+ size_t *result_size MAYBE_UNUSED)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int
+gnutls_srp_base64_decode2(const gnutls_datum_t *b64_data MAYBE_UNUSED,
+ gnutls_datum_t *result MAYBE_UNUSED)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
#endif /* ENABLE_SRP */
const char *server_session::get_srp_username () const
{
-#ifdef ENABLE_SRP
return gnutls_srp_server_get_username (s);
-#else
- return NULL;
-#endif
}
const char *server_session::get_psk_username () const
// SRP
-#ifdef ENABLE_SRP
-
srp_server_credentials::srp_server_credentials ():credentials
(GNUTLS_CRD_SRP)
{
gnutls_srp_set_client_credentials_function (cred, func);
}
-#endif /* ENABLE_SRP */
-
// PSK
psk_server_credentials::psk_server_credentials ():credentials
static int unpack_certificate_auth_info(gnutls_session_t,
gnutls_buffer_st * packed_session);
+#ifdef ENABLE_SRP
static int unpack_srp_auth_info(gnutls_session_t session,
gnutls_buffer_st * packed_session);
static int pack_srp_auth_info(gnutls_session_t session,
gnutls_buffer_st * packed_session);
+#endif
static int unpack_psk_auth_info(gnutls_session_t session,
gnutls_buffer_st * packed_session);
#include <random.h>
#include "debug.h"
-
+#include "attribute.h"
/* Here functions for SRP (like g^x mod n) are defined
*/
cred->fake_salt_length = (salt_length < mac_len ? salt_length : mac_len);
}
+#else
+
+void gnutls_srp_free_client_credentials(gnutls_srp_client_credentials_t sc MAYBE_UNUSED)
+{
+}
+
+int
+gnutls_srp_allocate_client_credentials(gnutls_srp_client_credentials_t *sc MAYBE_UNUSED)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int
+gnutls_srp_set_client_credentials(gnutls_srp_client_credentials_t res MAYBE_UNUSED,
+ const char *username MAYBE_UNUSED,
+ const char *password MAYBE_UNUSED)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+void
+gnutls_srp_free_server_credentials(gnutls_srp_server_credentials_t sc MAYBE_UNUSED)
+{
+}
+
+int
+gnutls_srp_allocate_server_credentials(gnutls_srp_server_credentials_t *sc MAYBE_UNUSED)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int
+gnutls_srp_set_server_credentials_file(gnutls_srp_server_credentials_t res MAYBE_UNUSED,
+ const char *password_file MAYBE_UNUSED,
+ const char *password_conf_file MAYBE_UNUSED)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+void
+gnutls_srp_set_server_credentials_function(gnutls_srp_server_credentials_t cred MAYBE_UNUSED,
+ gnutls_srp_server_credentials_function *func MAYBE_UNUSED)
+{
+}
+
+void
+gnutls_srp_set_client_credentials_function(gnutls_srp_client_credentials_t cred MAYBE_UNUSED,
+ gnutls_srp_client_credentials_function *func MAYBE_UNUSED)
+{
+}
+
+const char *
+gnutls_srp_server_get_username(gnutls_session_t session MAYBE_UNUSED)
+{
+ return NULL;
+}
+
+int
+gnutls_srp_verifier(const char *username MAYBE_UNUSED,
+ const char *password MAYBE_UNUSED,
+ const gnutls_datum_t *salt MAYBE_UNUSED,
+ const gnutls_datum_t *generator MAYBE_UNUSED,
+ const gnutls_datum_t *prime MAYBE_UNUSED,
+ gnutls_datum_t *res MAYBE_UNUSED)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+void
+gnutls_srp_set_prime_bits(gnutls_session_t session MAYBE_UNUSED,
+ unsigned int bits MAYBE_UNUSED)
+{
+}
+
+void
+gnutls_srp_set_server_fake_salt_seed(gnutls_srp_server_credentials_t cred MAYBE_UNUSED,
+ const gnutls_datum_t *seed MAYBE_UNUSED,
+ unsigned int salt_length MAYBE_UNUSED)
+{
+}
+
#endif /* ENABLE_SRP */
return ret;
}
+#ifdef ENABLE_SRP
static int
srp_username_callback(gnutls_session_t session,
char **username, char **password)
return 0;
}
+#endif
static int
psk_callback(gnutls_session_t session, char **username,
else if (kx == GNUTLS_KX_ECDHE_RSA
|| kx == GNUTLS_KX_ECDHE_ECDSA)
print_ecdh_info(session, "Ephemeral ", verbose);
+ break;
+ default:
+ log_msg(stdout, "- Unknown credential type %d\n", cred);
+ break;
}