Package com.openstego.desktop
Class OpenStegoPlugin
- java.lang.Object
-
- com.openstego.desktop.OpenStegoPlugin
-
- Direct Known Subclasses:
DataHidingPlugin
,WatermarkingPlugin
public abstract class OpenStegoPlugin extends java.lang.Object
Abstract class for stego plugins for OpenStego. Abstract methods need to be implemented to add support for more steganographic algorithms
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
OpenStegoPlugin.Purpose
Enumeration of plugin purposes
-
Field Summary
Fields Modifier and Type Field Description protected OpenStegoConfig
config
Configuration data to be used while embedding / extracting data
-
Constructor Summary
Constructors Constructor Description OpenStegoPlugin()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract boolean
canHandle(byte[] stegoData)
Method to find out whether given stego data can be handled by this plugin or notdouble
checkMark(byte[] stegoData, java.lang.String stegoFileName, byte[] origSigData)
Method to check the correlation for the given image and the original signatureOpenStegoConfig
createConfig()
Method to create default configuration data (specific to this plugin)OpenStegoConfig
createConfig(CmdLineOptions options)
Method to create configuration data (specific to this plugin) based on the command-line optionsOpenStegoConfig
createConfig(java.util.Map<java.lang.String,java.lang.String> propMap)
Method to create configuration data (specific to this plugin) based on the property mapabstract byte[]
embedData(byte[] msg, java.lang.String msgFileName, byte[] cover, java.lang.String coverFileName, java.lang.String stegoFileName)
Method to embed the message into the cover dataabstract byte[]
extractData(byte[] stegoData, java.lang.String stegoFileName, byte[] origSigData)
Method to extract the message from the stego dataabstract java.lang.String
extractMsgFileName(byte[] stegoData, java.lang.String stegoFileName)
Method to extract the message file name from the stego dataabstract byte[]
generateSignature()
Method to generate the signature data.OpenStegoConfig
getConfig()
Get method for configabstract java.lang.Class<? extends OpenStegoConfig>
getConfigClass()
Method to get the configuration class specific to this pluginabstract java.lang.String
getDescription()
Gives a short description of the pluginabstract byte[]
getDiff(byte[] stegoData, java.lang.String stegoFileName, byte[] coverData, java.lang.String coverFileName, java.lang.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
getHighWatermarkLevel()
Method to get correlation value which above which it can be considered that watermark strength is highabstract double
getLowWatermarkLevel()
Method to get correlation value which below which it can be considered that watermark strength is lowabstract java.lang.String
getName()
Gives the name of the pluginabstract java.util.List<OpenStegoPlugin.Purpose>
getPurposes()
Gives the purpose(s) of the pluginjava.lang.String
getPurposesLabel()
Gives the display label for purpose(s) of the pluginabstract java.util.List<java.lang.String>
getReadableFileExtensions()
Method to get the list of supported file extensions for readingabstract java.lang.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 watermarkabstract java.util.List<java.lang.String>
getWritableFileExtensions()
Method 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 Detail
-
config
protected OpenStegoConfig config
Configuration data to be used while embedding / extracting data
-
-
Method Detail
-
getName
public abstract java.lang.String getName()
Gives the name of the plugin- Returns:
- Name of the plugin
-
getPurposes
public abstract java.util.List<OpenStegoPlugin.Purpose> getPurposes()
Gives the purpose(s) of the plugin- Returns:
- Purpose(s) of the plugin
-
getDescription
public abstract java.lang.String getDescription()
Gives a short description of the plugin- Returns:
- Short description of the plugin
-
getPurposesLabel
public final java.lang.String 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, java.lang.String msgFileName, byte[] cover, java.lang.String coverFileName, java.lang.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 java.lang.String extractMsgFileName(byte[] stegoData, java.lang.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, java.lang.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
public abstract byte[] generateSignature() throws OpenStegoException
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, java.lang.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
public abstract double getHighWatermarkLevel() throws OpenStegoException
Method to get correlation value which above which it can be considered that watermark strength is high- Returns:
- High watermark
- Throws:
OpenStegoException
-
getLowWatermarkLevel
public abstract double getLowWatermarkLevel() throws OpenStegoException
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, java.lang.String stegoFileName, byte[] coverData, java.lang.String coverFileName, java.lang.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
public abstract java.util.List<java.lang.String> getReadableFileExtensions() throws OpenStegoException
Method to get the list of supported file extensions for reading- Returns:
- List of supported file extensions for reading
- Throws:
OpenStegoException
-
getWritableFileExtensions
public abstract java.util.List<java.lang.String> getWritableFileExtensions() throws OpenStegoException
Method to get the list of supported file extensions for writing- Returns:
- List of supported file extensions for writing
- Throws:
OpenStegoException
-
populateStdCmdLineOptions
public abstract void populateStdCmdLineOptions(CmdLineOptions options) throws OpenStegoException
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
public abstract java.lang.String getUsage() throws OpenStegoException
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
public abstract java.lang.Class<? extends OpenStegoConfig> getConfigClass()
Method to get the configuration class specific to this plugin- Returns:
- Configuration class specific to this plugin
-
createConfig
public final OpenStegoConfig createConfig() throws OpenStegoException
Method to create default configuration data (specific to this plugin)- Returns:
- Configuration data
- Throws:
OpenStegoException
-
createConfig
public final OpenStegoConfig createConfig(java.util.Map<java.lang.String,java.lang.String> propMap) throws OpenStegoException
Method to create configuration data (specific to this plugin) based on the property map- Parameters:
propMap
- Property map- Returns:
- Configuration data
- Throws:
OpenStegoException
-
createConfig
public final OpenStegoConfig createConfig(CmdLineOptions options) throws OpenStegoException
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
public final OpenStegoConfig getConfig()
Get method for config- Returns:
- Configuration data
-
-