// Path: encoder/src/main/java/ru/bullyboo/encoder/Encoder.java
// public class Encoder {
// 
//     private Encoder() {
// 
//     }
// 
//     public static BuilderAES BuilderAES() {
//         return new BuilderAES();
//     }
// 
//     public static BuilderARCFOUR BuilderARCFOUR() {
//         return new BuilderARCFOUR();
//     }
// 
//     public static BuilderDES BuilderDES() {
//         return new BuilderDES();
//     }
// 
//     public static BuilderDESede BuilderDESede() {
//         return new BuilderDESede();
//     }
// 
//     public static BuilderRSA BuilderRSA() {
//         return new BuilderRSA();
//     }
// 
//     public static BuilderHMAC BuilderHMAC() {
//         return new BuilderHMAC();
//     }
// 
//     public static BuilderPBE BuilderPBE() {
//         return new BuilderPBE();
//     }
// 
//     public static BuilderBlowfish BuilderBlowfish() {
//         return new BuilderBlowfish();
//     }
// 
//     public static ru.bullyboo.encoder.hashes.Hash Hashes() {
//         return new ru.bullyboo.encoder.hashes.Hash();
//     }
// 
// }
// 
// Path: encoder/src/main/java/ru/bullyboo/encoder/callbacks/EncodeCallback.java
// public interface EncodeCallback {
// 
//     void onSuccess(String result);
// 
//     void onFailure(Throwable e);
// }


import ru.bullyboo.encoder.Encoder;
import ru.bullyboo.encoder.callbacks.EncodeCallback;
        String encrypt = Encoder.BuilderARCFOUR()
                .message("test message")
                .key("test key")
                .keySize(1024)
                .encrypt();

        String decrypt = Encoder.BuilderARCFOUR()
                .message(encrypt)
                .key(key, keySize)
                .decrypt();


        if(decrypt.equals(message)){
            System.out.println("onSuccess");
            System.out.println("encrypt = " + encrypt);
            System.out.println("decrypt = " + decrypt);
        } else {
            System.out.println("onFailure");
            System.out.println("encrypt = " + encrypt);
            System.out.println("decrypt = " + decrypt);
            System.out.println("keySize = " + keySize);
        }
    }

    public static void testARCFOUR_Async(){

        Encoder.BuilderARCFOUR()
                .message("test message")
                .key("test key")
                .keySize(1024)
// Path: encoder/src/main/java/ru/bullyboo/encoder/Encoder.java
// public class Encoder {
// 
//     private Encoder() {
// 
//     }
// 
//     public static BuilderAES BuilderAES() {
//         return new BuilderAES();
//     }
// 
//     public static BuilderARCFOUR BuilderARCFOUR() {
//         return new BuilderARCFOUR();
//     }
// 
//     public static BuilderDES BuilderDES() {
//         return new BuilderDES();
//     }
// 
//     public static BuilderDESede BuilderDESede() {
//         return new BuilderDESede();
//     }
// 
//     public static BuilderRSA BuilderRSA() {
//         return new BuilderRSA();
//     }
// 
//     public static BuilderHMAC BuilderHMAC() {
//         return new BuilderHMAC();
//     }
// 
//     public static BuilderPBE BuilderPBE() {
//         return new BuilderPBE();
//     }
// 
//     public static BuilderBlowfish BuilderBlowfish() {
//         return new BuilderBlowfish();
//     }
// 
//     public static ru.bullyboo.encoder.hashes.Hash Hashes() {
//         return new ru.bullyboo.encoder.hashes.Hash();
//     }
// 
// }
// 
// Path: encoder/src/main/java/ru/bullyboo/encoder/callbacks/EncodeCallback.java
// public interface EncodeCallback {
// 
//     void onSuccess(String result);
// 
//     void onFailure(Throwable e);
// }


// Path: app/src/main/java/ru/bullyboo/encryption/tests/TestARCFOUR.java
import ru.bullyboo.encoder.Encoder;
import ru.bullyboo.encoder.callbacks.EncodeCallback;

        String encrypt = Encoder.BuilderARCFOUR()
                .message("test message")
                .key("test key")
                .keySize(1024)
                .encrypt();

        String decrypt = Encoder.BuilderARCFOUR()
                .message(encrypt)
                .key(key, keySize)
                .decrypt();


        if(decrypt.equals(message)){
            System.out.println("onSuccess");
            System.out.println("encrypt = " + encrypt);
            System.out.println("decrypt = " + decrypt);
        } else {
            System.out.println("onFailure");
            System.out.println("encrypt = " + encrypt);
            System.out.println("decrypt = " + decrypt);
            System.out.println("keySize = " + keySize);
        }
    }

    public static void testARCFOUR_Async(){

        Encoder.BuilderARCFOUR()
                .message("test message")
                .key("test key")
                .keySize(1024)
                .encryptCallBack(new EncodeCallback() {