Factor SSLv3 key derivation steps into an ssl3_PRF.

Fix up the generate_master_secret parameter while we're here.

Change-Id: I1c80796d1f481be0c3eefcf3222f2d9fc1de4a51
Reviewed-on: https://boringssl-review.googlesource.com/2696
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/ssl/t1_enc.c b/ssl/t1_enc.c
index b24781a..7385e7f 100644
--- a/ssl/t1_enc.c
+++ b/ssl/t1_enc.c
@@ -1142,8 +1142,8 @@
   return md_size;
 }
 
-int tls1_generate_master_secret(SSL *s, uint8_t *out, uint8_t *premaster,
-                                int premaster_len) {
+int tls1_generate_master_secret(SSL *s, uint8_t *out, const uint8_t *premaster,
+                                size_t premaster_len) {
   if (s->s3->tmp.extended_master_secret) {
     uint8_t digests[2 * EVP_MAX_MD_SIZE];
     int digests_len;