Ignore:
Timestamp:
Sep 2, 2010, 1:49:17 PM (11 years ago)
Author:
schomburg
Message:

added possibility to enter a RSA-Key manually

Location:
trunk/CrypPlugins/PKCS1/WpfControls/RsaKeyGen
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/PKCS1/WpfControls/RsaKeyGen/RsaKeyGenControl.xaml

    r1885 r1893  
    22    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    33    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4     xmlns:my="clr-namespace:PKCS1.WpfResources"
    5     xmlns:lib="clr-namespace:PKCS1.Library"
     4    xmlns:comp="clr-namespace:PKCS1.WpfControls.Components"
    65    xmlns:lang="clr-namespace:PKCS1.Resources.lang.Gui"
    7     HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
     6    HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White">
    87    <UserControl.Resources>
    9         <my:ErrorsToMessageConverter x:Key="eToMConverter" />
     8        <ResourceDictionary>
     9            <ResourceDictionary.MergedDictionaries>
     10                <ResourceDictionary Source="../../WpfResources/HelpTab.xaml"/>
     11            </ResourceDictionary.MergedDictionaries>
     12        </ResourceDictionary>
    1013    </UserControl.Resources>
    11     <ScrollViewer  VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
     14
     15    <DockPanel>
    1216        <Grid>
    1317            <Grid.RowDefinitions>
    14             <RowDefinition Height="auto" />
    15             <RowDefinition Height="auto" />
    16         </Grid.RowDefinitions>
    17             <GroupBox Grid.Row="0" Margin="0,0,0,0">
    18                 <GroupBox.Header>
    19                     <x:Static Member="lang:RsaKeyGenCtrl.genRsaKey"></x:Static>
    20                 </GroupBox.Header>
    21             <Grid>
    22                 <Grid.RowDefinitions>
    23                     <RowDefinition Height="auto" />
    24                     <RowDefinition Height="*" />
    25                 </Grid.RowDefinitions>
    26                 <Grid Grid.Row="0">
    27                     <Grid.ColumnDefinitions>
    28                         <ColumnDefinition Width="auto" />
    29                         <ColumnDefinition Width="auto" />
    30                         <ColumnDefinition Width="auto" />
    31                     </Grid.ColumnDefinitions>
    32                     <Grid Grid.Column="0">
    33                         <Grid.RowDefinitions>
    34                             <RowDefinition Height="auto" />
    35                             <RowDefinition Height="auto" />
    36                         </Grid.RowDefinitions>
    37                             <Label Grid.Row="0" Margin="5,0,5,0">
    38                                 <x:Static Member="lang:RsaKeyGenCtrl.pubKey"></x:Static></Label>
    39                             <Label Grid.Row="1" Margin="5,0,5,5">
    40                                 <x:Static Member="lang:RsaKeyGenCtrl.bitSize"></x:Static>
    41                             </Label>
    42                     </Grid>
    43                     <Grid Grid.Column="1">
    44                         <Grid.RowDefinitions>
    45                             <RowDefinition Height="auto" />
    46                             <RowDefinition Height="auto" />
    47                         </Grid.RowDefinitions>
    48                             <TextBox Grid.Row="0" Name="tbInputPubKey"  Margin="5,0,5,5" MinWidth="50">
    49                                     <TextBox.Text>
    50                                     <Binding Source="{x:Static lib:RsaKey.Instance}" Path="PubExponent" UpdateSourceTrigger="PropertyChanged">
    51                                         <Binding.ValidationRules>
    52                                             <my:NumberValidationRule UpperBound="20" LowerBound="0" />
    53                                         </Binding.ValidationRules>
    54                                     </Binding>
    55                                 </TextBox.Text>                                 
    56                             </TextBox>                           
    57                             <TextBox Grid.Row="1" Name="tbInputMod" Margin="5,0,5,5" MinWidth="50">
    58                                 <TextBox.Text>
    59                                     <Binding Source="{x:Static lib:RsaKey.Instance}" Path="RsaKeySize" UpdateSourceTrigger="PropertyChanged">
    60                                         <Binding.ValidationRules>
    61                                             <my:NumberValidationRule UpperBound="4097" LowerBound="1023" />
    62                                         </Binding.ValidationRules>
    63                                     </Binding>
    64                                 </TextBox.Text>
    65                             </TextBox>
    66                     </Grid>
    67                     <Grid Grid.Column="2">
    68                         <Grid.RowDefinitions>
    69                             <RowDefinition Height="auto" />
    70                             <RowDefinition Height="auto" />
    71                         </Grid.RowDefinitions>
    72                             <DockPanel Grid.Row="0">
    73                                 <Label Margin="5,0,5,0">
    74                                     <x:Static Member="lang:RsaKeyGenCtrl.pubKeyComment"></x:Static></Label>
    75                                 <Image Name="btnHelpPubKey" Cursor="Hand" Source="../../Resources/icons/help.png" Width="16" Height="16" HorizontalAlignment="Right" MouseLeftButtonDown="btn_Help_MouseLeftButtonDown" />
    76                             </DockPanel>
    77                             <DockPanel Grid.Row="1">
    78                                 <Label Margin="5,0,5,5">
    79                                     <x:Static Member="lang:RsaKeyGenCtrl.bitSizeUnit"></x:Static>
    80                                 </Label>
    81                                 <Image Name="btnHelpBitSizeModulus" Cursor="Hand" Source="../../Resources/icons/help.png" Width="16" Height="16" HorizontalAlignment="Right" MouseLeftButtonDown="btn_Help_MouseLeftButtonDown" />
    82                             </DockPanel>
    83                     </Grid>
    84                 </Grid>
    85                 <Grid Grid.Row="1">
    86                     <Grid.ColumnDefinitions>
    87                         <ColumnDefinition Width="*" />
    88                         <ColumnDefinition Width="auto" />
    89                         <ColumnDefinition Width="auto" />
    90                     </Grid.ColumnDefinitions>
    91                         <TextBlock Grid.Column="0"  Foreground="Red" FontWeight="Bold" FontSize="10"
    92                                 Text="{Binding ElementName=tbInputPubKey,
    93                                 Path=(Validation.Errors),
    94                                 Converter={StaticResource eToMConverter}}" />
    95                         <TextBlock Grid.Column="0"  Foreground="Red" FontWeight="Bold" FontSize="10"
    96                                 Text="{Binding ElementName=tbInputMod,
    97                                 Path=(Validation.Errors),
    98                                 Converter={StaticResource eToMConverter}}" />
    99                         <Button Grid.Column="2" Name="btnGenRsaKey" Click="btnGenRsaKey_Click" Height="25" MinWidth="100" VerticalAlignment="Bottom" HorizontalContentAlignment="Right">
    100                             <x:Static Member="lang:RsaKeyGenCtrl.genKey"></x:Static>
    101                         </Button>
    102                 </Grid>
    103             </Grid>
    104         </GroupBox>       
    105             <GroupBox Grid.Row="1" Margin="0,15,0,0">
    106                 <GroupBox.Header>
    107                     <x:Static Member="lang:RsaKeyGenCtrl.generatedKey"></x:Static>
    108                 </GroupBox.Header>
    109                 <Grid>
    110                 <Grid.RowDefinitions>
    111                     <RowDefinition Height="auto" />
    112                     <RowDefinition Height="auto" />
    113                     <RowDefinition Height="auto" />
    114                     <RowDefinition Height="auto" />
    115                 </Grid.RowDefinitions>
    116                     <Label Grid.Row="0">
    117                         <x:Static Member="lang:RsaKeyGenCtrl.privKey"></x:Static></Label>
    118                 <Label Grid.Row="0" Margin="150,0,0,0" Name="lblPrivKeyLength"></Label>
    119                 <TextBox Grid.Row="1" Name="tbResultPrivKey" IsReadOnly="True" TextWrapping="Wrap" MaxWidth="450" MinHeight="80" Margin="5,0,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultPrivKey_TextChanged"></TextBox>
    120                     <Label Grid.Row="2">
    121                         <x:Static Member="lang:RsaKeyGenCtrl.mod"></x:Static></Label>
    122                 <Label Grid.Row="2" Margin="150,0,0,0" Name="lblModulusLength"></Label>
    123                 <TextBox Grid.Row="3" Name="tbResultModulus" IsReadOnly="True" TextWrapping="Wrap" MaxWidth="450" MinHeight="80" Margin="5,0,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultModulus_TextChanged"></TextBox>
    124             </Grid>           
    125         </GroupBox>
    126     </Grid>
    127     </ScrollViewer>
     18                <RowDefinition Height="*" />
     19            </Grid.RowDefinitions>
     20
     21            <TabControl Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,5,0,0">
     22                <comp:HelpTabItem HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="tabGenKey" HelpButtonClick="TabItem_HelpButtonClick">
     23                    <comp:HelpTabItem.Header>
     24                        <x:Static Member="lang:RsaKeyGenCtrl.genKey"></x:Static>
     25                    </comp:HelpTabItem.Header>
     26                    <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
     27                        <comp:KeyGenControl x:Name="KeyGenControl" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
     28                    </ScrollViewer>
     29                </comp:HelpTabItem>
     30                <comp:HelpTabItem HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="tabInputKey" HelpButtonClick="TabItem_HelpButtonClick">
     31                    <comp:HelpTabItem.Header>
     32                        <x:Static Member="lang:RsaKeyInputCtrl.inputKey"></x:Static>
     33                    </comp:HelpTabItem.Header>
     34                    <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
     35                        <comp:KeyInputControl x:Name="KeyInputControl" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
     36                    </ScrollViewer>
     37                </comp:HelpTabItem>
     38            </TabControl>
     39
     40        </Grid>
     41    </DockPanel>
    12842</UserControl>
  • trunk/CrypPlugins/PKCS1/WpfControls/RsaKeyGen/RsaKeyGenControl.xaml.cs

    r1778 r1893  
    1313using System.Windows.Shapes;
    1414using PKCS1.Library;
    15 using PKCS1.WpfResources;
    16 
     15using PKCS1.WpfControls;
     16using PKCS1.WpfControls.Components;
    1717
    1818namespace PKCS1.WpfControls.RsaKeyGen
     
    2525        public RsaKeyGenControl()
    2626        {
    27             InitializeComponent();         
     27            InitializeComponent();
     28        }
     29
     30        private void TabItem_HelpButtonClick(object sender, RoutedEventArgs e)
     31        {
     32            if (sender == tabGenKey)
     33            {
     34                OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.KeyGen_Tab);
     35            }
     36            else if (sender == tabInputKey)
     37            {
     38                OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.KeyInput_Tab);
     39            }
    2840        }
    2941
    3042        #region IPkcs1UserControl Member
    3143
    32         public void Dispose()
     44        void IPkcs1UserControl.Dispose()
    3345        {
     46            //throw new NotImplementedException();
    3447        }
    3548
    36         public void Init()
     49        void IPkcs1UserControl.Init()
    3750        {
     51            //throw new NotImplementedException();
    3852        }
    3953
    40         public void SetTab(int i)
     54        void IPkcs1UserControl.SetTab(int i)
    4155        {
     56            //throw new NotImplementedException();
    4257        }
    4358
    4459        #endregion
    45 
    46         private void btnGenRsaKey_Click(object sender, RoutedEventArgs e)
    47         {
    48             Cursor = Cursors.Wait;
    49             RsaKey.Instance.genRsaKeyPair(25);
    50             Cursor = Cursors.Arrow;
    51 
    52             if( RsaKey.Instance.isKeyGenerated() )
    53             {
    54                 this.tbResultModulus.Text = RsaKey.Instance.getModulusToBigInt().ToString(16);
    55                 this.tbResultPrivKey.Text = RsaKey.Instance.getPrivKeyToBigInt().ToString(16);
    56             }
    57         }
    58 
    59         private void tbResultPrivKey_TextChanged(object sender, TextChangedEventArgs e)
    60         {
    61             this.lblPrivKeyLength.Content = "(Länge: " + this.tbResultPrivKey.Text.Length * 4 + " bit)";
    62         }
    63 
    64         private void tbResultModulus_TextChanged(object sender, TextChangedEventArgs e)
    65         {
    66             this.lblModulusLength.Content = "(Länge: " + this.tbResultModulus.Text.Length * 4 + " bit)";
    67         }
    68 
    69         private void btn_Help_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    70         {
    71             if (sender == btnHelpPubKey)
    72             {
    73                 OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.KeyGen_PubExponent);
    74             }
    75             else if (sender == btnHelpBitSizeModulus)
    76             {
    77                 OnlineHelp.OnlineHelpAccess.ShowOnlineHelp(PKCS1.OnlineHelp.OnlineHelpActions.KeyGen_ModulusSize);
    78             }
    79             e.Handled = true;
    80         }
    8160    }
    8261}
Note: See TracChangeset for help on using the changeset viewer.