Changeset 159


Ignore:
Timestamp:
Dec 17, 2008, 2:50:51 PM (13 years ago)
Author:
Gerhard Junker
Message:

Twofish plugin continued

Location:
trunk
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/Tiger/Tiger.cs

    r155 r159  
    119119                // Input inputdata
    120120                private byte[] inputdata = { };
    121                 private dataCanal inputCanal = dataCanal.none;
     121                //private dataCanal inputCanal = dataCanal.none;
    122122
    123123                /// <summary>
  • trunk/CrypPlugins/Twofish/Twofish.cs

    r158 r159  
    1515using System;
    1616using System.Collections.Generic;
    17 using System.Linq;
    1817using System.Text;
    1918using Cryptool.PluginBase;
     
    3433  public class Twofish : IEncryption
    3534  {
     35
     36    public Twofish()
     37    {
     38      settings = new TwofishSettings();
     39
     40      ASCIIEncoding enc = new ASCIIEncoding();
     41      outputData = enc.GetBytes("NOT yet implemented.");
     42    }
     43
    3644    #region IPlugin Member
    3745
     
    5967        settings = (TwofishSettings)value;
    6068        OnPropertyChanged("Settings");
    61         GuiLogMessage("Settings changed.", NotificationLevel.Debug);
    6269      }
    6370    }
     
    7683    }
    7784
    78     /// <summary>
    79     /// Gets the quick watch presentation
    80     /// will be displayed inside of the plugin presentation-element.
    81     /// You can return the existing Presentation if it makes sense to display
    82     /// it inside a small area. But be aware that
    83     /// if Presentation is displayed in QuickWatchPresentation
    84     /// you can't open Presentation it in a tab before you
    85     /// you close QuickWatchPresentation;
    86     /// Return null if your plugin has no QuickWatchPresentation.
    87     /// </summary>
    88     /// <value>The quick watch presentation.</value>
    8985    public System.Windows.Controls.UserControl QuickWatchPresentation
    9086    {
     
    10197    public void Execute()
    10298    {
    103       throw new NotImplementedException();
     99      GuiLogMessage("NOT yet complete implemented.", NotificationLevel.Warning);
    104100    }
    105101
     
    120116    }
    121117
     118    /// <summary>
     119    /// Will be called from editor when element is deleted from worksapce.
     120    /// Releases unmanaged and - optionally - managed resources
     121    /// </summary>
    122122    public void Dispose()
    123123    {
     124      foreach (CryptoolStream stream in listCryptoolStreamsOut)
     125      {
     126        stream.Close();
     127      }
     128      listCryptoolStreamsOut.Clear();
    124129    }
    125130
    126131    #endregion
     132
     133    private void Crypt()
     134    {
     135      GuiLogMessage("NOT yet implemented.", NotificationLevel.Warning);
     136
     137
     138      NotifyUpdateOutput();
     139    }
     140
     141    #region Input inputdata
     142
     143    // Input inputdata
     144                private byte[] inputdata = { };
     145
     146                /// <summary>
     147                /// Notifies the update input.
     148                /// </summary>
     149                private void NotifyUpdateInput()
     150                {
     151                        OnPropertyChanged("InputStream");
     152                        OnPropertyChanged("InputData");
     153                }
     154
     155                /// <summary>
     156                /// Gets or sets the input inputdata.
     157                /// </summary>
     158                /// <value>The input inputdata.</value>
     159                [PropertyInfo(Direction.Input, "Input Data Stream", "Input data stream to process", "",
     160      false, false, DisplayLevel.Beginner, QuickWatchFormat.Hex, null)]
     161                public CryptoolStream InputStream
     162                {
     163                        get
     164                        {
     165                                CryptoolStream inputStream = new CryptoolStream();
     166                                inputStream.OpenRead(this.GetPluginInfoAttribute().Caption, inputdata);
     167                                return inputStream;
     168                        }
     169                        set
     170                        {
     171        if (null == value)
     172        {
     173          inputdata = new byte[0];
     174          return;
     175        }
     176
     177                                long len = value.Length;
     178                                inputdata = new byte[len];
     179
     180                                for (long i = 0; i < len; i++)
     181                                        inputdata[i] = (byte)value.ReadByte();
     182
     183                                NotifyUpdateInput();
     184                        }
     185                }
     186
     187                /// <summary>
     188                /// Gets the input data.
     189                /// </summary>
     190                /// <value>The input data.</value>
     191                [PropertyInfo(Direction.Input, "Input Data", "Input Data to process", "",
     192      false, false, DisplayLevel.Beginner, QuickWatchFormat.Hex, null)]
     193                public byte[] InputData
     194                {
     195                        get
     196                        {
     197                                return inputdata;
     198                        }
     199                        set
     200                        {
     201        if (null == value)
     202        {
     203          inputdata = new byte[0];
     204          return;
     205        }
     206                                long len = value.Length;
     207                                inputdata = new byte[len];
     208
     209                                for (long i = 0; i < len; i++)
     210                                        inputdata[i] = value[i];
     211
     212                                NotifyUpdateInput();
     213                        }
     214                }
     215                #endregion
     216
     217    #region Output
     218
     219    // Output
     220    private List<CryptoolStream> listCryptoolStreamsOut = new List<CryptoolStream>();
     221    private byte[] outputData = { };
     222
     223    /// <summary>
     224    /// Notifies the update output.
     225    /// </summary>
     226    private void NotifyUpdateOutput()
     227    {
     228      OnPropertyChanged("OutputStream");
     229      OnPropertyChanged("OutputData");
     230    }
     231
     232
     233    /// <summary>
     234    /// Gets or sets the output inputdata stream.
     235    /// </summary>
     236    /// <value>The output inputdata stream.</value>
     237    [PropertyInfo(Direction.Output, "Output Stream", "Output stream", "",
     238      true, false, DisplayLevel.Beginner, QuickWatchFormat.Text, null) ]
     239    public CryptoolStream OutputStream
     240    {
     241      get
     242      {
     243        CryptoolStream outputDataStream = null;
     244        if (outputData != null)
     245        {
     246          outputDataStream = new CryptoolStream();
     247          outputDataStream.OpenRead(this.GetPluginInfoAttribute().Caption, outputData);
     248          listCryptoolStreamsOut.Add(outputDataStream);
     249        }
     250        return outputDataStream;
     251      }
     252    }
     253
     254    /// <summary>
     255    /// Gets the output inputdata.
     256    /// </summary>
     257    /// <value>The output inputdata.</value>
     258    [PropertyInfo(Direction.Output, "Output Data", "Output data", "",
     259      true, false, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
     260    public byte[] OutputData
     261    {
     262      get
     263      {
     264        return this.outputData;
     265      }
     266    }
     267
     268    #endregion
     269
     270
    127271
    128272    #region INotifyPropertyChanged Member
     
    139283        if (name == "Settings")
    140284        {
    141           //Hash();
     285          Crypt();
    142286        }
    143287        else
  • trunk/CrypPlugins/Twofish/Twofish.csproj

    r158 r159  
    6666  </ItemGroup>
    6767  <ItemGroup>
    68     <ApplicationDefinition Include="Twofish.png" />
     68    <Resource Include="Twofish.png" />
    6969  </ItemGroup>
    7070  <ItemGroup>
    71     <ApplicationDefinition Include="Twofish1.png" />
     71    <Resource Include="Twofish1.png" />
    7272  </ItemGroup>
    7373  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
     
    7979  </Target>
    8080  -->
     81  <PropertyGroup>
     82    <PostBuildEvent>cd "$(ProjectDir)"
     83cd ..\..\CrypWin\$(OutDir)
     84if not exist "./CrypPlugins" mkdir "./CrypPlugins"
     85
     86del /F /S /Q /s /q "Twofish*.*"
     87copy "$(TargetDir)Twofish*.*" ".\CrypPlugins"</PostBuildEvent>
     88  </PropertyGroup>
    8189</Project>
  • trunk/CrypPlugins/Twofish/TwofishSetting.cs

    r158 r159  
    2828{
    2929  class TwofishSettings : ISettings
    30         {
     30  {
    3131
    32                 private bool hasChanges = false;
     32    private bool hasChanges = false;
    3333
    34                 #region ISettings Member
     34    #region ISettings Member
    3535
    36                 /// <summary>
    37                 /// Gets or sets A value indicating whether this instance has changes.
    38                 /// </summary>
    39                 /// <value>
    40                 ///     <c>true</c> if this instance has changes; otherwise, <c>false</c>.
    41                 /// </value>
    42                 public bool HasChanges
    43                 {
    44                         get
    45                         {
    46                                 return hasChanges;
    47                         }
    48                         set
    49                         {
    50                                 hasChanges = value;
    51                         }
    52                 }
     36    /// <summary>
     37    /// Gets or sets A value indicating whether this instance has changes.
     38    /// </summary>
     39    /// <value>
     40    ///         <c>true</c> if this instance has changes; otherwise, <c>false</c>.
     41    /// </value>
     42    public bool HasChanges
     43    {
     44      get
     45      {
     46        return hasChanges;
     47      }
     48      set
     49      {
     50        hasChanges = value;
     51      }
     52    }
    5353
    54                 #endregion
     54    #endregion
    5555
    56                 #region INotifyPropertyChanged Member
     56    int action = 1;
     57    [ContextMenu("Action", "Do you want the input data to be encrypted or decrypted?", 2,
     58      DisplayLevel.Beginner, ContextMenuControlType.ComboBox,
     59      new int[] { 1, 2 }, "Encrypt", "Decrypt")]
     60    [TaskPane("Action",
     61      "Do you want the input data to be encrypted or decrypted?", "", 0, false,
     62       DisplayLevel.Beginner, ControlType.ComboBox,
     63       new string[] { "Encrypt", "Decrypt" })]
     64    public int Action
     65    {
     66      get
     67      {
     68        return this.action;
     69      }
     70      set
     71      {
     72        if (((int)value) != action)
     73          hasChanges = true;
     74        this.action = (int)value;
     75        OnPropertyChanged("Action");
     76      }
     77    }
    5778
    58                 public event PropertyChangedEventHandler  PropertyChanged;
    5979
    60                 /// <summary>
    61                 /// Called when [property changed].
    62                 /// </summary>
    63                 /// <param name="name">The name.</param>
    64                 protected void OnPropertyChanged(string name)
    65                 {
    66                         if (PropertyChanged != null)
    67                         {
    68                                 PropertyChanged(this, new PropertyChangedEventArgs(name));
    69                         }
    70                         hasChanges = true;
    71                 }
     80    int mode = 0;
     81    [ContextMenu("Chaining mode",
     82          "Select the block cipher mode of operation.", 2,
     83          DisplayLevel.Beginner, ContextMenuControlType.ComboBox, null,
     84          new string[] { "Electronic Code Book (ECB)", "Cipher Block Chaining (CBC)" })]
     85    [TaskPane("Chaining mode", "Select the block cipher mode of operation.", "", 5, false,
     86          DisplayLevel.Experienced, ControlType.ComboBox,
     87          new string[] {"Electronic Code Book (ECB)", "Cipher Block Chaining (CBC)"} ) ]
     88    public int Mode
     89    {
     90      get
     91      {
     92        return this.mode;
     93      }
    7294
    73                 #endregion
    74         }
     95      set
     96      {
     97        if (((int)value) != mode)
     98          hasChanges = true;
     99        this.mode = (int)value;
     100        OnPropertyChanged("Mode");
     101      }
     102    }
     103
     104    #region INotifyPropertyChanged Member
     105
     106    public event PropertyChangedEventHandler  PropertyChanged;
     107
     108    /// <summary>
     109    /// Called when [property changed].
     110    /// </summary>
     111    /// <param name="name">The name.</param>
     112    protected void OnPropertyChanged(string name)
     113    {
     114      if (PropertyChanged != null)
     115      {
     116        PropertyChanged(this, new PropertyChangedEventArgs(name));
     117      }
     118      hasChanges = true;
     119    }
     120
     121    #endregion
     122  }
    75123}
  • trunk/SSCext/TwofishBase.cs

    r157 r159  
    303303      static private readonly int       ROUNDS_256   = 16;      /* default number of rounds for 256-bit keys*/
    304304      static private readonly int       MAX_KEY_BITS = 256;     /* max number of bits of key */
    305       static private readonly int       MIN_KEY_BITS = 128;     /* min number of bits of key (zero pad) */
     305     // static private readonly int     MIN_KEY_BITS = 128;     /* min number of bits of key (zero pad) */
    306306
    307307      static private readonly int       INPUT_WHITEN = 0;       /* subkey array indices */
Note: See TracChangeset for help on using the changeset viewer.