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)); }
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); }