source: trunk/CrypPlugins/PKCS1/WpfControls/Components/SigGenBleichenbControl.xaml.cs

Last change on this file was 8667, checked in by Sven Rech, 20 months ago

PKCS#1 tutorial: Made text components selectable.

File size: 3.5 KB
Line 
1using System;
2using System.Windows;
3using System.Windows.Controls;
4using System.Windows.Input;
5using PKCS1.Library;
6using PKCS1.Resources.lang.Gui;
7
8namespace PKCS1.WpfControls.Components
9{
10    /// <summary>
11    /// Interaktionslogik für SigGenBleichenbControl.xaml
12    /// </summary>
13    public partial class SigGenBleichenbControl : UserControl
14    {
15        private BleichenbacherSig m_BleichSignature = new BleichenbacherSig();
16
17        public SigGenBleichenbControl()
18        {
19            InitializeComponent();
20            RsaKey.Instance.RaiseKeyGeneratedEvent += handleCustomEvent; // listen
21            Datablock.getInstance().RaiseParamChangedEvent += handleCustomEvent;
22            this.handleCustomEvent(ParameterChangeType.RsaKey);
23            this.loadComboDataBlocPos(24);
24        }
25
26        private void handleCustomEvent(ParameterChangeType type)
27        {           
28            this.lblPublicKeyRes.Text = RsaKey.Instance.PubExponent.ToString();
29            this.lblRsaKeySizeRes.Text = RsaKey.Instance.RsaKeySize.ToString();           
30            this.loadComboDataBlocPos(24);
31        }
32
33        private void bExecute_Click(object sender, RoutedEventArgs e)
34        {
35            Cursor = Cursors.Wait;
36
37            this.m_BleichSignature = (BleichenbacherSig) SignatureHandler.getInstance().getBleichenbSig();
38            this.m_BleichSignature.DataBlockStartPos = (int)this.cbPosDataBlock.SelectedValue;
39            this.m_BleichSignature.ChangeSign = this.tbChangeSign.Text;
40
41            this.m_BleichSignature.GenerateSignature();
42            UserControlHelper.loadRtbColoredSig(this.rtbResult, this.m_BleichSignature.GetSignatureDecToHexString());
43            this.tbResultEncrypted.Text = this.m_BleichSignature.GetSignatureToHexString();
44
45            SignatureHandler.getInstance().setBleichenBSig(this.m_BleichSignature);
46            Cursor = Cursors.Arrow;
47        }
48
49        private void loadComboDataBlocPos(int start)
50        {
51            this.cbPosDataBlock.Items.Clear();
52
53            int lengthDatablock = Datablock.getInstance().HashFunctionIdent.DERIdent.Length * 4 + Datablock.getInstance().HashFunctionIdent.digestLength + 8;
54            int end = RsaKey.Instance.RsaKeySize - lengthDatablock - start;
55
56            for( int i=start; i<= end; i+=8)
57            {
58                this.cbPosDataBlock.Items.Add(i);
59
60            }
61            this.cbPosDataBlock.SelectedIndex = (end-start)/10;
62        }
63
64        private void rtbResult_TextChanged(object sender, TextChangedEventArgs e)
65        {
66            this.lblSignatureLength.Text = String.Format( Common.length, UserControlHelper.GetRtbTextLength(this.rtbResult) * 4 );
67        }
68
69        private void tbResultEncrypted_TextChanged(object sender, TextChangedEventArgs e)
70        {
71            this.lblEncryptedSignatureLength.Text = String.Format(Common.length, this.tbResultEncrypted.Text.Length * 4);
72        }
73
74        private void btn_Help_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
75        {
76            if (sender == btnHelpChangeSign)
77            {
78                OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.Gen_Bleichenb_ChangeSign);
79            }
80            else if (sender == btnHelpBitPos)
81            {
82                OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.Gen_Bleichenb_BitPos);
83            }
84            e.Handled = true;
85        }
86    }
87}
Note: See TracBrowser for help on using the repository browser.