{
SSL3_STATE *s3;
- if ((s3=Malloc(sizeof *s3)) == NULL) goto err;
+ if ((s3=OPENSSL_malloc(sizeof *s3)) == NULL) goto err;
memset(s3,0,sizeof *s3);
s->s3=s3;
ssl3_cleanup_key_block(s);
if (s->s3->rbuf.buf != NULL)
- Free(s->s3->rbuf.buf);
+ OPENSSL_free(s->s3->rbuf.buf);
if (s->s3->wbuf.buf != NULL)
- Free(s->s3->wbuf.buf);
+ OPENSSL_free(s->s3->wbuf.buf);
if (s->s3->rrec.comp != NULL)
- Free(s->s3->rrec.comp);
+ OPENSSL_free(s->s3->rrec.comp);
#ifndef NO_DH
if (s->s3->tmp.dh != NULL)
DH_free(s->s3->tmp.dh);
if (s->s3->tmp.ca_names != NULL)
sk_X509_NAME_pop_free(s->s3->tmp.ca_names,X509_NAME_free);
memset(s->s3,0,sizeof *s->s3);
- Free(s->s3);
+ OPENSSL_free(s->s3);
s->s3=NULL;
}
if (s->s3->rrec.comp != NULL)
{
- Free(s->s3->rrec.comp);
+ OPENSSL_free(s->s3->rrec.comp);
s->s3->rrec.comp=NULL;
}
#ifndef NO_DH
case SSL_CTRL_SET_TMP_RSA:
{
RSA *rsa = (RSA *)parg;
- if (rsa == NULL) {
+ if (rsa == NULL)
+ {
SSLerr(SSL_F_SSL3_CTRL, ERR_R_PASSED_NULL_PARAMETER);
return(ret);
- }
- if ((rsa = RSAPrivateKey_dup(rsa)) == NULL) {
+ }
+ if ((rsa = RSAPrivateKey_dup(rsa)) == NULL)
+ {
SSLerr(SSL_F_SSL3_CTRL, ERR_R_RSA_LIB);
return(ret);
- }
+ }
if (s->cert->rsa_tmp != NULL)
RSA_free(s->cert->rsa_tmp);
s->cert->rsa_tmp = rsa;
case SSL_CTRL_SET_TMP_DH:
{
DH *dh = (DH *)parg;
- if (dh == NULL) {
+ if (dh == NULL)
+ {
SSLerr(SSL_F_SSL3_CTRL, ERR_R_PASSED_NULL_PARAMETER);
return(ret);
- }
- if ((dh = DHparams_dup(dh)) == NULL) {
+ }
+ if ((dh = DHparams_dup(dh)) == NULL)
+ {
SSLerr(SSL_F_SSL3_CTRL, ERR_R_DH_LIB);
return(ret);
- }
- if (!DH_generate_key(dh)) {
- DH_free(dh);
- SSLerr(SSL_F_SSL3_CTRL, ERR_R_DH_LIB);
- return(ret);
- }
+ }
+ if (!(s->options & SSL_OP_SINGLE_DH_USE))
+ {
+ if (!DH_generate_key(dh))
+ {
+ DH_free(dh);
+ SSLerr(SSL_F_SSL3_CTRL, ERR_R_DH_LIB);
+ return(ret);
+ }
+ }
if (s->cert->dh_tmp != NULL)
DH_free(s->cert->dh_tmp);
s->cert->dh_tmp = dh;
0)
{
if (!ssl_cert_inst(&s->cert))
- {
- SSLerr(SSL_F_SSL3_CTRL, ERR_R_MALLOC_FAILURE);
+ {
+ SSLerr(SSL_F_SSL3_CALLBACK_CTRL, ERR_R_MALLOC_FAILURE);
return(0);
}
}
case SSL_CTRL_SET_TMP_DH:
{
DH *new=NULL,*dh;
- int rret=0;
dh=(DH *)parg;
- if ( ((new=DHparams_dup(dh)) == NULL) ||
- (!DH_generate_key(new)))
+ if ((new=DHparams_dup(dh)) == NULL)
{
SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_DH_LIB);
- if (new != NULL) DH_free(new);
+ return 0;
}
- else
+ if (!(ctx->options & SSL_OP_SINGLE_DH_USE))
{
- if (cert->dh_tmp != NULL)
- DH_free(cert->dh_tmp);
- cert->dh_tmp=new;
- rret=1;
+ if (!DH_generate_key(new))
+ {
+ SSLerr(SSL_F_SSL3_CTX_CTRL,ERR_R_DH_LIB);
+ DH_free(new);
+ return 0;
+ }
}
- return(rret);
+ if (cert->dh_tmp != NULL)
+ DH_free(cert->dh_tmp);
+ cert->dh_tmp=new;
+ return 1;
}
/*break; */
case SSL_CTRL_SET_TMP_DH_CB:
cpp=(SSL_CIPHER **)OBJ_bsearch((char *)&cp,
(char *)sorted,
SSL3_NUM_CIPHERS,sizeof(SSL_CIPHER *),
- (int (*)())ssl_cipher_ptr_id_cmp);
+ FP_ICC ssl_cipher_ptr_id_cmp);
if ((cpp == NULL) || !(*cpp)->valid)
return(NULL);
else
int ssl3_peek(SSL *s, char *buf, int len)
{
+#if 1
+ SSLerr(SSL_F_SSL3_PEEK, SSL_R_FIXME); /* function is totally broken */
+ return -1;
+#else
SSL3_RECORD *rr;
int n;
n=len;
memcpy(buf,&(rr->data[rr->off]),(unsigned int)n);
return(n);
+#endif
}
int ssl3_renegotiate(SSL *s)