// Path: logful/src/main/java/com/getui/logful/util/SystemConfig.java
// public class SystemConfig {
// 
//     private String baseUrl;
// 
//     private String aliasName;
// 
//     private String appKeyString;
// 
//     private String appSecretString;
// 
//     private static class ClassHolder {
//         static SystemConfig config = new SystemConfig();
//     }
// 
//     public static SystemConfig config() {
//         return ClassHolder.config;
//     }
// 
//     public static String baseUrl() {
//         SystemConfig config = SystemConfig.config();
//         if (StringUtils.isEmpty(config.baseUrl)) {
//             return LoggerConstants.API_BASE_URL;
//         }
//         return config.baseUrl;
//     }
// 
//     public static String alias() {
//         SystemConfig config = SystemConfig.config();
//         if (StringUtils.isEmpty(config.aliasName)) {
//             return "";
//         }
//         return config.aliasName;
//     }
// 
// 
//     public static String apiUrl(String uri) {
//         return SystemConfig.baseUrl() + uri;
//     }
// 
//     public static String appKey() {
//         SystemConfig config = SystemConfig.config();
//         if (StringUtils.isEmpty(config.appKeyString)) {
//             return "";
//         }
//         return config.appKeyString;
//     }
// 
//     public static String appSecret() {
//         SystemConfig config = SystemConfig.config();
//         if (StringUtils.isEmpty(config.appSecretString)) {
//             return "";
//         }
//         return config.appSecretString;
//     }
// 
//     public static synchronized void saveAlias(String alias) {
//         SystemConfig config = SystemConfig.config();
//         config.aliasName = alias;
//     }
// 
//     public static synchronized void saveBaseUrl(String baseUrl) {
//         SystemConfig config = SystemConfig.config();
//         config.baseUrl = baseUrl;
//     }
// 
//     public static synchronized void saveAppKey(String appKey) {
//         SystemConfig config = SystemConfig.config();
//         config.appKeyString = appKey;
//     }
// 
//     public static synchronized void saveAppSecret(String appSecret) {
//         SystemConfig config = SystemConfig.config();
//         config.appSecretString = appSecret;
//     }
// 
// }
// 
// Path: logful/src/main/java/com/getui/logful/util/UIDUtils.java
// public class UIDUtils {
//     private static final String TAG = "UIDUtils";
// 
//     private static String uid;
//     private static final String UID_DIR = ".LogfulConfig";
// 
//     public static String uid() {
//         Context context = LoggerFactory.context();
//         if (context == null) {
//             return "";
//         }
// 
//         if (!StringUtils.isEmpty(UIDUtils.uid)) {
//             return UIDUtils.uid;
//         }
// 
//         // Read exist uid.
//         String temp = UIDUtils.readUid(context);
//         if (!StringUtils.isEmpty(temp)) {
//             UIDUtils.set(temp);
//             return UIDUtils.uid;
//         }
// 
//         return UIDUtils.randomUid();
//     }
// 
//     private static String generate(String original) {
//         String temp = UUID.nameUUIDFromBytes(original.getBytes()).toString();
//         UIDUtils.saveUid(temp);
//         UIDUtils.set(temp);
//         return UIDUtils.uid;
//     }
// 
//     private static String randomUid() {
//         String temp = UUID.randomUUID().toString();
//         UIDUtils.saveUid(temp);
//         UIDUtils.set(temp);
//         return UIDUtils.uid;
//     }
// 
//     private static void set(String string) {
//         UIDUtils.uid = string.replace("-", "").toLowerCase();
//     }
// 
//     private static void saveUid(String uid) {
//         if (LogStorage.writable()) {
//             File dir = new File(Environment.getExternalStorageDirectory(), UID_DIR);
//             if (!dir.exists()) {
//                 if (dir.mkdirs()) {
//                     UIDUtils.createUidFile(dir.getAbsolutePath(), uid);
//                 }
//             } else if (dir.isDirectory()) {
//                 File[] files = dir.listFiles();
//                 boolean successful = true;
//                 for (File file : files) {
//                     if (!file.delete()) {
//                         successful = false;
//                     }
//                 }
//                 if (successful) {
//                     UIDUtils.createUidFile(dir.getAbsolutePath(), uid);
//                 }
//             } else {
//                 if (dir.delete()) {
//                     if (dir.mkdirs()) {
//                         UIDUtils.createUidFile(dir.getAbsolutePath(), uid);
//                     }
//                 }
//             }
//         }
//     }
// 
//     private static void createUidFile(String dirPath, String uid) {
//         File file = new File(dirPath + '/' + uid);
//         try {
//             boolean successful = file.createNewFile();
//         } catch (IOException e) {
//             LogUtil.e(TAG, "Create uid file failed.");
//         }
//     }
// 
//     @TargetApi(value = 14)
//     private static String readUid(final Context context) {
//         if (context == null) {
//             return "";
//         }
//         if (LogStorage.readable()) {
//             File dir = new File(Environment.getExternalStorageDirectory(), UID_DIR);
//             if (dir.exists() && dir.isDirectory()) {
//                 File[] files = dir.listFiles();
//                 if (files.length == 1) {
//                     String temp = files[0].getName();
//                     try {
//                         if (UUID.fromString(temp).toString().equals(temp)) {
//                             return temp;
//                         }
//                     } catch (Exception e) {
//                         return "";
//                     }
//                 }
//             }
//         }
//         return "";
//     }
// 
// }


import com.getui.logful.util.SystemConfig;
import com.getui.logful.util.UIDUtils;
package com.getui.logful.security;


public class DefaultSecurityProvider implements SecurityProvider {

    private byte[] passwordData;

    private byte[] saltData;

    @Override
    public byte[] password() {
        if (passwordData == null) {
            this.passwordData = SystemConfig.appKey().getBytes();
        }
        return passwordData;
    }

    @Override
    public byte[] salt() {
        if (saltData == null) {
// Path: logful/src/main/java/com/getui/logful/util/SystemConfig.java
// public class SystemConfig {
// 
//     private String baseUrl;
// 
//     private String aliasName;
// 
//     private String appKeyString;
// 
//     private String appSecretString;
// 
//     private static class ClassHolder {
//         static SystemConfig config = new SystemConfig();
//     }
// 
//     public static SystemConfig config() {
//         return ClassHolder.config;
//     }
// 
//     public static String baseUrl() {
//         SystemConfig config = SystemConfig.config();
//         if (StringUtils.isEmpty(config.baseUrl)) {
//             return LoggerConstants.API_BASE_URL;
//         }
//         return config.baseUrl;
//     }
// 
//     public static String alias() {
//         SystemConfig config = SystemConfig.config();
//         if (StringUtils.isEmpty(config.aliasName)) {
//             return "";
//         }
//         return config.aliasName;
//     }
// 
// 
//     public static String apiUrl(String uri) {
//         return SystemConfig.baseUrl() + uri;
//     }
// 
//     public static String appKey() {
//         SystemConfig config = SystemConfig.config();
//         if (StringUtils.isEmpty(config.appKeyString)) {
//             return "";
//         }
//         return config.appKeyString;
//     }
// 
//     public static String appSecret() {
//         SystemConfig config = SystemConfig.config();
//         if (StringUtils.isEmpty(config.appSecretString)) {
//             return "";
//         }
//         return config.appSecretString;
//     }
// 
//     public static synchronized void saveAlias(String alias) {
//         SystemConfig config = SystemConfig.config();
//         config.aliasName = alias;
//     }
// 
//     public static synchronized void saveBaseUrl(String baseUrl) {
//         SystemConfig config = SystemConfig.config();
//         config.baseUrl = baseUrl;
//     }
// 
//     public static synchronized void saveAppKey(String appKey) {
//         SystemConfig config = SystemConfig.config();
//         config.appKeyString = appKey;
//     }
// 
//     public static synchronized void saveAppSecret(String appSecret) {
//         SystemConfig config = SystemConfig.config();
//         config.appSecretString = appSecret;
//     }
// 
// }
// 
// Path: logful/src/main/java/com/getui/logful/util/UIDUtils.java
// public class UIDUtils {
//     private static final String TAG = "UIDUtils";
// 
//     private static String uid;
//     private static final String UID_DIR = ".LogfulConfig";
// 
//     public static String uid() {
//         Context context = LoggerFactory.context();
//         if (context == null) {
//             return "";
//         }
// 
//         if (!StringUtils.isEmpty(UIDUtils.uid)) {
//             return UIDUtils.uid;
//         }
// 
//         // Read exist uid.
//         String temp = UIDUtils.readUid(context);
//         if (!StringUtils.isEmpty(temp)) {
//             UIDUtils.set(temp);
//             return UIDUtils.uid;
//         }
// 
//         return UIDUtils.randomUid();
//     }
// 
//     private static String generate(String original) {
//         String temp = UUID.nameUUIDFromBytes(original.getBytes()).toString();
//         UIDUtils.saveUid(temp);
//         UIDUtils.set(temp);
//         return UIDUtils.uid;
//     }
// 
//     private static String randomUid() {
//         String temp = UUID.randomUUID().toString();
//         UIDUtils.saveUid(temp);
//         UIDUtils.set(temp);
//         return UIDUtils.uid;
//     }
// 
//     private static void set(String string) {
//         UIDUtils.uid = string.replace("-", "").toLowerCase();
//     }
// 
//     private static void saveUid(String uid) {
//         if (LogStorage.writable()) {
//             File dir = new File(Environment.getExternalStorageDirectory(), UID_DIR);
//             if (!dir.exists()) {
//                 if (dir.mkdirs()) {
//                     UIDUtils.createUidFile(dir.getAbsolutePath(), uid);
//                 }
//             } else if (dir.isDirectory()) {
//                 File[] files = dir.listFiles();
//                 boolean successful = true;
//                 for (File file : files) {
//                     if (!file.delete()) {
//                         successful = false;
//                     }
//                 }
//                 if (successful) {
//                     UIDUtils.createUidFile(dir.getAbsolutePath(), uid);
//                 }
//             } else {
//                 if (dir.delete()) {
//                     if (dir.mkdirs()) {
//                         UIDUtils.createUidFile(dir.getAbsolutePath(), uid);
//                     }
//                 }
//             }
//         }
//     }
// 
//     private static void createUidFile(String dirPath, String uid) {
//         File file = new File(dirPath + '/' + uid);
//         try {
//             boolean successful = file.createNewFile();
//         } catch (IOException e) {
//             LogUtil.e(TAG, "Create uid file failed.");
//         }
//     }
// 
//     @TargetApi(value = 14)
//     private static String readUid(final Context context) {
//         if (context == null) {
//             return "";
//         }
//         if (LogStorage.readable()) {
//             File dir = new File(Environment.getExternalStorageDirectory(), UID_DIR);
//             if (dir.exists() && dir.isDirectory()) {
//                 File[] files = dir.listFiles();
//                 if (files.length == 1) {
//                     String temp = files[0].getName();
//                     try {
//                         if (UUID.fromString(temp).toString().equals(temp)) {
//                             return temp;
//                         }
//                     } catch (Exception e) {
//                         return "";
//                     }
//                 }
//             }
//         }
//         return "";
//     }
// 
// }


// Path: logful/src/main/java/com/getui/logful/security/DefaultSecurityProvider.java
import com.getui.logful.util.SystemConfig;
import com.getui.logful.util.UIDUtils;

package com.getui.logful.security;


public class DefaultSecurityProvider implements SecurityProvider {

    private byte[] passwordData;

    private byte[] saltData;

    @Override
    public byte[] password() {
        if (passwordData == null) {
            this.passwordData = SystemConfig.appKey().getBytes();
        }
        return passwordData;
    }

    @Override
    public byte[] salt() {
        if (saltData == null) {
            this.saltData = UIDUtils.uid().getBytes();