Changeset 970 for trunk/CrypPlugins/MD5


Ignore:
Timestamp:
Dec 8, 2009, 3:14:41 PM (12 years ago)
Author:
pretzsch
Message:

+ MD5 plugin: Improved presentation

Location:
trunk/CrypPlugins/MD5
Files:
2 deleted
7 edited
2 copied
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/MD5/Algorithm/PresentableMD5.cs

    r963 r970  
    5959        /// Array of integer constants, each one is used in one of the compression function's 64 steps
    6060        /// </summary>
    61         protected static readonly uint[] AdditionConstantTable = new uint[64]
     61        internal static readonly uint[] AdditionConstantTable = new uint[64]
    6262                        {       0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee,
    6363                                0xf57c0faf,0x4787c62a,0xa8304613,0xfd469501,
     
    7777                                0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391     };
    7878
     79        protected HashSet<MD5StateDescription> skippedStates = new HashSet<MD5StateDescription>();
     80
    7981        /// <summary>
    8082        /// Array of 64 constants indicating how far the compression function's rotate operator shifts in each step
    8183        /// </summary>
    82         protected static readonly ushort[] ShiftConstantTable = new ushort[64]
     84        internal static readonly ushort[] ShiftConstantTable = new ushort[64]
    8385                        {       7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,
    8486                                5,  9, 14, 20, 5,  9, 14, 20, 5,  9, 14, 20, 5,  9, 14, 20,
     
    105107            }
    106108        }
    107                
     109
     110        public void ResetSkippedStates()
     111        {
     112            skippedStates.Clear();
     113        }
     114
     115        public void AddSkippedState(MD5StateDescription state)
     116        {
     117            skippedStates.Add(state);
     118        }
     119
    108120        /// <summary>
    109121        /// Returns the next state by retrieving it from history or performing the next algorithm step without changing the current state
     
    114126            get
    115127            {
    116                                 if (IsInFinishedState)
    117                                         return CurrentState;
    118                
    119                                 if (!HistoryHasMoreStates)
     128                if (IsInFinishedState)
     129                    return CurrentState;
     130
     131                if (!HistoryHasMoreStates)
    120132                {
    121                         PresentableMD5State previousState = CurrentState;
    122                         AddNewState();
    123                         PerformStep(previousState, CurrentState);
    124                                        
    125                         CurrentStateNumber--;
    126                         CurrentState = StateHistory[CurrentStateNumber];
    127                                 }
    128                                
    129                                 return StateHistory[CurrentStateNumber + 1];
     133                    PresentableMD5State previousState = CurrentState;
     134                    AddNewState();
     135                    PerformStep(previousState, CurrentState);
     136
     137                    CurrentStateNumber--;
     138                    CurrentState = StateHistory[CurrentStateNumber];
     139                }
     140
     141                return StateHistory[CurrentStateNumber + 1];
    130142            }
    131143        }
     
    163175            OnPropChanged("CurrentState");
    164176            OnPropChanged("LastState");
    165                         OnPropChanged("NextState");
     177            OnPropChanged("NextState");
    166178            OnPropChanged("CurrentStateNumber");
    167179            OnPropChanged("IsInFinishedState");
     
    251263            CurrentState = StateHistory[CurrentStateNumber];
    252264            OnStatusChanged();
     265
     266            if (!IsInFinishedState && skippedStates.Contains(CurrentState.State))
     267                PreviousStep();
    253268        }
    254269
     
    281296        {
    282297            if (!IsInitialized)
     298                return;
     299
     300            if (IsInFinishedState)
    283301                return;
    284302
     
    291309            else
    292310            {
    293                 if (IsInFinishedState)
    294                     return;
    295 
    296311                PresentableMD5State previousState = CurrentState;
    297312                AddNewState();
     
    299314                OnStatusChanged();
    300315            }
     316
     317            if (!IsInFinishedState && skippedStates.Contains(CurrentState.State))
     318                NextStep();
    301319        }
    302320
  • trunk/CrypPlugins/MD5/Algorithm/PresentableMD5State.cs

    r936 r970  
    119119        }
    120120
     121        public uint AbsoluteStepIndex
     122        {
     123            get
     124            {
     125                return RoundIndex * 16 + RoundStepIndex;
     126            }
     127        }
     128
     129        public uint ShiftConstant
     130        {
     131            get
     132            {
     133                return PresentableMD5.ShiftConstantTable[AbsoluteStepIndex];
     134            }
     135        }
     136
     137        public uint AdditionConstant
     138        {
     139            get
     140            {
     141                return PresentableMD5.AdditionConstantTable[AbsoluteStepIndex];
     142            }
     143        }
     144
    121145        /// <summary>
    122146        /// The total number of bytes hashed so far
  • trunk/CrypPlugins/MD5/MD5.cs

    r966 r970  
    5757        {
    5858            settings = new MD5Settings();
     59
    5960            md5 = new PresentableMD5();
     61            md5.AddSkippedState(MD5StateDescription.STARTING_ROUND_STEP);
     62            md5.AddSkippedState(MD5StateDescription.FINISHING_COMPRESSION);
     63
    6064            presentationContainer = new PresentationContainer(md5);
    6165
  • trunk/CrypPlugins/MD5/MD5.csproj

    r963 r970  
    8888      <DependentUpon>DataIntegerDisplay.xaml</DependentUpon>
    8989    </Compile>
     90    <Compile Include="Presentation\Displays\ShiftedCompressionVariableDisplay.xaml.cs">
     91      <DependentUpon>ShiftedCompressionVariableDisplay.xaml</DependentUpon>
     92    </Compile>
    9093    <Compile Include="Presentation\Displays\LabelledIntegerDisplay.xaml.cs">
    9194      <DependentUpon>LabelledIntegerDisplay.xaml</DependentUpon>
     
    125128      <DependentUpon>FinishedRoundPresentation.xaml</DependentUpon>
    126129    </Compile>
    127     <Compile Include="Presentation\States\FinishedRoundStepPresentation.xaml.cs">
    128       <DependentUpon>FinishedRoundStepPresentation.xaml</DependentUpon>
    129     </Compile>
    130130    <Compile Include="Presentation\States\FinishingCompressionPresentation.xaml.cs">
    131131      <DependentUpon>FinishingCompressionPresentation.xaml</DependentUpon>
     
    149149      <DependentUpon>StartingRoundPresentation.xaml</DependentUpon>
    150150    </Compile>
    151     <Compile Include="Presentation\States\StartingRoundStepPresentation.xaml.cs">
    152       <DependentUpon>StartingRoundStepPresentation.xaml</DependentUpon>
     151    <Compile Include="Presentation\States\RoundStepPresentation.xaml.cs">
     152      <DependentUpon>RoundStepPresentation.xaml</DependentUpon>
    153153    </Compile>
    154154    <Compile Include="Presentation\States\UninitializedPresentation.xaml.cs">
     
    202202      <SubType>Designer</SubType>
    203203    </Page>
     204    <Page Include="Presentation\Displays\ShiftedCompressionVariableDisplay.xaml">
     205      <Generator>MSBuild:Compile</Generator>
     206      <SubType>Designer</SubType>
     207    </Page>
    204208    <Page Include="Presentation\Displays\LabelledIntegerDisplay.xaml">
    205209      <Generator>MSBuild:Compile</Generator>
     
    250254      <Generator>MSBuild:Compile</Generator>
    251255    </Page>
    252     <Page Include="Presentation\States\FinishedRoundStepPresentation.xaml">
    253       <SubType>Designer</SubType>
    254       <Generator>MSBuild:Compile</Generator>
    255     </Page>
    256256    <Page Include="Presentation\States\FinishingCompressionPresentation.xaml">
    257257      <SubType>Designer</SubType>
     
    282282      <Generator>MSBuild:Compile</Generator>
    283283    </Page>
    284     <Page Include="Presentation\States\StartingRoundStepPresentation.xaml">
     284    <Page Include="Presentation\States\RoundStepPresentation.xaml">
    285285      <SubType>Designer</SubType>
    286286      <Generator>MSBuild:Compile</Generator>
  • trunk/CrypPlugins/MD5/Presentation/Converters/MD5StateDescriptionToStringConverter.cs

    r897 r970  
    4242                    return "Before compression step";
    4343                case MD5StateDescription.FINISHED_ROUND_STEP:
    44                     return "After compression step";
     44                    return "Performing compression step";
    4545                case MD5StateDescription.FINISHED_ROUND:
    4646                    return "Finished compression round";
  • trunk/CrypPlugins/MD5/Presentation/Displays/ShiftedCompressionVariableDisplay.xaml

    r963 r970  
    1 <UserControl x:Class="Cryptool.MD5.Presentation.Displays.CompressionVariableDisplay"
     1<UserControl x:Class="Cryptool.MD5.Presentation.Displays.ShiftedCompressionVariableDisplay"
    22    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    33    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     
    1010            <ColumnDefinition/>
    1111        </Grid.ColumnDefinitions>
    12         <displays:LabelledIntegerDisplay Grid.Column="0" Caption="A" Value="{Binding A}"/>
    13         <displays:LabelledIntegerDisplay Grid.Column="1" Caption="B" Value="{Binding B}"/>
    14         <displays:LabelledIntegerDisplay Grid.Column="2" Caption="C" Value="{Binding C}"/>
    15         <displays:LabelledIntegerDisplay Grid.Column="3" Caption="D" Value="{Binding D}"/>
     12        <displays:LabelledIntegerDisplay Grid.Column="0" Caption="B" Value="{Binding B}"/>
     13        <displays:LabelledIntegerDisplay Grid.Column="1" Caption="C" Value="{Binding C}"/>
     14        <displays:LabelledIntegerDisplay Grid.Column="2" Caption="D" Value="{Binding D}"/>
     15        <displays:LabelledIntegerDisplay Grid.Column="3" Caption="A" Value="{Binding A}"/>
    1616    </Grid>
    1717</UserControl>
  • trunk/CrypPlugins/MD5/Presentation/Displays/ShiftedCompressionVariableDisplay.xaml.cs

    r963 r970  
    1818    /// Interaktionslogik für HashAccumulatorDisplay.xaml
    1919    /// </summary>
    20     public partial class CompressionVariableDisplay : UserControl
     20    public partial class ShiftedCompressionVariableDisplay : UserControl
    2121    {
    22         public CompressionVariableDisplay()
     22        public ShiftedCompressionVariableDisplay()
    2323        {
    2424            InitializeComponent();
  • trunk/CrypPlugins/MD5/Presentation/Helpers/PresentationControlFactory.cs

    r895 r970  
    3333            RegisterPresentationClass(MD5StateDescription.STARTING_COMPRESSION, typeof(StartingCompressionPresentation));
    3434            RegisterPresentationClass(MD5StateDescription.STARTING_ROUND, typeof(StartingRoundPresentation));
    35             RegisterPresentationClass(MD5StateDescription.STARTING_ROUND_STEP, typeof(StartingRoundStepPresentation));
    36             RegisterPresentationClass(MD5StateDescription.FINISHED_ROUND_STEP, typeof(FinishedRoundStepPresentation));
     35            RegisterPresentationClass(MD5StateDescription.STARTING_ROUND_STEP, typeof(RoundStepPresentation));
     36            RegisterPresentationClass(MD5StateDescription.FINISHED_ROUND_STEP, typeof(RoundStepPresentation));
    3737            RegisterPresentationClass(MD5StateDescription.FINISHED_ROUND, typeof(FinishedRoundPresentation));
    3838            RegisterPresentationClass(MD5StateDescription.FINISHING_COMPRESSION, typeof(FinishingCompressionPresentation));
  • trunk/CrypPlugins/MD5/Presentation/States/FinishedCompressionPresentation.xaml

    r936 r970  
    1212        </UserControl.Resources>
    1313        <Grid>
    14                 <my:HashAccumulatorDisplay DataContext="{Binding LastState}" Height="70" Margin="8,8,8,0" VerticalAlignment="Top" />
    15                 <my:CompressionVariableDisplay DataContext="{Binding LastState}" Margin="8,115,8,0" VerticalAlignment="Top" Height="70" d:LayoutOverrides="VerticalAlignment" />
    16                 <my:HashAccumulatorDisplay DataContext="{Binding CurrentState}" Height="70" Margin="8,223,8,0" VerticalAlignment="Top"/>
    17                 <TextBlock Height="28" Margin="8,83,8,0" x:Name="label1" VerticalAlignment="Top" HorizontalAlignment="Center" Style="{DynamicResource textBlockStyle}"><Run Text="+"/></TextBlock>
    18                 <TextBlock Margin="8,191,8,181" x:Name="label2" HorizontalAlignment="Center" Style="{DynamicResource textBlockStyle}"><Run Text="="/></TextBlock>
    19                 <TextBlock Height="33" Margin="8,0,8,8" x:Name="textBlock1" VerticalAlignment="Bottom" Text="We have finished the compression and updated our accumulators." Style="{DynamicResource textBlockStyle}" />
    20         </Grid>
     14                <my:HashAccumulatorDisplay DataContext="{Binding LastState}" Height="70" Margin="8,103,8,0" VerticalAlignment="Top" />
     15                <my:CompressionVariableDisplay DataContext="{Binding LastState}" Margin="8,0,8,120" d:LayoutOverrides="VerticalAlignment" Height="70" VerticalAlignment="Bottom" />
     16                <my:HashAccumulatorDisplay DataContext="{Binding CurrentState}" Height="70" Margin="8,0,8,12" VerticalAlignment="Bottom"/>
     17                <TextBlock Height="28" Margin="392.703,153,392.703,0" x:Name="label1" VerticalAlignment="Top" Style="{DynamicResource textBlockStyle}"><Run Text="+"/></TextBlock>
     18                <TextBlock Margin="392.703,0,392.703,111" x:Name="label2" Style="{DynamicResource textBlockStyle}" Height="28" VerticalAlignment="Bottom"><Run Text="="/></TextBlock>
     19        <TextBlock Height="85" Margin="4,8,12,0" Name="textBlock2" Style="{DynamicResource textBlockStyle}" Text="We have finished with the last round of the compression function. To finish up, we take the result of the compression function's steps, our temporary variables A - D, and add them to our accumulators H1 - H4." TextWrapping="Wrap" VerticalAlignment="Top" />
     20    </Grid>
    2121</UserControl>
  • trunk/CrypPlugins/MD5/Presentation/States/RoundStepPresentation.xaml

    r963 r970  
    22    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    33    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4     xmlns:Cryptool_MD5_Presentation_Displays="clr-namespace:Cryptool.MD5.Presentation.Displays" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" x:Class="Cryptool.MD5.Presentation.States.StartingRoundStepPresentation"
     4    xmlns:Cryptool_MD5_Presentation_Displays="clr-namespace:Cryptool.MD5.Presentation.Displays" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" x:Class="Cryptool.MD5.Presentation.States.RoundStepPresentation"
    55    Height="400" Width="800" mc:Ignorable="d">
    6         <UserControl.Resources>
    7                 <ResourceDictionary>
    8                         <ResourceDictionary.MergedDictionaries>
    9                                 <ResourceDictionary Source="StyleDictionary.xaml"/>
    10                         </ResourceDictionary.MergedDictionaries>
    11                 </ResourceDictionary>
    12         </UserControl.Resources>
     6    <UserControl.Resources>
     7        <ResourceDictionary>
     8            <ResourceDictionary.MergedDictionaries>
     9                <ResourceDictionary Source="StyleDictionary.xaml"/>
     10            </ResourceDictionary.MergedDictionaries>
     11        </ResourceDictionary>
     12    </UserControl.Resources>
    1313    <Grid>
    14            
    15         <Cryptool_MD5_Presentation_Displays:RoundAndStepDisplay VerticalAlignment="Top" HorizontalAlignment="Left" DataContext="{Binding CurrentState}" Margin="8,8,0,0"/>
    16         <Cryptool_MD5_Presentation_Displays:CompressionVariableDisplay Margin="332,8,8,0" VerticalAlignment="Top" Height="50" Width="460"/>
    17         <Cryptool_MD5_Presentation_Displays:FunctionNameDisplay HorizontalAlignment="Right" Margin="0,112,325,0" Width="56" VerticalAlignment="Top" Height="44" FunctionName="{Binding CurrentState.RoundFunctionName}"/>
    18         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="74,62,0,0" VerticalAlignment="Top" Width="1" Height="1" Data="M74,62"/>
    19         <UniformGrid Margin="332,0,8,8" VerticalAlignment="Bottom" Height="40" Rows="1" Columns="4" Width="460">
    20                 <Label Style="{StaticResource labelStyle}" VerticalAlignment="Bottom" Content="B" Background="White" BorderBrush="Black" BorderThickness="1" HorizontalContentAlignment="Center">
    21                 <Label.Effect>
    22                         <DropShadowEffect/>
    23                 </Label.Effect>
    24         </Label>
    25                                 <Label Style="{StaticResource labelStyle}" VerticalAlignment="Bottom" Content="C" Background="White" BorderBrush="Black" BorderThickness="1" HorizontalContentAlignment="Center">
    26                 <Label.Effect>
    27                         <DropShadowEffect/>
    28                 </Label.Effect>
    29         </Label>
    30                                 <Label Style="{StaticResource labelStyle}" VerticalAlignment="Bottom" Content="D" Background="White" BorderBrush="Black" BorderThickness="1" HorizontalContentAlignment="Center">
    31                 <Label.Effect>
    32                         <DropShadowEffect/>
    33                 </Label.Effect>
    34         </Label>
    35                                 <Label Style="{StaticResource labelStyle}" VerticalAlignment="Bottom" Content="A" Background="White" BorderBrush="Black" BorderThickness="1" HorizontalContentAlignment="Center">
    36                 <Label.Effect>
    37                         <DropShadowEffect/>
    38                 </Label.Effect>
    39         </Label>
    40                 </UniformGrid>
    41         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,62,65,47.5" Width="1" Data="M740,62 L740,351.5"/>
    42         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,60,181,47.5" Width="1" Data="M618,60 L618,351.5"/>
    43         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,62,293,47.5" Width="1" Data="M506,62 L506,351.5"/>
    44         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,61.5,291.5,0" VerticalAlignment="Top" Width="62.5" Height="51.5" Data="M446,112 L507.5,61.5"/>
    45         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,60,181,0" VerticalAlignment="Top" Width="169.5" Height="52.5" Data="M618,60 L449.5,111.5"/>
    46         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,60,65,0" VerticalAlignment="Top" Width="283.5" Height="52.5" Data="M734,60 L451.5,111.5"/>
    47         <Label Margin="360.5,114,0,0" VerticalAlignment="Top" Height="35" Content="+" Style="{DynamicResource labelStyle}" BorderThickness="1" BorderBrush="Black" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}" HorizontalAlignment="Left" Width="30" FontSize="16">
    48                 <Label.Background>
    49                         <SolidColorBrush Color="White"/>
    50                 </Label.Background>
    51                 <Label.Effect>
    52                         <DropShadowEffect/>
    53                 </Label.Effect>
    54         </Label>
    55         <Path Fill="White" Stretch="Fill" Stroke="Black" Margin="375,58,0,0" VerticalAlignment="Top" Height="55" Data="M375,58 L375,149.5" HorizontalAlignment="Left" Width="1"/>
    56         <Cryptool_MD5_Presentation_Displays:DataIntegerDisplay Margin="8,103,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="298" Height="46"/>
    57         <Path Fill="White" Stretch="Fill" Stroke="Black" Margin="390.5,134,379,0" VerticalAlignment="Top" Height="1" Data="M420,134 L397.5,134"/>
    58         <Label Background="White" HorizontalAlignment="Left" Margin="360.5,162,0,0" Style="{DynamicResource labelStyle}" Width="30" Content="+" BorderBrush="Black" BorderThickness="1" FontSize="16" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}" VerticalAlignment="Top" Height="35">
    59                 <Label.Effect>
    60                         <DropShadowEffect/>
    61                 </Label.Effect>
    62         </Label>
    63         <Label Background="White" Margin="344.5,0,393.5,106" Style="{DynamicResource labelStyle}" VerticalAlignment="Bottom" Height="35" Content="&lt;&lt;&lt;" BorderBrush="Black" BorderThickness="1" FontSize="16" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}">
    64                 <Label.Effect>
    65                         <DropShadowEffect/>
    66                 </Label.Effect>
    67         </Label>
    68         <Label Background="White" HorizontalAlignment="Left" Margin="360.5,0,0,155" Style="{DynamicResource labelStyle}" VerticalAlignment="Bottom" Width="30" Height="35" Content="+" BorderBrush="Black" BorderThickness="1" FontSize="16" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}">
    69                 <Label.Effect>
    70                         <DropShadowEffect/>
    71                 </Label.Effect>
    72         </Label>
    73         <Label Background="White" HorizontalAlignment="Left" Margin="360.5,0,0,57" Style="{DynamicResource labelStyle}" VerticalAlignment="Bottom" Width="30" Height="35" Content="+" BorderBrush="Black" BorderThickness="1" FontSize="16" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}">
    74                 <Label.Effect>
    75                         <DropShadowEffect/>
    76                 </Label.Effect>
    77         </Label>
    78         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="375,150,0,0" VerticalAlignment="Top" Width="1" Height="12.5" Data="M375,150 L375,161.5"/>
    79         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="376,197,0,189.5" Width="1" Data="M376,200 L376,209.5"/>
    80         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="376,0,0,139.5" VerticalAlignment="Bottom" Width="1" Height="14.5" Data="M376,246 L376,259.5"/>
    81         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="376,0,0,92" VerticalAlignment="Bottom" Width="1" Height="14" Data="M376,246 L376,259.5"/>
    82         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="376,0,0,47.5" VerticalAlignment="Bottom" Width="1" Height="9.5" Data="M376,246 L376,259.5"/>
    83         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="306,126,0,0" VerticalAlignment="Top" Width="54.5" Height="50.5" Data="M306,126 L359.5,129.5"/>
    84         <Label HorizontalAlignment="Left" Margin="32.413,197,0,177.04" Content="(Addition constant)" Template="{StaticResource functionLabelStyle}" d:LayoutOverrides="Height"/>
    85         <Label HorizontalAlignment="Left" Margin="44,0,0,128.04" Content="(Shift value)" Template="{StaticResource functionLabelStyle}" VerticalAlignment="Bottom"/>
    86         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="148,0,0,169.5" VerticalAlignment="Bottom" Width="212.5" Height="16.5" Data="M148,214 L343.5,229.5"/>
    87         <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="128,0,0,123.5" VerticalAlignment="Bottom" Width="216.5" Height="14.5" Data="M128,262 L343.5,275.5"/>
    88         <Path Fill="White" Stretch="Fill" Stroke="Black" Margin="392,0,293.5,75" VerticalAlignment="Bottom" Height="55.5" Data="M392,324 L505.5,269.5"/>
    89        
    90            
     14
     15        <Cryptool_MD5_Presentation_Displays:RoundAndStepDisplay VerticalAlignment="Top" HorizontalAlignment="Left" DataContext="{Binding CurrentState}" Margin="8,8,0,0"/>
     16        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="74,62,0,0" VerticalAlignment="Top" Width="1" Height="1" Data="M74,62"/>
     17       
     18        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,62,65,47.5" Width="1" Data="M740,62 L740,351.5"/>
     19        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,60,181,47.5" Width="1" Data="M618,60 L618,351.5"/>
     20        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,62,293,47.5" Width="1" Data="M506,62 L506,351.5"/>
     21        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,61.5,291.5,0" VerticalAlignment="Top" Width="62.5" Height="51.5" Data="M446,112 L507.5,61.5"/>
     22        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,60,181,0" VerticalAlignment="Top" Width="169.5" Height="52.5" Data="M618,60 L449.5,111.5"/>
     23        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Right" Margin="0,60,65,0" VerticalAlignment="Top" Width="283.5" Height="52.5" Data="M734,60 L451.5,111.5"/>
     24        <Path Fill="White" Stretch="Fill" Stroke="Black" Margin="375,58,0,0" VerticalAlignment="Top" Height="43" Data="M375,58 L375,149.5" HorizontalAlignment="Left" Width="1"/>
     25        <Path Fill="White" Stretch="Fill" Stroke="Black" Margin="390.5,118,379,0" VerticalAlignment="Top" Height="1" Data="M420,134 L397.5,134"/>
     26        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="375,137,0,0" VerticalAlignment="Top" Width="1" Height="12.5" Data="M375,150 L375,161.5"/>
     27        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="376,184,0,0" Width="1" Data="M376,200 L376,209.5" VerticalAlignment="Top" Height="13.5"/>
     28        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="376,0,0,152.5" VerticalAlignment="Bottom" Width="1" Height="14.5" Data="M376,246 L376,259.5"/>
     29        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="376,0,0,105" VerticalAlignment="Bottom" Width="1" Height="14" Data="M376,246 L376,259.5"/>
     30        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="376,0,0,56.5" VerticalAlignment="Bottom" Width="1" Height="9.5" Data="M376,246 L376,259.5"/>
     31        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="306,126,0,0" VerticalAlignment="Top" Width="54.5" Height="50.5" Data="M306,126 L359.5,129.5"/>
     32        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="148,188,0,177.04" Width="212.5" Data="M148,214 L343.5,229.5"/>
     33        <Path Fill="White" Stretch="Fill" Stroke="Black" HorizontalAlignment="Left" Margin="164,0,0,128.04" VerticalAlignment="Bottom" Width="180.5" Height="9.96" Data="M128,262 L343.5,275.5"/>
     34        <Path Fill="White" Stretch="Fill" Stroke="Black" Margin="392,0,293.5,87" VerticalAlignment="Bottom" Height="55.5" Data="M392,324 L505.5,269.5"/>
     35        <Cryptool_MD5_Presentation_Displays:FunctionNameDisplay HorizontalAlignment="Right" Margin="0,97,323,0" Width="56" VerticalAlignment="Top" Height="44" FunctionName="{Binding CurrentState.RoundFunctionName}"/>
     36        <Cryptool_MD5_Presentation_Displays:ShiftedCompressionVariableDisplay Margin="332,0,8,8" VerticalAlignment="Bottom" Height="50" Width="460" DataContext="{Binding CurrentState}"/>
     37        <Cryptool_MD5_Presentation_Displays:CompressionVariableDisplay Margin="332,8,8,0" VerticalAlignment="Top" Height="50" Width="460" DataContext="{Binding LastState}"/>
     38        <Label Margin="360.5,101,0,0" VerticalAlignment="Top" Height="35" Content="+" Style="{DynamicResource labelStyle}" BorderThickness="1" BorderBrush="Black" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}" HorizontalAlignment="Left" Width="30" FontSize="16" Background="White">
     39                <Label.Effect>
     40                        <DropShadowEffect/>
     41                </Label.Effect>
     42        </Label>
     43        <Label Background="White" HorizontalAlignment="Left" Margin="360.5,149,0,0" Style="{DynamicResource labelStyle}" Width="30" Content="+" BorderBrush="Black" BorderThickness="1" FontSize="16" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}" VerticalAlignment="Top" Height="35">
     44                <Label.Effect>
     45                        <DropShadowEffect/>
     46                </Label.Effect>
     47        </Label>
     48        <Label Background="White" Margin="344.5,0,393.5,119" Style="{DynamicResource labelStyle}" VerticalAlignment="Bottom" Height="35" Content="&lt;&lt;&lt;" BorderBrush="Black" BorderThickness="1" FontSize="16" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}">
     49                <Label.Effect>
     50                        <DropShadowEffect/>
     51                </Label.Effect>
     52        </Label>
     53        <Label Background="White" HorizontalAlignment="Left" Margin="360.5,197,0,168" Style="{DynamicResource labelStyle}" Width="30" Content="+" BorderBrush="Black" BorderThickness="1" FontSize="16" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}">
     54                <Label.Effect>
     55                        <DropShadowEffect/>
     56                </Label.Effect>
     57        </Label>
     58        <Label Background="White" HorizontalAlignment="Left" Margin="360.5,0,0,70" Style="{DynamicResource labelStyle}" VerticalAlignment="Bottom" Width="30" Height="35" Content="+" BorderBrush="Black" BorderThickness="1" FontSize="16" HorizontalContentAlignment="Center" Template="{DynamicResource functionLabelStyle}">
     59                <Label.Effect>
     60                        <DropShadowEffect/>
     61                </Label.Effect>
     62        </Label>
     63        <Cryptool_MD5_Presentation_Displays:LabelledIntegerDisplay Caption="AC" Margin="112.245,165.298,0,186" HorizontalAlignment="Left" Width="117.755" Value="{Binding CurrentState.AdditionConstant}"/>
     64                <Cryptool_MD5_Presentation_Displays:LabelledIntegerDisplay Caption="SC" Margin="112.245,0,0,118.298" HorizontalAlignment="Left" Width="117.755" Value="{Binding CurrentState.ShiftConstant}" VerticalAlignment="Bottom" Height="48.702"/>
     65                <Cryptool_MD5_Presentation_Displays:DataIntegerDisplay Margin="18,101,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="298" Height="46"/>
     66
     67
    9168    </Grid>
    9269</UserControl>
  • trunk/CrypPlugins/MD5/Presentation/States/RoundStepPresentation.xaml.cs

    r963 r970  
    1818    /// Interaktionslogik für StartingRoundStepPresentation.xaml
    1919    /// </summary>
    20     public partial class StartingRoundStepPresentation : UserControl
     20    public partial class RoundStepPresentation : UserControl
    2121    {
    22         public StartingRoundStepPresentation()
     22        public RoundStepPresentation()
    2323        {
    2424            InitializeComponent();
Note: See TracChangeset for help on using the changeset viewer.