CryptorKeyDialog(Cryptor.Type type, bool encrypt) { InitializeComponent(); this.type = type; Encrypt = encrypt; if (type.IsSymmetric()) { asymmetricKeyGrid.Visibility = Visibility.Collapsed; symmetricPassword.Focus(); } else { symmetricKeyGrid.Visibility = Visibility.Collapsed; asymmetricKeySize.Focus(); } IEnumerable <int> keySizes; int defaultSize; Cryptor.GetKeySizeInfo(type, out keySizes, out defaultSize); KeySizes = keySizes.ToList(); KeySize = defaultSize; Salt = "AWdSJ9hs72TXUUqaKpYIbU2v/YONdOxf"; }
CryptorKeyDialog(Cryptor.Type type, bool encrypt) { InitializeComponent(); this.type = type; this.encrypt = encrypt; if (type.IsSymmetric()) { asymmetricKeyGrid.Visibility = Visibility.Collapsed; symmetricPassword.Focus(); } else { symmetricKeyGrid.Visibility = Visibility.Collapsed; asymmetricKeySize.Focus(); } IEnumerable<int> keySizes; int defaultSize; Cryptor.GetKeySizeInfo(type, out keySizes, out defaultSize); KeySizes = keySizes.ToList(); KeySize = defaultSize; Salt = "AWdSJ9hs72TXUUqaKpYIbU2v/YONdOxf"; }
void GenerateKey(object sender, RoutedEventArgs e) { if (type.IsSymmetric()) { if ((string.IsNullOrEmpty(symmetricPassword.Password)) || (string.IsNullOrEmpty(Salt))) { return; } if ((Encrypt) && (symmetricPassword.Password != symmetricConfirm.Password)) { new Message(this) { Title = "Password mismatch", Text = "Passwords must match.", Options = MessageOptions.Ok, }.Show(); return; } PublicKey = PrivateKey = Cryptor.GetRfc2898Key(symmetricPassword.Password, Salt, KeySize); } else { if (string.IsNullOrEmpty(PrivateKey)) { PrivateKey = Cryptor.GenerateKey(type, KeySize); } PublicKey = Cryptor.GetPublicKey(type, PrivateKey); } }