Beispiel #1
0
 public void close()
 {
     if (writer != null && bdata != null)
     {
         var bb    = cape.Buffer.allocate((long)1);
         var bbptr = bb;
         if (bcurr > 0)
         {
             var n = 0;
             for (n = bcurr; n < bsize; n++)
             {
                 cape.Buffer.setByte(bdata, (long)n, (byte)0);
             }
             writeCompleteBlock(bdata);
             cape.Buffer.setByte(bbptr, (long)0, (byte)(bsize - bcurr));
             writer.write(bb, -1);
         }
         else
         {
             cape.Buffer.setByte(bbptr, (long)0, (byte)0);
             writer.write(bb, -1);
         }
     }
     writer = null;
     cipher = null;
     bdata  = null;
 }
        public static byte[] encryptBuffer(byte[] data, capex.crypto.BlockCipher cipher)
        {
            if (cipher == null || data == null)
            {
                return(null);
            }
            var bw = new cape.BufferWriter();

            if (bw == null)
            {
                return(null);
            }
            var ww = capex.crypto.BlockCipherWriter.create((cape.Writer)bw, cipher);

            if (ww == null)
            {
                return(null);
            }
            var r = ww.write(data);

            ww.close();
            if (r < cape.Buffer.getSize(data))
            {
                return(null);
            }
            return(bw.getBuffer());
        }
 public static byte[] encryptString(string data, capex.crypto.BlockCipher cipher)
 {
     if (object.Equals(data, null))
     {
         return(null);
     }
     return(capex.crypto.BlockCipher.encryptBuffer(cape.String.toUTF8Buffer(data), cipher));
 }
        public static string decryptString(byte[] data, capex.crypto.BlockCipher cipher)
        {
            var db = capex.crypto.BlockCipher.decryptBuffer(data, cipher);

            if (db == null)
            {
                return(null);
            }
            return(cape.String.forUTF8Buffer(db));
        }
Beispiel #5
0
        public static capex.crypto.BlockCipherWriter create(cape.Writer writer, capex.crypto.BlockCipher cipher)
        {
            if (writer == null || cipher == null)
            {
                return(null);
            }
            var v = new capex.crypto.BlockCipherWriter();

            v.writer = writer;
            v.cipher = cipher;
            v.bsize  = cipher.getBlockSize();
            v.bcurr  = 0;
            v.bdata  = cape.Buffer.allocate((long)cipher.getBlockSize());
            v.outbuf = cape.Buffer.allocate((long)cipher.getBlockSize());
            return(v);
        }
        public static cape.SizedReader create(cape.SizedReader reader, capex.crypto.BlockCipher cipher)
        {
            if (reader == null)
            {
                return(null);
            }
            if (cipher == null)
            {
                return(reader);
            }
            var v = new capex.crypto.BlockCipherReader();

            v.reader   = reader;
            v.cipher   = cipher;
            v.bcurrent = cape.Buffer.allocate((long)cipher.getBlockSize());
            v.bnext    = cape.Buffer.allocate((long)cipher.getBlockSize());
            v.ddata    = cape.Buffer.allocate((long)cipher.getBlockSize());
            v.csize    = 0;
            v.cindex   = 0;
            v.nsize    = 0;
            return((cape.SizedReader)v);
        }
        public static byte[] decryptBuffer(byte[] data, capex.crypto.BlockCipher cipher)
        {
            if (cipher == null || data == null)
            {
                return(null);
            }
            var br = cape.BufferReader.forBuffer(data);

            if (br == null)
            {
                return(null);
            }
            var rr = capex.crypto.BlockCipherReader.create((cape.SizedReader)br, cipher);

            if (rr == null)
            {
                return(null);
            }
            var db = cape.Buffer.allocate(cape.Buffer.getSize(data));

            if (db == null)
            {
                return(null);
            }
            var ll = rr.read(db);

            if (ll < 0)
            {
                return(null);
            }
            if (ll < cape.Buffer.getSize(db))
            {
                cape.Buffer.allocate((long)ll);
            }
            return(db);
        }