source: trunk/PKCS1/WpfControls/Components/DatablockControl.xaml.cs @ 1650

Last change on this file since 1650 was 1650, checked in by schomburg, 11 years ago

initial commit of PKCS1 Plugin

File size: 5.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Collections.Specialized;
4using System.Linq;
5using System.Text;
6using System.Windows;
7using System.Windows.Controls;
8using System.Windows.Data;
9using System.Windows.Documents;
10using System.Windows.Input;
11using System.Windows.Media;
12using System.Windows.Media.Imaging;
13using System.Windows.Navigation;
14using System.Windows.Shapes;
15using System.Security.Cryptography;
16using PKCS1;
17using PKCS1.Library;
18using Org.BouncyCastle.Asn1.Pkcs;
19using Org.BouncyCastle.Asn1;
20
21
22namespace PKCS1.WpfControls.Components
23{
24    /// <summary>
25    /// Interaktionslogik für HwControl.xaml
26    /// </summary>
27    public partial class DatablockControl : UserControl
28    {     
29        public DatablockControl()
30        {
31            InitializeComponent();
32            Initialize();
33        }
34
35        public void Initialize()
36        {
37            // ComboBox befüllen
38            this.cbHashFunc.Items.Add(HashFunctionHandler.SHA1);
39            this.cbHashFunc.Items.Add(HashFunctionHandler.SHA256);
40            this.cbHashFunc.Items.Add(HashFunctionHandler.SHA384);
41            this.cbHashFunc.Items.Add(HashFunctionHandler.SHA512);
42            this.cbHashFunc.Items.Add(HashFunctionHandler.MD2);
43            this.cbHashFunc.Items.Add(HashFunctionHandler.MD5);
44            this.cbHashFunc.SelectedIndex = 0;
45
46            this.rbTextFromBox.IsChecked = true;
47
48            Datablock.getInstance().RaiseParamChangedEvent += handleParamChanged;
49        }
50
51        #region Eventhandlng
52
53        private void handleParamChanged(ParameterChangeType type)
54        {
55            if (ParameterChangeType.Message == type)
56            {
57                this.tbInputText.Text = Datablock.getInstance().Message;
58                this.tbHashDigest.Text = Datablock.getInstance().GetHashDigestToHexString();
59            }
60        }
61
62        public event ParamChanged RaiseDataBlockGenerated;
63
64        private void OnRaiseDataBlockGenerated(ParameterChangeType type)
65        {
66            if (null != RaiseDataBlockGenerated)
67            {
68                RaiseDataBlockGenerated(type);
69            }
70        }
71
72        #endregion
73
74        // fired when Checkbox Selection changed
75        // Hashfunction IdentificationTextbox filled & selected Hashfunction is set
76        private void cbHashFunc_SelectionChanged(object sender, SelectionChangedEventArgs e)
77        {
78            Datablock.getInstance().HashFunctionIdent = (HashFunctionIdent)this.cbHashFunc.SelectedValue;
79            this.tbHashIdent.Text = Datablock.getInstance().HashFunctionIdent.DERIdent;
80
81            // HashDigest Textboxen leeren; werden bei Execute befüllt
82            this.tbHashDigest.Text = String.Empty;
83            this.lblHashDigestLength.Content = String.Empty;
84        }
85
86        private void bGenerate_Click(object sender, RoutedEventArgs e)
87        {
88            //TODO komplett implementieren. Abfrage ob Textinput null ist
89            string textToHash = "";
90
91            if (this.rbTextFromBox.IsChecked == true)
92            {
93                textToHash = this.tbInputText.Text;
94            }
95            else if (this.rbTextfromFile.IsChecked == true)
96            {
97                // TODO hier den Text aus dem File lesen
98                textToHash = "muss noch implementiert werden!";
99            }
100            else
101            {
102                //TODO else abändern? weglassen?
103                textToHash = "konnte Text nicht lesen";
104            }
105
106            // Text setzen, Hash wird automatisch generiert, da in Datablock das Event getriggert wird und hier im Handling Hashgenerierung auslöst
107            Datablock.getInstance().Message = textToHash;
108            // Hash generieren und abfragen
109            //this.tbHashDigest.Text = Datablock.getInstance().GetHashDigestToHexString();
110            OnRaiseDataBlockGenerated(ParameterChangeType.DataBlock);
111        }
112
113        private void tbInputText_KeyUp(object sender, KeyEventArgs e)
114        {
115            //TODO: Hier Inhalt der Textbox auf null prüfen und ggf Ausführen Button sperren
116            //siehe InputSingleControl.xaml.cs in Primes
117        }
118
119        private void tbHashIdent_TextChanged(object sender, TextChangedEventArgs e)
120        {
121            if(this.tbHashIdent.Text != String.Empty )
122            {
123                this.lblHashIdentLength.Content = "(Länge: "+ this.tbHashIdent.Text.Length*4 +" bit)";
124            }
125        }
126
127        private void tbHashDigest_TextChanged(object sender, TextChangedEventArgs e)
128        {
129            if (this.tbHashDigest.Text != String.Empty)
130            {
131                this.lblHashDigestLength.Content = "(Länge: " + this.tbHashDigest.Text.Length*4 + " bit)";
132            }
133        }
134
135        private void rbTextfromFile_Checked(object sender, RoutedEventArgs e)
136        {
137            this.tbInputFile.IsEnabled = true;
138            this.tbInputText.IsEnabled = false;
139        }
140
141        private void rbTextFromBox_Checked(object sender, RoutedEventArgs e)
142        {
143            this.tbInputFile.IsEnabled = false;
144            this.tbInputText.IsEnabled = true;
145        }
146    }
147}
Note: See TracBrowser for help on using the repository browser.