// Path: CrococryptFile/common/org/fhissen/crypto/CryptoUtils.java
// public class CryptoUtils {
// 	static{
// 		InitCrypto.INIT();
// 	}
// 	
// 	private static Random randio = new Random();
// 	static{
// 		randio.nextBoolean();
// 		long l = randio.nextLong();
// 		randio.setSeed(System.currentTimeMillis() ^ l);
// 	}
// 
// 	public static final void kill(byte[] b){
// 		if(b == null) return;
// 		randio.nextBytes(b);
// 	}
// 
// 	public static final void kill(byte[]... bs){
// 		if(bs == null) return;
// 		
// 		for(byte[]b: bs)
// 			kill(b);
// 	}
// 
// 	public static final void kill(char[] b){
// 		if(b == null) return;
// 		for(int i=0; i<b.length; i++)
// 			b[i] = (char)randio.nextInt();
// 	}
// 	
// 
// 	private static final SecureRandom sr = new KeygenUtils().makeSR();
// 	public static final byte[] randIv16(){
// 		byte[] ret = new byte[16];
// 		sr.nextBytes(ret);
// 		return ret;
// 	}
// 
// 	public static final byte[] randIv(int size){
// 		byte[] ret = new byte[size];
// 		sr.nextBytes(ret);
// 		return ret;
// 	}
// 	
// 	
// 	public static final long makeSimpleId(){
// 		return UUID.randomUUID().getMostSignificantBits();
// 	}
// 	
// 	
// 	public static final String[] toArray(String... s){
// 		return s;
// 	}
// 
// 	public static final BASECIPHER[] toArray(BASECIPHER... bc){
// 		return bc;
// 	}
// 
// 	public static final FSecretKeySpec[] toArray(FSecretKeySpec... fs){
// 		return fs;
// 	}
// 
// 	public static final FSecretKeySpec[] toArray(byte[]... rawkeys){
// 		if(rawkeys == null || rawkeys.length == 0) return null;
// 		
// 		FSecretKeySpec[] fs = new FSecretKeySpec[rawkeys.length];
// 		
// 		for(int i=0; i<rawkeys.length; i++){
// 			fs[i] = new FSecretKeySpec(rawkeys[i]);
// 		}
// 		
// 		return fs;
// 	}
// }


import java.io.File;
import java.io.RandomAccessFile;
import java.util.Arrays;
import org.fhissen.crypto.CryptoUtils;

package org.fhissen.utils;




public class FileWipe {
	private static final int BUFFERSIZE = 1024 * 1024;

	public static File wipe(File f){
		if(!f.exists() || !f.isFile()) {
			return null;
		}
		
		try {
			RandomAccessFile raf = new RandomAccessFile(f, "rw");
			
			byte[] b = new byte[BUFFERSIZE];
			
			long l = raf.length();
			while(l > 0){

// Path: CrococryptFile/common/org/fhissen/crypto/CryptoUtils.java
// public class CryptoUtils {
// 	static{
// 		InitCrypto.INIT();
// 	}
// 	
// 	private static Random randio = new Random();
// 	static{
// 		randio.nextBoolean();
// 		long l = randio.nextLong();
// 		randio.setSeed(System.currentTimeMillis() ^ l);
// 	}
// 
// 	public static final void kill(byte[] b){
// 		if(b == null) return;
// 		randio.nextBytes(b);
// 	}
// 
// 	public static final void kill(byte[]... bs){
// 		if(bs == null) return;
// 		
// 		for(byte[]b: bs)
// 			kill(b);
// 	}
// 
// 	public static final void kill(char[] b){
// 		if(b == null) return;
// 		for(int i=0; i<b.length; i++)
// 			b[i] = (char)randio.nextInt();
// 	}
// 	
// 
// 	private static final SecureRandom sr = new KeygenUtils().makeSR();
// 	public static final byte[] randIv16(){
// 		byte[] ret = new byte[16];
// 		sr.nextBytes(ret);
// 		return ret;
// 	}
// 
// 	public static final byte[] randIv(int size){
// 		byte[] ret = new byte[size];
// 		sr.nextBytes(ret);
// 		return ret;
// 	}
// 	
// 	
// 	public static final long makeSimpleId(){
// 		return UUID.randomUUID().getMostSignificantBits();
// 	}
// 	
// 	
// 	public static final String[] toArray(String... s){
// 		return s;
// 	}
// 
// 	public static final BASECIPHER[] toArray(BASECIPHER... bc){
// 		return bc;
// 	}
// 
// 	public static final FSecretKeySpec[] toArray(FSecretKeySpec... fs){
// 		return fs;
// 	}
// 
// 	public static final FSecretKeySpec[] toArray(byte[]... rawkeys){
// 		if(rawkeys == null || rawkeys.length == 0) return null;
// 		
// 		FSecretKeySpec[] fs = new FSecretKeySpec[rawkeys.length];
// 		
// 		for(int i=0; i<rawkeys.length; i++){
// 			fs[i] = new FSecretKeySpec(rawkeys[i]);
// 		}
// 		
// 		return fs;
// 	}
// }


// Path: CrococryptFile/common/org/fhissen/utils/FileWipe.java
import java.io.File;
import java.io.RandomAccessFile;
import java.util.Arrays;
import org.fhissen.crypto.CryptoUtils;

package org.fhissen.utils;




public class FileWipe {
	private static final int BUFFERSIZE = 1024 * 1024;

	public static File wipe(File f){
		if(!f.exists() || !f.isFile()) {
			return null;
		}
		
		try {
			RandomAccessFile raf = new RandomAccessFile(f, "rw");
			
			byte[] b = new byte[BUFFERSIZE];
			
			long l = raf.length();
			while(l > 0){

				CryptoUtils.kill(b);
