public byte[] Encrypt(byte[] data, int offset, int count, dcryptCompressionOptions compression = dcryptCompressionOptions.NoCompress) { //compression? if (compression == dcryptCompressionOptions.Compress) { data = Compress(data); count = data.Length; offset = 0; } var newdata = new byte[count + 1]; //start in here. var p = new byte[1]; rng.GetBytes(p); var randchr = p[0]; var chr = key[randchr][randchr]; for (var i = offset; i < count; i++) { chr = key[chr][data[i]]; Buffer.BlockCopy(new[] { chr }, 0, newdata, i, 1); } //append first byte to end. Buffer.BlockCopy(new[] { randchr }, 0, newdata, newdata.Length - 1, 1); return(newdata); }
public byte[] Encrypt(byte[] data, dcryptCompressionOptions compression) { return(Encrypt(data, 0, data.Length, compression)); }