Commit 35fafc4d authored by Matt Caswell's avatar Matt Caswell
Browse files

Cleanse buffers



Cleanse various intermediate buffers used by the PRF (backported version
from master).

Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
parent 0c14565c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -877,6 +877,7 @@ int ssl3_generate_master_secret(SSL *s, unsigned char *out, unsigned char *p,
                        s, s->msg_callback_arg);
    }
#endif
    OPENSSL_cleanse(buf, sizeof buf);
    return (ret);
}

+5 −0
Original line number Diff line number Diff line
@@ -976,6 +976,8 @@ int tls1_final_finish_mac(SSL *s,
        err = 1;
    EVP_MD_CTX_cleanup(&ctx);

    OPENSSL_cleanse(buf, (int)(q - buf));
    OPENSSL_cleanse(buf2, sizeof(buf2));
    if (err)
        return 0;
    else
@@ -1139,6 +1141,7 @@ int tls1_generate_master_secret(SSL *s, unsigned char *out, unsigned char *p,
             co, col,
             s->s3->server_random, SSL3_RANDOM_SIZE,
             so, sol, p, len, s->session->master_key, buff, sizeof buff);
    OPENSSL_cleanse(buff, sizeof buff);
#ifdef SSL_DEBUG
    fprintf(stderr, "Premaster Secret:\n");
    BIO_dump_fp(stderr, (char *)p, len);
@@ -1249,6 +1252,8 @@ int tls1_export_keying_material(SSL *s, unsigned char *out, size_t olen,
                  NULL, 0,
                  s->session->master_key, s->session->master_key_length,
                  out, buff, olen);
    OPENSSL_cleanse(val, vallen);
    OPENSSL_cleanse(buff, olen);

#ifdef KSSL_DEBUG
    fprintf(stderr, "tls1_export_keying_material() complete\n");