Example #1
0
        /// <summary>
        /// Compress the data into a single byte array
        /// </summary>
        /// <param name="data">Data to compress</param>
        /// <param name="flags">Which parts of the data to include</param>
        /// <returns>Byte array of compressed data</returns>
        public byte[] Compress(IData data, CryptoCompressionFlags flags)
        {
            var d = (CryptoData)data;

            var _data = d.data;
            var key   = d.key;
            var iv    = d.iv;

            if ((flags & CryptoCompressionFlags.All) != CryptoCompressionFlags.All)
            {
                if ((flags & CryptoCompressionFlags.Data) != CryptoCompressionFlags.Data)
                {
                    _data = null;
                }
                if ((flags & CryptoCompressionFlags.IV) != CryptoCompressionFlags.IV)
                {
                    iv = null;
                }
                if ((flags & CryptoCompressionFlags.Key) != CryptoCompressionFlags.Key)
                {
                    key = null;
                }
            }

            return(Compress(d.scope, _data, key, iv));
        }
Example #2
0
 public Crypto(Settings.EncryptionScope scope, CryptoCompressionFlags flags, byte[] key)
 {
     this.scope = scope;
     this.flags = flags;
     this.key   = key;
 }
Example #3
0
 public Crypto()
 {
     this.scope = Settings.EncryptionScope.CurrentUser;
     this.flags = CryptoCompressionFlags.All;
 }