projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add block comment
[openssl.git]
/
ssl
/
tls_srp.c
diff --git
a/ssl/tls_srp.c
b/ssl/tls_srp.c
index 6bd78452449e6175a80ee0cc7eff20fd38a45f5a..64a3f23df74b029940e026106111b4ffb8299bfc 100644
(file)
--- a/
ssl/tls_srp.c
+++ b/
ssl/tls_srp.c
@@
-332,7
+332,7
@@
int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g,
return 1;
}
return 1;
}
-int
SRP_generate_server_master_secret(SSL *s, unsigned char *master_key
)
+int
srp_generate_server_master_secret(SSL *s
)
{
BIGNUM *K = NULL, *u = NULL;
int ret = -1, tmp_len = 0;
{
BIGNUM *K = NULL, *u = NULL;
int ret = -1, tmp_len = 0;
@@
-350,17
+350,15
@@
int SRP_generate_server_master_secret(SSL *s, unsigned char *master_key)
if ((tmp = OPENSSL_malloc(tmp_len)) == NULL)
goto err;
BN_bn2bin(K, tmp);
if ((tmp = OPENSSL_malloc(tmp_len)) == NULL)
goto err;
BN_bn2bin(K, tmp);
- ret = s->method->ssl3_enc->generate_master_secret(s, master_key, tmp,
- tmp_len);
+ ret = ssl_generate_master_secret(s, tmp, tmp_len, 1);
err:
err:
- OPENSSL_clear_free(tmp, tmp_len);
BN_clear_free(K);
BN_clear_free(u);
return ret;
}
/* client side */
BN_clear_free(K);
BN_clear_free(u);
return ret;
}
/* client side */
-int
SRP_generate_client_master_secret(SSL *s, unsigned char *master_key
)
+int
srp_generate_client_master_secret(SSL *s
)
{
BIGNUM *x = NULL, *u = NULL, *K = NULL;
int ret = -1, tmp_len = 0;
{
BIGNUM *x = NULL, *u = NULL, *K = NULL;
int ret = -1, tmp_len = 0;
@@
-391,14
+389,12
@@
int SRP_generate_client_master_secret(SSL *s, unsigned char *master_key)
if ((tmp = OPENSSL_malloc(tmp_len)) == NULL)
goto err;
BN_bn2bin(K, tmp);
if ((tmp = OPENSSL_malloc(tmp_len)) == NULL)
goto err;
BN_bn2bin(K, tmp);
- ret =
- s->method->ssl3_enc->generate_master_secret(s, master_key, tmp,
- tmp_len);
+ ret = ssl_generate_master_secret(s, tmp, tmp_len, 1);
err:
err:
- OPENSSL_clear_free(tmp, tmp_len);
BN_clear_free(K);
BN_clear_free(x);
BN_clear_free(K);
BN_clear_free(x);
- OPENSSL_clear_free(passwd, strlen(passwd));
+ if (passwd != NULL)
+ OPENSSL_clear_free(passwd, strlen(passwd));
BN_clear_free(u);
return ret;
}
BN_clear_free(u);
return ret;
}