X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=ssl%2Ftls_srp.c;h=c363fc309c11faa077d6225b2e31c09fb48bf438;hp=de5ee99a747edcbce3d7d82e09c6ce8aa554825b;hb=51b9115b6dcaf94718de3c8b4d97b00f8cd63cd5;hpb=edc032b5e3f3ebb1006a9c89e0ae00504f47966f diff --git a/ssl/tls_srp.c b/ssl/tls_srp.c index de5ee99a74..c363fc309c 100644 --- a/ssl/tls_srp.c +++ b/ssl/tls_srp.c @@ -4,7 +4,7 @@ * for the EdelKey project and contributed to the OpenSSL project 2004. */ /* ==================================================================== - * Copyright (c) 2004 The OpenSSL Project. All rights reserved. + * Copyright (c) 2004-2011 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -56,12 +56,14 @@ * Hudson (tjh@cryptsoft.com). * */ -#include "ssl_locl.h" -#ifndef OPENSSL_NO_SRP +#include #include #include #include +#include "ssl_locl.h" + +#ifndef OPENSSL_NO_SRP int SSL_CTX_SRP_CTX_free(struct ssl_ctx_st *ctx) { @@ -80,7 +82,6 @@ int SSL_CTX_SRP_CTX_free(struct ssl_ctx_st *ctx) ctx->srp_ctx.SRP_cb_arg = NULL; ctx->srp_ctx.SRP_verify_param_callback = NULL; ctx->srp_ctx.SRP_give_srp_client_pwd_callback = NULL; - ctx->srp_ctx.SRP_TLS_ext_missing_srp_client_username_callback = NULL; ctx->srp_ctx.N = NULL; ctx->srp_ctx.g = NULL; ctx->srp_ctx.s = NULL; @@ -113,7 +114,6 @@ int SSL_SRP_CTX_free(struct ssl_st *s) s->srp_ctx.SRP_cb_arg = NULL; s->srp_ctx.SRP_verify_param_callback = NULL; s->srp_ctx.SRP_give_srp_client_pwd_callback = NULL; - s->srp_ctx.SRP_TLS_ext_missing_srp_client_username_callback = NULL; s->srp_ctx.N = NULL; s->srp_ctx.g = NULL; s->srp_ctx.s = NULL; @@ -142,7 +142,6 @@ int SSL_SRP_CTX_init(struct ssl_st *s) s->srp_ctx.SRP_verify_param_callback = ctx->srp_ctx.SRP_verify_param_callback; /* set SRP client passwd callback */ s->srp_ctx.SRP_give_srp_client_pwd_callback = ctx->srp_ctx.SRP_give_srp_client_pwd_callback; - s->srp_ctx.SRP_TLS_ext_missing_srp_client_username_callback = ctx->srp_ctx.SRP_TLS_ext_missing_srp_client_username_callback; s->srp_ctx.N = NULL; s->srp_ctx.g = NULL; @@ -210,7 +209,6 @@ int SSL_CTX_SRP_CTX_init(struct ssl_ctx_st *ctx) ctx->srp_ctx.SRP_verify_param_callback = NULL; /* set SRP client passwd callback */ ctx->srp_ctx.SRP_give_srp_client_pwd_callback = NULL; - ctx->srp_ctx.SRP_TLS_ext_missing_srp_client_username_callback = NULL; ctx->srp_ctx.N = NULL; ctx->srp_ctx.g = NULL; @@ -234,7 +232,7 @@ int SSL_srp_server_param_with_username(SSL *s, int *ad) unsigned char b[SSL_MAX_MASTER_KEY_LENGTH]; int al; - *ad = SSL_AD_UNKNOWN_SRP_USERNAME; + *ad = SSL_AD_UNKNOWN_PSK_IDENTITY; if ((s->srp_ctx.TLS_ext_srp_username_callback !=NULL) && ((al = s->srp_ctx.TLS_ext_srp_username_callback(s, ad, s->srp_ctx.SRP_cb_arg))!=SSL_ERROR_NONE)) return al; @@ -414,7 +412,7 @@ err: int SRP_Calc_A_param(SSL *s) { - unsigned char rand[SSL_MAX_MASTER_KEY_LENGTH]; + unsigned char rnd[SSL_MAX_MASTER_KEY_LENGTH]; if (BN_num_bits(s->srp_ctx.N) < s->srp_ctx.strength) return 0; @@ -423,10 +421,10 @@ int SRP_Calc_A_param(SSL *s) !SRP_check_known_gN_param(s->srp_ctx.g,s->srp_ctx.N)) return 0; - if (RAND_bytes(rand, sizeof(rand)) <= 0) + if (RAND_bytes(rnd, sizeof(rnd)) <= 0) return 0; - s->srp_ctx.a = BN_bin2bn(rand,sizeof(rand), s->srp_ctx.a); - OPENSSL_cleanse(rand,sizeof(rand)); + s->srp_ctx.a = BN_bin2bn(rnd,sizeof(rnd), s->srp_ctx.a); + OPENSSL_cleanse(rnd,sizeof(rnd)); if (!(s->srp_ctx.A = SRP_Calc_A(s->srp_ctx.a,s->srp_ctx.N,s->srp_ctx.g))) return 0; @@ -438,16 +436,6 @@ int SRP_Calc_A_param(SSL *s) return 1; } -int SRP_have_to_put_srp_username(SSL *s) - { - if (s->srp_ctx.SRP_TLS_ext_missing_srp_client_username_callback == NULL) - return 0; - if ((s->srp_ctx.login = s->srp_ctx.SRP_TLS_ext_missing_srp_client_username_callback(s,s->srp_ctx.SRP_cb_arg)) == NULL) - return 0; - s->srp_ctx.srp_Mask|=SSL_kSRP; - return 1; - } - BIGNUM *SSL_get_srp_g(SSL *s) { if (s->srp_ctx.g != NULL) @@ -519,11 +507,4 @@ int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, char *(*cb)(SSL *,void *)) (void (*)(void))cb); } -int SSL_CTX_set_srp_missing_srp_username_callback(SSL_CTX *ctx, - char *(*cb)(SSL *,void *)) - { - return tls1_ctx_callback_ctrl(ctx, - SSL_CTRL_SET_TLS_EXT_SRP_MISSING_CLIENT_USERNAME_CB, - (void (*)(void))cb); - } #endif