// Path: app/src/main/java/eu/codlab/amiiwrite/database/models/Amiibo.java
// @Table(databaseName = Database.NAME)
// public class Amiibo extends BaseModel {
//     @Column
//     @PrimaryKey(autoincrement = true)
//     public long id;
// 
//     @Column
//     public String name;
// 
//     @Column
//     public String uuid;
// 
//     @Column
//     public String game_name;
// 
//     @Column
//     public long created_at;
// 
//     /**
//      * Identifier, it is extracted from the blob but here for clarity issue
//      */
//     @Column
//     public String amiibo_identifier;
// 
//     @Column(defaultValue = "false")
//     public boolean synced;
// 
//     @Column
//     public Blob data;
// 
//     private AmiiboDescriptor descriptor;
// 
// 
//     @Nullable
//     public AmiiboDescriptor getDescriptor() {
//         if (descriptor == null) {
//             descriptor = AmiiboFactory.getAmiiboDescriptorCache()
//                     .getFromKey(amiibo_identifier);
//         }
//         return descriptor;
//     }
// 
//     public byte[] decrypt() {
//         return AmiitoolFactory.getInstance()
//                 .unpack(this);
//     }
// }


import android.content.Context;
import android.util.Log;
import eu.codlab.amiitool.AmiiTool;
import eu.codlab.amiiwrite.database.models.Amiibo;
package eu.codlab.amiiwrite.amiitool;



/**
 * Created by kevinleperf on 22/04/16.
 */
public class AmiitoolFactory {
    private static AmiitoolFactory _sInstance = new AmiitoolFactory();

    private AmiitoolFactory() {

    }

    public static AmiitoolFactory getInstance() {
        return _sInstance;
    }

    private AmiiTool mAmiitool;

    public void init(Context context) {
        mAmiitool = new AmiiTool(context);
    }

    public byte[] unpack(Amiibo amiibo) {
        byte[] encrypted = amiibo.data.getBlob();
        return unpack(encrypted);
    }

    public byte[] unpack(byte[] encrypted) {
// Path: app/src/main/java/eu/codlab/amiiwrite/database/models/Amiibo.java
// @Table(databaseName = Database.NAME)
// public class Amiibo extends BaseModel {
//     @Column
//     @PrimaryKey(autoincrement = true)
//     public long id;
// 
//     @Column
//     public String name;
// 
//     @Column
//     public String uuid;
// 
//     @Column
//     public String game_name;
// 
//     @Column
//     public long created_at;
// 
//     /**
//      * Identifier, it is extracted from the blob but here for clarity issue
//      */
//     @Column
//     public String amiibo_identifier;
// 
//     @Column(defaultValue = "false")
//     public boolean synced;
// 
//     @Column
//     public Blob data;
// 
//     private AmiiboDescriptor descriptor;
// 
// 
//     @Nullable
//     public AmiiboDescriptor getDescriptor() {
//         if (descriptor == null) {
//             descriptor = AmiiboFactory.getAmiiboDescriptorCache()
//                     .getFromKey(amiibo_identifier);
//         }
//         return descriptor;
//     }
// 
//     public byte[] decrypt() {
//         return AmiitoolFactory.getInstance()
//                 .unpack(this);
//     }
// }


// Path: app/src/main/java/eu/codlab/amiiwrite/amiitool/AmiitoolFactory.java
import android.content.Context;
import android.util.Log;
import eu.codlab.amiitool.AmiiTool;
import eu.codlab.amiiwrite.database.models.Amiibo;

package eu.codlab.amiiwrite.amiitool;



/**
 * Created by kevinleperf on 22/04/16.
 */
public class AmiitoolFactory {
    private static AmiitoolFactory _sInstance = new AmiitoolFactory();

    private AmiitoolFactory() {

    }

    public static AmiitoolFactory getInstance() {
        return _sInstance;
    }

    private AmiiTool mAmiitool;

    public void init(Context context) {
        mAmiitool = new AmiiTool(context);
    }

    public byte[] unpack(Amiibo amiibo) {
        byte[] encrypted = amiibo.data.getBlob();
        return unpack(encrypted);
    }

    public byte[] unpack(byte[] encrypted) {
        byte[] decrypted = new byte[encrypted.length];