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); }
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); }
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); }
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()); }
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."); } }
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); }