| Index: net/third_party/nss/ssl/sslimpl.h
 | 
| ===================================================================
 | 
| --- net/third_party/nss/ssl/sslimpl.h	(revision 215189)
 | 
| +++ net/third_party/nss/ssl/sslimpl.h	(working copy)
 | 
| @@ -64,6 +64,7 @@
 | 
|  #define calg_aes	ssl_calg_aes
 | 
|  #define calg_camellia	ssl_calg_camellia
 | 
|  #define calg_seed	ssl_calg_seed
 | 
| +#define calg_aes_gcm    ssl_calg_aes_gcm
 | 
|  
 | 
|  #define mac_null	ssl_mac_null
 | 
|  #define mac_md5 	ssl_mac_md5
 | 
| @@ -290,9 +291,9 @@
 | 
|  } ssl3CipherSuiteCfg;
 | 
|  
 | 
|  #ifdef NSS_ENABLE_ECC
 | 
| -#define ssl_V3_SUITES_IMPLEMENTED 57
 | 
| +#define ssl_V3_SUITES_IMPLEMENTED 61
 | 
|  #else
 | 
| -#define ssl_V3_SUITES_IMPLEMENTED 35
 | 
| +#define ssl_V3_SUITES_IMPLEMENTED 37
 | 
|  #endif /* NSS_ENABLE_ECC */
 | 
|  
 | 
|  #define MAX_DTLS_SRTP_CIPHER_SUITES 4
 | 
| @@ -440,20 +441,6 @@
 | 
|  #define GS_DATA		3
 | 
|  #define GS_PAD		4
 | 
|  
 | 
| -typedef SECStatus (*SSLCipher)(void *               context, 
 | 
| -                               unsigned char *      out,
 | 
| -			       int *                outlen, 
 | 
| -			       int                  maxout, 
 | 
| -			       const unsigned char *in,
 | 
| -			       int                  inlen);
 | 
| -typedef SECStatus (*SSLCompressor)(void *               context,
 | 
| -                                   unsigned char *      out,
 | 
| -                                   int *                outlen,
 | 
| -                                   int                  maxout,
 | 
| -                                   const unsigned char *in,
 | 
| -                                   int                  inlen);
 | 
| -typedef SECStatus (*SSLDestroy)(void *context, PRBool freeit);
 | 
| -
 | 
|  #if defined(NSS_PLATFORM_CLIENT_AUTH) && defined(XP_WIN32)
 | 
|  typedef PCERT_KEY_CONTEXT PlatformKey;
 | 
|  #elif defined(NSS_PLATFORM_CLIENT_AUTH) && defined(XP_MACOSX)
 | 
| @@ -485,11 +472,12 @@
 | 
|      cipher_camellia_128,
 | 
|      cipher_camellia_256,
 | 
|      cipher_seed,
 | 
| +    cipher_aes_128_gcm,
 | 
|      cipher_missing              /* reserved for no such supported cipher */
 | 
|      /* This enum must match ssl3_cipherName[] in ssl3con.c.  */
 | 
|  } SSL3BulkCipher;
 | 
|  
 | 
| -typedef enum { type_stream, type_block } CipherType;
 | 
| +typedef enum { type_stream, type_block, type_aead } CipherType;
 | 
|  
 | 
|  #define MAX_IV_LENGTH 24
 | 
|  
 | 
| @@ -531,6 +519,31 @@
 | 
|      PRUint64    cipher_context[MAX_CIPHER_CONTEXT_LLONGS];
 | 
|  } ssl3KeyMaterial;
 | 
|  
 | 
| +typedef SECStatus (*SSLCipher)(void *               context, 
 | 
| +                               unsigned char *      out,
 | 
| +			       int *                outlen, 
 | 
| +			       int                  maxout, 
 | 
| +			       const unsigned char *in,
 | 
| +			       int                  inlen);
 | 
| +typedef SECStatus (*SSLAEADCipher)(
 | 
| +			       ssl3KeyMaterial *    keys,
 | 
| +			       PRBool               doDecrypt,
 | 
| +			       unsigned char *      out,
 | 
| +			       int *                outlen,
 | 
| +			       int                  maxout,
 | 
| +			       const unsigned char *in,
 | 
| +			       int                  inlen,
 | 
| +			       SSL3ContentType      type,
 | 
| +			       SSL3ProtocolVersion  version,
 | 
| +			       SSL3SequenceNumber   seqnum);
 | 
| +typedef SECStatus (*SSLCompressor)(void *               context,
 | 
| +                                   unsigned char *      out,
 | 
| +                                   int *                outlen,
 | 
| +                                   int                  maxout,
 | 
| +                                   const unsigned char *in,
 | 
| +                                   int                  inlen);
 | 
| +typedef SECStatus (*SSLDestroy)(void *context, PRBool freeit);
 | 
| +
 | 
|  /* The DTLS anti-replay window. Defined here because we need it in
 | 
|   * the cipher spec. Note that this is a ring buffer but left and
 | 
|   * right represent the true window, with modular arithmetic used to
 | 
| @@ -557,6 +570,7 @@
 | 
|      int                mac_size;
 | 
|      SSLCipher          encode;
 | 
|      SSLCipher          decode;
 | 
| +    SSLAEADCipher      aead;
 | 
|      SSLDestroy         destroy;
 | 
|      void *             encodeContext;
 | 
|      void *             decodeContext;
 | 
| @@ -706,8 +720,6 @@
 | 
|      PRBool                   tls_keygen;
 | 
|  } ssl3KEADef;
 | 
|  
 | 
| -typedef enum { kg_null, kg_strong, kg_export } SSL3KeyGenMode;
 | 
| -
 | 
|  /*
 | 
|  ** There are tables of these, all const.
 | 
|  */
 | 
| @@ -719,7 +731,8 @@
 | 
|      CipherType      type;
 | 
|      int             iv_size;
 | 
|      int             block_size;
 | 
| -    SSL3KeyGenMode  keygen_mode;
 | 
| +    int             tag_size;  /* authentication tag size for AEAD ciphers. */
 | 
| +    int             explicit_nonce_size;               /* for AEAD ciphers. */
 | 
|  };
 | 
|  
 | 
|  /*
 | 
| 
 |