Inheritance: System.Security.Cryptography.DeriveBytes, IDisposable
Ejemplo n.º 1
0
        protected void Initialize(byte[] secret, byte[] label, byte[] seed)
        {
            if (secret == null || seed == null)
            {
                throw new ArgumentNullException();
            }
            m_Disposed = false;
            // ls = label + seed
            byte[] ls = new byte[label.Length + seed.Length];
            Array.Copy(label, 0, ls, 0, label.Length);
            Array.Copy(seed, 0, ls, label.Length, seed.Length);
            // split the secret in two halves
            int length;

            if (secret.Length % 2 == 0)
            {
                length = secret.Length / 2;
            }
            else
            {
                length = (secret.Length / 2) + 1;
            }
            byte[] s1 = new byte[length];
            byte[] s2 = new byte[length];
            Array.Copy(secret, 0, s1, 0, length);
            Array.Copy(secret, secret.Length - length, s2, 0, length);
            // create ExpansionDeriveBytes objects
            m_MD5  = new ExpansionDeriveBytes(new MD5CryptoServiceProvider(), s1, ls);
            m_SHA1 = new ExpansionDeriveBytes(new SHA1CryptoServiceProvider(), s2, ls);
        }
Ejemplo n.º 2
0
		protected void Initialize(byte[] secret, byte[] label, byte[] seed) {
			if (secret == null || seed == null)
				throw new ArgumentNullException();
			m_Disposed = false;
			// ls = label + seed
			byte[] ls = new byte[label.Length + seed.Length];
			Array.Copy(label, 0, ls, 0, label.Length);
			Array.Copy(seed, 0, ls, label.Length, seed.Length);
			// split the secret in two halves
			int length;
			if (secret.Length % 2 == 0) {
				length = secret.Length / 2;
			} else {
				length = (secret.Length / 2) + 1;
			}
			byte[] s1 = new byte[length];
			byte[] s2 = new byte[length];
			Array.Copy(secret, 0, s1, 0, length);
			Array.Copy(secret, secret.Length - length, s2, 0, length);
			// create ExpansionDeriveBytes objects
			m_MD5 = new ExpansionDeriveBytes(new MD5CryptoServiceProvider(), s1, ls);
			m_SHA1 = new ExpansionDeriveBytes(new SHA1CryptoServiceProvider(), s2, ls);
		}