Skip to content

HowToDevChecklist

Nils Kopal edited this page Feb 11, 2022 · 2 revisions

Table of Contents

CrypTool 2 Plugin Developer HowTo Checklist

This document is intended for plugin developers who want to contribute a new plugin to CrypTool 2. Plugins implement a cryptographic algorithm or similar functionality. Please note that CrypTool 2 is an alive project - certain information here may not be up-to-date. Feel free to contact us, if you are missing something.

All steps that should be done before the development process starts can be found in a very compact way at this page. But if you’re developing your first plugin it is recommended to read the [source:/trunk/Documentation/PluginHowTo/HowToDeveloper.pdf] first.

Preparations

  1. Install Microsoft Visual Studio 2019 Community Edition (or newer)
  2. Install at least the Microsoft .NET 4.7.2
  3. Install a Git-Client (e.g. TortoiseGit https://tortoisegit.org/)

Project Setup

  1. Clone the CrypTool 2 sources
  2. Open the CrypTool 2.sln Visual Studio solution
  3. Look for the project CrypWin and make sure it is selected as startup project
  4. Build your version of CrypTool 2
  5. Download the CrypTool 2 plugin template CrypTool%202%20Plugin.zip
    1. unpack the CrypTool 2 Plugin.zip into Documents\Visual Studio 2019\Templates\ProjectTemplates\Visual C#\CrypTool 2 Plugin
    2. Restart Visual Studio

Plugin Implementation

  1. Add a new project for your plugin through right click in the solution explorer (Add --> New Project)
  2. Select Visual C# --> CrypTool 2 Plugin as project template in the dialog window
  3. Enter a unique name for your new plugin project (for example the name of the cryptographic algorithm)
  4. Select the subdirectory CrypPlugins as the location of your project
  5. Rename the files ExamplePluginCT2.cs and ExamplePluginCT2Settings.cs in the solution explorer to something more meaningful (replace the Part ExamplePluginCT2 with the name of the algorithm)
  6. Adapt the plugin skeleton while following the HOWTO comments within the code
  7. Add meaningful comments in your code and write them only in English (if possible)
  8. For more explanations about the implementation read the [source:/trunk/Documentation/PluginHowTo/HowToDeveloper.pdf] beginning with section 2.3 Defining the attributes of the Caesar class

Further Information

More information can be found for example in one of the following Howtos:

Clone this wiki locally