Beispiel #1
0
        /// <summary>
        /// Gets message from container.
        /// </summary>
        /// <param name="container">Container.</param>
        /// <param name="key">Key.</param>
        /// <returns>Hidden message.</returns>
        public byte[] Extract(Container container, Key key)
        {
            if (!container.ContentType.Contains(Constants.IMAGE_CONTENT_TYPE))
                throw new ArgumentException("LSB is only works with image containers.");

            Bitmap bitmap = new Bitmap(container.InputStream);
            byte[] bytes = new byte[key.MessageLength];

            for (int y = 0; y < bitmap.Height; y++)
            {
                for (int x = 0; x < bitmap.Width; x++)
                {
                    int number = x + y * bitmap.Width;

                    if (number >= key.MessageLength << 3)
                    {
                        return bytes;
                    }

                    Color pixel = bitmap.GetPixel(x, y);
                    extractDataFromPixel(number, pixel, bytes);
                }
            }

            return bytes;
        }
        public static string ExtractDwm(IEmbeder embeder, ICryptor cryptor, Key key, Container container)
        {
            byte[] byteMessage = embeder.Extract(container, key);
            Stream message = cryptor.Decrypt(StreamHelper.BytesToStream(byteMessage), key);

            return StreamHelper.StreamToString(message);
        }
Beispiel #3
0
        public static Key GenerateKey(Container container, string message, CryptType cryptType, EmbedType embedType, IKeyAware keyParser, string stringkey)
        {
            if (!keyParser.ValidateKey(stringkey))
                throw new ArgumentException("Key is not valid.");

            Key key = new Key();
            key.CryptType = cryptType;
            key.EmbedType = embedType;
            key.MessageLength = Constants.DEFAULT_ENCODING.GetByteCount(message);
            key.Value = keyParser.ParseKey(stringkey);

            return key;
        }
Beispiel #4
0
 public byte[] Extract(Commons.Container container, Key key)
 {
     return new byte[0];
 }
Beispiel #5
0
 public bool ValidateKey(Key key, Container container)
 {
     return key.CryptType == CryptType.DES && key.MessageLength == container.InputStream.Length;
 }
Beispiel #6
0
        public Stream Encrypt(Stream message, Key key)
        {
            DES DESkey1 = new DES();
            FileProcessing fp = new FileProcessing();
            MemoryStream ms = new MemoryStream();

            fp.EnCryptFile(message, ms, cm1k, DESkey1.KeyList, null, null, 0, false);

            return ms;
        }
 /// <summary>
 /// Embeds DWM within container.
 /// </summary>
 /// <param name="cryptor">Crypt algorithm.</param>
 /// <param name="embeder">Embeding algorithm.</param>
 /// <param name="message">Secret message.</param>
 /// <param name="key">Crypting key.</param>
 /// <param name="container">Container.</param>
 /// <param name="fileName">Container file name.</param>
 /// <returns>Saved file name at server.</returns>
 public static void EmbedDwm(ICryptor cryptor, IEmbeder embeder, string message, Key key, Container container)
 {
     Stream cryptedMessage = cryptor.Encrypt(StreamHelper.StringToStream(message), key);
     embeder.Embed(container, StreamHelper.StreamToBytesArray(cryptedMessage));
 }
Beispiel #8
0
 public bool ValidateKey(Key key, Container container)
 {
     return true;
 }
Beispiel #9
0
 public Stream Encrypt(Stream message, Key key)
 {
     return message;
 }
Beispiel #10
0
 public System.IO.Stream Encrypt(Stream message, Key key)
 {
     return message;
 }