Dúvida na implementação do Twofish

Ae galera, blz

Seguinte estou tentando criptografar um arquivo qualquer usando o Twofish, mais para isso vi que - Para cifrar um arquivo qualquer preciso antes lê-lo em bytes, onde também devo passar um bloco em bytes para o twofish, sendo que essa passagem de parametros não estou conseguindo fazer.

Seque minha leitura e escrita em bytes:

import java.io.;
import java.security.
;

public class rwarquivo {

/** Criando uma intancia */
public rwarquivo() {
}

public static void Teste(String arq) {
    try {
        File f1 = new File(arq);
        File f2 = new File(arq+".crp");
        if (! f2.exists()) f2.createNewFile();
        
        FileInputStream fis = new FileInputStream(f1);
        FileOutputStream fos = new FileOutputStream(f2);
        
        long size = f1.length();
        int off = 0;
        int length = 256;
        byte[] bf = new byte[length];
        int aux = 0;
        
        while (size > off) {
            // Lê o arquivo de forma binária
            aux = fis.read(bf);//, 0, length);

//----------------------------------------------------------------------------
//------------------ Aqui deverá ocorrer a criptografia-----------------------

//------------------ Aqui deverá ocorrer a criptografia-----------------------
//---------------------------------------------------------------------------
// Escreve o resultado no arquivo de saída
fos.write(bf, 0, aux);
off += aux;
}
} catch (Exception e) {
System.out.println("erro: " + e.getMessage());
}
}

public static void main(String[] args) {

//Testando um arquivo qualquer
Teste(“c:\arqtest\Pump it up.mp3”);

}

}