// Path: jlib/jibe/src/main/java/hamaster/gradesgin/util/MemoryUtil.java
// final public class MemoryUtil {
// 
//     /**
//      * 在新的线程中安全擦除内存块，这个方法在执行后会快速返回<br>
//      * 此方法与在新线程中执行immediateSecureBuffers方法等效
//      * @param buffers 待擦除的内存块
//      */
//     public final static void fastSecureBuffers(byte[] ... buffers) {
//         new SecureBufferThread(buffers).start();
//     }
// 
//     /**
//      * 立刻安全擦除内存块
//      * @param buffers 待擦除的内存块
//      */
//     public final static void immediateSecureBuffers(byte[] ... buffers) {
//         BigInteger i = new BigInteger(Long.toHexString(System.nanoTime()), 16);
//         Random random = new SecureRandom(i.toByteArray());
//         for (byte[] buffer : buffers) {
//             if (buffer != null)
//                 random.nextBytes(buffer);
//         }
//     }
// }


import hamaster.gradesgin.util.MemoryUtil;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.Arrays;
package hamaster.gradesgin.ibe;



/**
 * IBE加密后的密文
 * @author <a href="mailto:wangyeee@gmail.com">Wang Ye</a>
 */
public class IBECipherText implements Serializable, IBEConstraints {
    private static final long serialVersionUID = 5766799743332486673L;

    /**
     * 密文uvw对象序列 共384字节
     * 384 bytes of (u, v, w)
     */
    private byte[] uvw;

    /**
     * 对应明文有效长度 单位字节
     * used length of plain text.
     * should this length also be encrypted???
     */
    private int length;

    public IBECipherText() {
    }

    public byte[] getUvw() {
        return uvw;
    }

    public void setUvw(byte[] uvw) {
        this.uvw = uvw;
    }

// Path: jlib/jibe/src/main/java/hamaster/gradesgin/util/MemoryUtil.java
// final public class MemoryUtil {
// 
//     /**
//      * 在新的线程中安全擦除内存块，这个方法在执行后会快速返回<br>
//      * 此方法与在新线程中执行immediateSecureBuffers方法等效
//      * @param buffers 待擦除的内存块
//      */
//     public final static void fastSecureBuffers(byte[] ... buffers) {
//         new SecureBufferThread(buffers).start();
//     }
// 
//     /**
//      * 立刻安全擦除内存块
//      * @param buffers 待擦除的内存块
//      */
//     public final static void immediateSecureBuffers(byte[] ... buffers) {
//         BigInteger i = new BigInteger(Long.toHexString(System.nanoTime()), 16);
//         Random random = new SecureRandom(i.toByteArray());
//         for (byte[] buffer : buffers) {
//             if (buffer != null)
//                 random.nextBytes(buffer);
//         }
//     }
// }


// Path: jlib/jibe/src/main/java/hamaster/gradesgin/ibe/IBECipherText.java
import hamaster.gradesgin.util.MemoryUtil;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.Arrays;

package hamaster.gradesgin.ibe;



/**
 * IBE加密后的密文
 * @author <a href="mailto:wangyeee@gmail.com">Wang Ye</a>
 */
public class IBECipherText implements Serializable, IBEConstraints {
    private static final long serialVersionUID = 5766799743332486673L;

    /**
     * 密文uvw对象序列 共384字节
     * 384 bytes of (u, v, w)
     */
    private byte[] uvw;

    /**
     * 对应明文有效长度 单位字节
     * used length of plain text.
     * should this length also be encrypted???
     */
    private int length;

    public IBECipherText() {
    }

    public byte[] getUvw() {
        return uvw;
    }

    public void setUvw(byte[] uvw) {
        this.uvw = uvw;
    }

    public int getLength() {