-
Notifications
You must be signed in to change notification settings - Fork 35
HowToDevChecklist
Nils Kopal edited this page Feb 11, 2022
·
2 revisions
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.
- Install Microsoft Visual Studio 2019 Community Edition (or newer)
- Install at least the Microsoft .NET 4.7.2
- Install a Git-Client (e.g. TortoiseGit https://tortoisegit.org/)
- Clone the CrypTool 2 sources
- Open the CrypTool 2.sln Visual Studio solution
- Look for the project CrypWin and make sure it is selected as startup project
- Build your version of CrypTool 2
- Download the CrypTool 2 plugin template CrypTool%202%20Plugin.zip
- unpack the CrypTool 2 Plugin.zip into Documents\Visual Studio 2019\Templates\ProjectTemplates\Visual C#\CrypTool 2 Plugin
- Restart Visual Studio
- Add a new project for your plugin through right click in the solution explorer (Add --> New Project)
- Select Visual C# --> CrypTool 2 Plugin as project template in the dialog window
- Enter a unique name for your new plugin project (for example the name of the cryptographic algorithm)
- Select the subdirectory CrypPlugins as the location of your project
- 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)
- Adapt the plugin skeleton while following the HOWTO comments within the code
- Add meaningful comments in your code and write them only in English (if possible)
- 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
More information can be found for example in one of the following Howtos:
- Understanding the IPlugin Interface
- How to define the Plugin Attributes
- How to use the ICryptoolStream Data Type
- How to add an XML User Documentation
- How to add Multi-Language support
- How to add your plugin to the Wizard
- HowToDeveloper.pdf