CalculateMasterSecret() static private method

static private CalculateMasterSecret ( TlsContext context, byte pre_master_secret ) : byte[]
context TlsContext
pre_master_secret byte
return byte[]
Example #1
0
 protected internal static void EstablishMasterSecret(TlsContext context, TlsKeyExchange keyExchange)
 {
     byte[] array = keyExchange.GeneratePremasterSecret();
     try
     {
         context.SecurityParameters.masterSecret = TlsUtilities.CalculateMasterSecret(context, array);
     }
     finally
     {
         if (array != null)
         {
             Arrays.Fill(array, 0);
         }
     }
 }
Example #2
0
        protected internal static void EstablishMasterSecret(TlsContext context, TlsKeyExchange keyExchange)
        {
            byte[] pre_master_secret = keyExchange.GeneratePremasterSecret();

            try
            {
                context.SecurityParameters.masterSecret = TlsUtilities.CalculateMasterSecret(context, pre_master_secret);
            }
            finally
            {
                // TODO Is there a way to ensure the data is really overwritten?

                /*
                 * RFC 2246 8.1. The pre_master_secret should be deleted from memory once the
                 * master_secret has been computed.
                 */
                if (pre_master_secret != null)
                {
                    Arrays.Fill(pre_master_secret, (byte)0);
                }
            }
        }