//TO ENCODE THE SELECTED TABLE public void Encode(Hashtable[] HT, ArrayList PatitionCount, ArrayList TableColumn) { BufferdTranfer objBuffer = new BufferdTranfer(); watermark_partition = new Hashtable[HT.Length]; for (int x = 0; x < HT.Length; x++) { watermark_partition[x] = new Hashtable(); } for (int k = 0; k < HT.Length; k++) { pvalue = HT[k].Count; l = watermark.Length; i = k % l; if (watermark[i] == 1) { for (int j = 0; j < HT[k].Count; j++) { index = j % Delta_Max.Length; recieve = HT[k][j].ToString(); Spliting = recieve.Split('~'); Add = Delta_Max[index] + int.Parse(Spliting[0].ToString()); watermark_partition[k][j] = Add.ToString() + "~" + HT[k][j].ToString() + "~" + k + "~" + j; } boolHash.Add(k, "max"); } else { for (int j = 0; j < HT[k].Count; j++) { index = j % Delta_Min.Length; recieve = HT[k][j].ToString(); Spliting = recieve.Split('~'); Add = Delta_Min[index] + int.Parse(Spliting[0].ToString()); watermark_partition[k][j] = Add.ToString() + "~" + HT[k][j].ToString() + "~" + k + "~" + j; } boolHash.Add(k, "min"); } } objBuffer.boolHash = boolHash; objBuffer.TotalRecord = Partition.rowscountStatic; objBuffer.arryTableName = TableColumn; objBuffer.TableName = Partition.TableN; objBuffer.SourceName = MainForm.SourceNa; MessageBox.Show("Single Bit Encoding Completed", "Server", MessageBoxButtons.OK); waterserial.createtable(watermark_partition, objBuffer); }
//TO ENCRYPT THE WATERMARK SERIALIZED FILE WITH KEY VALIDATION CONTROL public void encryption(string sInputFilename, object Buffer) { Key objkey = new Key(); BufferdTranfer objBuffer = new BufferdTranfer(); objBuffer = (BufferdTranfer)Buffer; sOutputFilename = dirname + "\\Encrypt\\Data\\EncryptWithkey.txt"; Keyname = dirname + "\\Encrypt\\Data\\key.txt"; FileStream fsInput = new FileStream(sInputFilename, FileMode.Open, FileAccess.Read); FileStream fsEncrypted = new FileStream(sOutputFilename, FileMode.Create, FileAccess.Write); DESCryptoServiceProvider DES = new DESCryptoServiceProvider(); DES.Key = ASCIIEncoding.ASCII.GetBytes(key); DES.IV = ASCIIEncoding.ASCII.GetBytes(key); ICryptoTransform desencrypt = DES.CreateEncryptor(); CryptoStream cryptostream = new CryptoStream(fsEncrypted, desencrypt, CryptoStreamMode.Write); byte[] bytearrayinput = new byte[fsInput.Length]; fsInput.Read(bytearrayinput, 0, bytearrayinput.Length); cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length); cryptostream.Close(); //AGAIN SERIALIZING THE WATERMARK SERIALIZED FILE SerializedOutputFile = dirname + "\\Encrypt\\Data\\Serialized.txt"; Stream filestream1 = File.OpenRead(sOutputFilename); byte[] filebuffer1 = new byte[filestream1.Length]; filestream1.Read(filebuffer1, 0, (int)filestream1.Length); filestream1.Close(); MessageBox.Show("WaterMarking Completed", "Server", MessageBoxButtons.OK); SerializedOutputFile = dirname + "\\Encrypt\\Data\\Serialized.txt"; Stream s = File.Open(SerializedOutputFile, FileMode.Create, FileAccess.ReadWrite); BinaryFormatter b = new BinaryFormatter(); objBuffer.buffer = filebuffer1; objBuffer.key = key; b.Serialize(s, objBuffer); s.Close(); MessageBox.Show("Serialization Completed", "Server", MessageBoxButtons.OK); //Stream filestream2 = File.OpenRead(SerializedOutputFile); //byte[] filebuffer2 = new byte[filestream2.Length]; //filestream2.Read(filebuffer2, 0, (int)filestream2.Length); //filestream2.Close(); //TcpClient clientsocket = new TcpClient(MainForm.Destination, 8080); //NetworkStream networkstream = clientsocket.GetStream(); //networkstream.Write(filebuffer2, 0, filebuffer2.GetLength(0)); //networkstream.Close(); //MessageBox.Show("Data Transfered to " + MainForm.Destination, "Server", MessageBoxButtons.OK); }