Пример #1
0
        private static PbeParametersGenerator MakePbeGenerator(string type, IDigest digest, byte[] key, byte[] salt, int iterationCount)
        {
            //IL_0066: Unknown result type (might be due to invalid IL or missing references)
            PbeParametersGenerator pbeParametersGenerator;

            if (type.Equals("Pkcs5S1"))
            {
                pbeParametersGenerator = new Pkcs5S1ParametersGenerator(digest);
            }
            else if (type.Equals("Pkcs5S2"))
            {
                pbeParametersGenerator = new Pkcs5S2ParametersGenerator();
            }
            else if (type.Equals("Pkcs12"))
            {
                pbeParametersGenerator = new Pkcs12ParametersGenerator(digest);
            }
            else
            {
                if (!type.Equals("OpenSsl"))
                {
                    throw new ArgumentException("Unknown PBE type: " + type, "type");
                }
                pbeParametersGenerator = new OpenSslPbeParametersGenerator();
            }
            pbeParametersGenerator.Init(key, salt, iterationCount);
            return(pbeParametersGenerator);
        }
Пример #2
0
        static PbeParametersGenerator MakePbeGenerator(
            string type,
            IDigest digest,
            byte[]  key,
            byte[]  salt,
            int iterationCount)
        {
            PbeParametersGenerator generator;

            if (type.Equals(Pkcs5S1))
            {
                generator = new Pkcs5S1ParametersGenerator(digest);
            }
            else if (type.Equals(Pkcs5S2))
            {
                generator = new Pkcs5S2ParametersGenerator();
            }
            else if (type.Equals(Pkcs12))
            {
                generator = new Pkcs12ParametersGenerator(digest);
            }
            else if (type.Equals(OpenSsl))
            {
                generator = new OpenSslPbeParametersGenerator();
            }
            else
            {
                throw new ArgumentException("Unknown PBE type: " + type, "type");
            }

            generator.Init(key, salt, iterationCount);
            return(generator);
        }
Пример #3
0
    private static PbeParametersGenerator MakePbeGenerator(string type, IDigest digest, byte[] key, byte[] salt, int iterationCount)
    {
        PbeParametersGenerator pbeParametersGenerator;

        if (type.Equals("Pkcs5S1"))
        {
            pbeParametersGenerator = new Pkcs5S1ParametersGenerator(digest);
        }
        else if (type.Equals("Pkcs5S2"))
        {
            pbeParametersGenerator = new Pkcs5S2ParametersGenerator();
        }
        else if (type.Equals("Pkcs12"))
        {
            pbeParametersGenerator = new Pkcs12ParametersGenerator(digest);
        }
        else
        {
            if (!type.Equals("OpenSsl"))
            {
                throw new ArgumentException("Unknown PBE type: " + type, "type");
            }
            pbeParametersGenerator = new OpenSslPbeParametersGenerator();
        }
        pbeParametersGenerator.Init(key, salt, iterationCount);
        return(pbeParametersGenerator);
    }
Пример #4
0
        private byte[] BcPkcs5Scheme(char[] password, byte[] salt,
                                     int iterationCount)
        {
            var generator = new Pkcs5S1ParametersGenerator(
                GetDigest());

            generator.Init(PbeParametersGenerator.Pkcs5PasswordToUtf8Bytes(password),
                           salt,
                           iterationCount);

            return(((KeyParameter)generator.GenerateDerivedParameters(_config.CipherAlgorithm.ToString(), GetKeySize())).GetKey());
        }
Пример #5
0
        public override void PerformTest()
        {
            base.PerformTest();

            millionATest(million_a_digest);

            byte[] data = Strings.ToUtf8ByteArray("fred");

            KeyParameter key = new KeyParameter(Pkcs5S1ParametersGenerator.Pkcs5PasswordToUtf8Bytes("1".ToCharArray()));

            byte[] mac = MacUtilities.CalculateMac("HMAC/GOST3411", key, data);

            if (!Arrays.AreEqual(Hex.Decode("e9f98610cfc80084462b175a15d2b4ec10b2ab892eae5a6179d572d9b1db6b72"), mac))
            {
                Fail("mac calculation failed.");
            }
        }
Пример #6
0
        private async Task <byte[]> GetPasswordFromUser(int nServerGUID, String strServerName, byte[] abyPasswordSalt, bool bFailedBefore, CancellationToken cancelToken)
        {
            LoginDialogData result = null;

            try
            {
                String strText = "Enter the " + (string)Application.Current.FindResource("AppName") + " password for " + strServerName;
                if (bFailedBefore)
                {
                    strText = "Authentication failed. " + strText;
                }

                result = await m_dialogCoordinator.ShowLoginAsync(this, "Authentication", strText
                                                                  , new LoginDialogSettings()
                {
                    ColorScheme                = MetroDialogColorScheme.Theme,
                    ShouldHideUsername         = true,
                    EnablePasswordPreview      = true,
                    RememberCheckBoxVisibility = Visibility.Visible,
                    NegativeButtonText         = "Cancel",
                    NegativeButtonVisibility   = Visibility.Visible,
                    AffirmativeButtonText      = "OK",
                    CancellationToken          = cancelToken
                });
            }
            catch (Exception e)
            {
                Log.w(TAG, "LoginDialog Exception: " + e.Message);
                result = null;
            }
            if (result != null)
            {
                byte[] abyPassword = result.SecurePassword.ToByteArray();
                try
                {
                    byte[] key = await Task.Run(() =>
                    {
                        Pkcs5S1ParametersGenerator gen = new Pkcs5S1ParametersGenerator(new Sha256Digest());
                        gen.Init(abyPassword, abyPasswordSalt, ITERATIONS);
#pragma warning disable CS0618 // Type or member is obsolete
                        return(((KeyParameter)gen.GenerateDerivedParameters(256)).GetKey());

#pragma warning restore CS0618 // Type or member is obsolete
                    }, cancelToken);

                    if (result.ShouldRemember)
                    {
                        AddStoredPassword(nServerGUID, key);
                    }

                    return(key);
                }
                catch (Exception e)
                {
                    if (!(e is OperationCanceledException))
                    {
                        Log.e(TAG, "Error while generating key from password: " + e.Message);
                    }
                }
                finally
                {
                    Arrays.Fill(abyPassword, 0);
                }
            }
            return(null);
        }