Add algorithm skip support.
[openssl.git] / ssl / ssl_locl.h
index 56d6108ea30b5dd62734ac802b802b57153d6259..7a8a303648cde9a5b9f248369051e6fa1a851b2a 100644 (file)
@@ -597,6 +597,7 @@ struct ssl_method_st {
  *      Ticket [10]             EXPLICIT OCTET STRING, -- session ticket (clients only)
  *      Compression_meth [11]   EXPLICIT OCTET STRING, -- optional compression method
  *      SRP_username [ 12 ] EXPLICIT OCTET STRING -- optional SRP username
+ *      flags [ 13 ] EXPLICIT INTEGER -- optional flags
  *      }
  * Look in ssl/ssl_asn1.c for more details
  * I'm using EXPLICIT tags so I can read the damn things using asn1parse :-).
@@ -669,13 +670,17 @@ struct ssl_session_st {
     /* RFC4507 info */
     unsigned char *tlsext_tick; /* Session ticket */
     size_t tlsext_ticklen;      /* Session ticket length */
-    long tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */
+    unsigned long tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */
 # endif
 # ifndef OPENSSL_NO_SRP
     char *srp_username;
 # endif
+    long flags;
 };
 
+/* Extended master secret support */
+#  define SSL_SESS_FLAG_EXTMS             0x1
+
 
 # ifndef OPENSSL_NO_SRP
 
@@ -1674,6 +1679,9 @@ typedef struct cert_st {
      */
     unsigned char *ctypes;
     size_t ctype_num;
+    /* Temporary storage for premaster secret */
+    unsigned char *pms;
+    size_t pmslen;
     /*
      * signature algorithms peer reports: e.g. supported signature algorithms
      * extension for server or as part of a certificate request for client.
@@ -2406,6 +2414,8 @@ int ssl_add_serverhello_use_srtp_ext(SSL *s, unsigned char *p, int *len,
 int ssl_parse_serverhello_use_srtp_ext(SSL *s, unsigned char *d, int len,
                                        int *al);
 
+int ssl_handshake_hash(SSL *s, unsigned char *out, int outlen);
+
 /* s3_cbc.c */
 void ssl3_cbc_copy_mac(unsigned char *out,
                        const SSL3_RECORD *rec, unsigned md_size);