Class OpenStegoPlugin
java.lang.Object
com.openstego.desktop.OpenStegoPlugin
- Direct Known Subclasses:
DataHidingPlugin, WatermarkingPlugin
Abstract class for stego plugins for OpenStego. Abstract methods need to be implemented to add support for more
steganographic algorithms
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Enumeration of plugin purposes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected OpenStegoConfig
Configuration data to be used while embedding / extracting data -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract boolean
canHandle
(byte[] stegoData) Method to find out whether given stego data can be handled by this plugin or notfinal double
Method to check the correlation for the given image and the original signaturefinal OpenStegoConfig
Method to create default configuration data (specific to this plugin)final OpenStegoConfig
createConfig
(CmdLineOptions options) Method to create configuration data (specific to this plugin) based on the command-line optionsfinal OpenStegoConfig
createConfig
(Map<String, String> propMap) Method to create configuration data (specific to this plugin) based on the property mapabstract byte[]
Method to embed the message into the cover dataabstract byte[]
extractData
(byte[] stegoData, String stegoFileName, byte[] origSigData) Method to extract the message from the stego dataabstract String
extractMsgFileName
(byte[] stegoData, String stegoFileName) Method to extract the message file name from the stego dataabstract byte[]
Method to generate the signature data.final OpenStegoConfig
Get method for configabstract Class
<? extends OpenStegoConfig> Method to get the configuration class specific to this pluginabstract String
Gives a short description of the pluginabstract byte[]
getDiff
(byte[] stegoData, String stegoFileName, byte[] coverData, String coverFileName, String diffFileName) Method to get difference between original cover file and the stegged fileabstract PluginEmbedOptionsUI
getEmbedOptionsUI
(OpenStegoUI stegoUI) Method to get the UI object for "Embed" action specific to this plugin.abstract double
Method to get correlation value which above which it can be considered that watermark strength is highabstract double
Method to get correlation value which below which it can be considered that watermark strength is lowabstract String
getName()
Gives the name of the pluginabstract List
<OpenStegoPlugin.Purpose> Gives the purpose(s) of the pluginfinal String
Gives the display label for purpose(s) of the pluginMethod to get the list of supported file extensions for readingabstract String
getUsage()
Method to get the usage details of the pluginabstract double
getWatermarkCorrelation
(byte[] origSigData, byte[] watermarkData) Method to check the correlation between original signature and the extracted watermarkMethod to get the list of supported file extensions for writingabstract void
populateStdCmdLineOptions
(CmdLineOptions options) Method to populate the standard command-line options used by this plugin
-
Field Details
-
config
Configuration data to be used while embedding / extracting data
-
-
Constructor Details
-
OpenStegoPlugin
public OpenStegoPlugin()
-
-
Method Details
-
getName
-
getPurposes
Gives the purpose(s) of the plugin- Returns:
- Purpose(s) of the plugin
-
getDescription
Gives a short description of the plugin- Returns:
- Short description of the plugin
-
getPurposesLabel
Gives the display label for purpose(s) of the plugin- Returns:
- Display lable for purpose(s) of the plugin
-
embedData
public abstract byte[] embedData(byte[] msg, String msgFileName, byte[] cover, String coverFileName, String stegoFileName) throws OpenStegoException Method to embed the message into the cover data- Parameters:
msg
- Message to be embeddedmsgFileName
- Name of the message file. If this value is provided, then the filename should be embedded in the cover datacover
- Cover data into which message needs to be embeddedcoverFileName
- Name of the cover filestegoFileName
- Name of the output stego file- Returns:
- Stego data containing the message
- Throws:
OpenStegoException
-
extractMsgFileName
public abstract String extractMsgFileName(byte[] stegoData, String stegoFileName) throws OpenStegoException Method to extract the message file name from the stego data- Parameters:
stegoData
- Stego data containing the messagestegoFileName
- Name of the stego file- Returns:
- Message file name
- Throws:
OpenStegoException
-
extractData
public abstract byte[] extractData(byte[] stegoData, String stegoFileName, byte[] origSigData) throws OpenStegoException Method to extract the message from the stego data- Parameters:
stegoData
- Stego data containing the messagestegoFileName
- Name of the stego fileorigSigData
- Optional signature data file for watermark- Returns:
- Extracted message
- Throws:
OpenStegoException
-
generateSignature
Method to generate the signature data. This method needs to be implemented only if the purpose of the plugin is Watermarking- Returns:
- Signature data
- Throws:
OpenStegoException
-
checkMark
public final double checkMark(byte[] stegoData, String stegoFileName, byte[] origSigData) throws OpenStegoException Method to check the correlation for the given image and the original signature- Parameters:
stegoData
- Stego data containing the watermarkstegoFileName
- Name of the stego fileorigSigData
- Original signature data- Returns:
- Correlation
- Throws:
OpenStegoException
-
getWatermarkCorrelation
public abstract double getWatermarkCorrelation(byte[] origSigData, byte[] watermarkData) throws OpenStegoException Method to check the correlation between original signature and the extracted watermark- Parameters:
origSigData
- Original signature datawatermarkData
- Extracted watermark data- Returns:
- Correlation
- Throws:
OpenStegoException
-
getHighWatermarkLevel
Method to get correlation value which above which it can be considered that watermark strength is high- Returns:
- High watermark
- Throws:
OpenStegoException
-
getLowWatermarkLevel
Method to get correlation value which below which it can be considered that watermark strength is low- Returns:
- Low watermark
- Throws:
OpenStegoException
-
getDiff
public abstract byte[] getDiff(byte[] stegoData, String stegoFileName, byte[] coverData, String coverFileName, String diffFileName) throws OpenStegoException Method to get difference between original cover file and the stegged file- Parameters:
stegoData
- Stego data containing the embedded datastegoFileName
- Name of the stego filecoverData
- Original cover datacoverFileName
- Name of the cover filediffFileName
- Name of the output difference file- Returns:
- Difference data
- Throws:
OpenStegoException
-
canHandle
public abstract boolean canHandle(byte[] stegoData) Method to find out whether given stego data can be handled by this plugin or not- Parameters:
stegoData
- Stego data containing the message- Returns:
- Boolean indicating whether the stego data can be handled by this plugin or not
-
getReadableFileExtensions
Method to get the list of supported file extensions for reading- Returns:
- List of supported file extensions for reading
- Throws:
OpenStegoException
-
getWritableFileExtensions
Method to get the list of supported file extensions for writing- Returns:
- List of supported file extensions for writing
- Throws:
OpenStegoException
-
populateStdCmdLineOptions
Method to populate the standard command-line options used by this plugin- Parameters:
options
- Existing command-line options. Plugin-specific options will get added to this list- Throws:
OpenStegoException
-
getUsage
Method to get the usage details of the plugin- Returns:
- Usage details of the plugin
- Throws:
OpenStegoException
-
getEmbedOptionsUI
public abstract PluginEmbedOptionsUI getEmbedOptionsUI(OpenStegoUI stegoUI) throws OpenStegoException Method to get the UI object for "Embed" action specific to this plugin. This UI object will be embedded inside the main OpenStego GUI- Parameters:
stegoUI
- Reference to the parent OpenStegoUI object- Returns:
- UI object specific to this plugin for "Embed" action
- Throws:
OpenStegoException
-
getConfigClass
Method to get the configuration class specific to this plugin- Returns:
- Configuration class specific to this plugin
-
createConfig
Method to create default configuration data (specific to this plugin)- Returns:
- Configuration data
- Throws:
OpenStegoException
-
createConfig
Method to create configuration data (specific to this plugin) based on the property map- Parameters:
propMap
- Property map- Returns:
- Configuration data
- Throws:
OpenStegoException
-
createConfig
Method to create configuration data (specific to this plugin) based on the command-line options- Parameters:
options
- Command-line options- Returns:
- Configuration data
- Throws:
OpenStegoException
-
getConfig
-