New plugins can be added by implementing this abstract class from OpenStego:
- getName(): This method should return a short name for the algorithm / plugin
- getDescription(): This method should return a one line description of the algorithm / plugin
- embedData(): This method should embed the given message into the given cover data and return back the stego data
- extractMsgFileName(): This method should return the embedded message file name from the given stego data
- extractData(): This method should return the embedded message data from the given stego data
- canHandle(): This method should return true if this plugin can handle the given stego data
- getReadableFileExtensions(): This method should return the list of file extensions that this plugin can read (where file is the coverfile)
- getWritableFileExtensions(): This method should return the list of file extensions that this plugin can write (where file is the stegofile)
- populateStdCmdLineOptions(): This method should populate the new command line options that it is going to handle
- getUsage(): This method should return the help message to be displayed for this plugin
- getEmbedOptionsUI(): This method should return an object which implements the net.sourceforge.openstego.ui.PluginEmbedOptionsUI class. This class extends the JPanel class. The object returned by this method is embedded inside the OpenStego GUI, when this plugin is selected
- createConfig(): Three methods to create instance of OpenStegoConfig object (or its sub-class if this plugin extends the same)
After implementing the OpenStegoPlugin class, create a new file named "OpenStegoPlugins.external" and put the fully qualified name of the new class in the file. Make sure that this file is put directly under the CLASSPATH while invoking the application.
That's all to adding new plugin for OpenStego.
Please refer to the "net.sourceforge.openstego.plugin.lsb" package sources for sample plugin implementation.