commit b5a82a5fd1ae54c22af3dc668097d433184c4356 Author: kizzy Date: Thu Nov 6 01:08:32 2025 +0700 first commit diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/BackPressCallback.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/BackPressCallback.java new file mode 100755 index 0000000..e69dbd1 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/BackPressCallback.java @@ -0,0 +1,6 @@ +package com.utsmyanmar.baselib.util; + +public interface BackPressCallback { + + void onBackPress(); +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/CardDetectCallback.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/CardDetectCallback.java new file mode 100755 index 0000000..d8de80e --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/CardDetectCallback.java @@ -0,0 +1,5 @@ +package com.utsmyanmar.baselib.util; + +public interface CardDetectCallback { + void onComplete(); +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/Config.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/Config.java new file mode 100755 index 0000000..29d6c73 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/Config.java @@ -0,0 +1,35 @@ +package com.utsmyanmar.baselib.util; + +public class Config { + + private boolean IS_SETTING_NEW_INPUT_TYPE = true; + private static final Config instance = new Config(); + + private String hostIP = ""; + + private String hostPort = ""; + + public static Config getInstance() { + return instance; + } + + public boolean IS_SETTING_NEW_INPUT_TYPE() { + return IS_SETTING_NEW_INPUT_TYPE; + } + + public String getHostIP() { + return hostIP; + } + + public String getHostPort() { + return hostPort; + } + + public void setHostIP(String hostIP) { + this.hostIP = hostIP; + } + + public void setHostPort(String hostPort) { + this.hostPort = hostPort; + } +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/DataBindingConfig.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/DataBindingConfig.java new file mode 100755 index 0000000..efa7661 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/DataBindingConfig.java @@ -0,0 +1,49 @@ +package com.utsmyanmar.baselib.util; + +import android.util.SparseArray; + +import androidx.annotation.NonNull; +import androidx.lifecycle.ViewModel; + +public class DataBindingConfig { + + private final int layout; + + private final int vmVariableId; + + private final ViewModel stateViewModel; + + private SparseArray bindingParams = new SparseArray(); + + public DataBindingConfig(@NonNull Integer layout, + @NonNull Integer vmVariableId, + @NonNull ViewModel stateViewModel) { + this.layout = layout; + this.vmVariableId = vmVariableId; + this.stateViewModel = stateViewModel; + } + + public int getLayout() { + return layout; + } + + public int getVmVariableId() { + return vmVariableId; + } + + public ViewModel getStateViewModel() { + return stateViewModel; + } + + public SparseArray getBindingParams() { + return bindingParams; + } + + public DataBindingConfig addBindingParam(@NonNull Integer variableId, + @NonNull Object object) { + if (bindingParams.get(variableId) == null) { + bindingParams.put(variableId, object); + } + return this; + } +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/DelayCaller.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/DelayCaller.java new file mode 100755 index 0000000..706013a --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/DelayCaller.java @@ -0,0 +1,5 @@ +package com.utsmyanmar.baselib.util; + +public interface DelayCaller { + void onCall(); +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/DialogCallback.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/DialogCallback.java new file mode 100755 index 0000000..582e393 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/DialogCallback.java @@ -0,0 +1,8 @@ +package com.utsmyanmar.baselib.util; + +public interface DialogCallback { + + void onClickCancel(); + + void onClickRetry(); +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/NetworkHelpers.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/NetworkHelpers.java new file mode 100755 index 0000000..74e62d9 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/NetworkHelpers.java @@ -0,0 +1,32 @@ +package com.utsmyanmar.baselib.util; + +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; + +import com.utsmyanmar.baselib.BaseApplication; + +public class NetworkHelpers { + + private Context context; + + private static NetworkHelpers INSTANCE; + + public static NetworkHelpers getInstance(){ + if(INSTANCE==null){ + INSTANCE=new NetworkHelpers(); + } + return INSTANCE; + } + + private NetworkHelpers(){ + context= BaseApplication.getInstance().getApplicationContext(); + } + + public boolean isNetworkAvailable() { + ConnectivityManager connectivityManager + = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); + return activeNetworkInfo != null && activeNetworkInfo.isConnected(); + } +} \ No newline at end of file diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/TerminalUtil.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/TerminalUtil.java new file mode 100755 index 0000000..bb0d0d6 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/TerminalUtil.java @@ -0,0 +1,62 @@ +package com.utsmyanmar.baselib.util; + +import android.os.RemoteException; + +import com.sunmi.pay.hardware.aidlv2.system.BasicOptV2; +import com.utsmyanmar.baselib.BaseApplication; +import com.utsmyanmar.paylibs.utils.core_utils.ByteUtil; + +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +import com.utsmyanmar.paylibs.utils.LogUtil; + +public class TerminalUtil { + + private static final String TAG = TerminalUtil.class.getSimpleName(); + private static TerminalUtil app; + + private TerminalUtils terminalUtils; + + BasicOptV2 basicOptV2; + + public static TerminalUtil getInstance(){ + if(app == null){ + app = new TerminalUtil(); + + } + return app; + } + + TerminalUtil(){ + + basicOptV2 = BaseApplication.basicOptV2; + terminalUtils = new TerminalUtilsImpl(); + } + + public void makeBuzzer(int count) throws RemoteException { + basicOptV2.buzzerOnDevice(count,7,3000,1000); + } + + public void shortBuzzer(int count) throws RemoteException { + basicOptV2.buzzerOnDevice(1, 2750, 200, 0); + } + + public void makeBuzzerParam(int count,int frequency,int duration,int interval) throws RemoteException { + basicOptV2.buzzerOnDevice(3,7,2000,1000); + } + + public String generateHashedString(String random) throws NoSuchAlgorithmException { + return terminalUtils.generateHashString(random); + + } + + public String getSerialNo() { + return terminalUtils.getSerialNumber(); + } + + public String generateRandomNumbers() { + return terminalUtils.generateRandom(); + } +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/TerminalUtils.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/TerminalUtils.java new file mode 100755 index 0000000..85ca1bb --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/TerminalUtils.java @@ -0,0 +1,17 @@ +package com.utsmyanmar.baselib.util; + +import com.sunmi.pay.hardware.aidlv2.system.BasicOptV2; + +import java.security.NoSuchAlgorithmException; + +public interface TerminalUtils { + + String generateHashString(String random) throws NoSuchAlgorithmException ; + String generateHashString(String random,BasicOptV2 basicOptV2) throws NoSuchAlgorithmException; + + String generateRandom(); + String getSerialNumber(BasicOptV2 basicOptV2); + + String getSerialNumber(); + +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/TerminalUtilsImpl.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/TerminalUtilsImpl.java new file mode 100755 index 0000000..d354637 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/TerminalUtilsImpl.java @@ -0,0 +1,94 @@ +package com.utsmyanmar.baselib.util; + +import android.os.RemoteException; + +import com.sunmi.pay.hardware.aidlv2.system.BasicOptV2; +import com.utsmyanmar.baselib.BaseApplication; +import com.utsmyanmar.paylibs.utils.core_utils.ByteUtil; + +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Random; + +public class TerminalUtilsImpl implements TerminalUtils{ + + long number = 2485718; + + long sub = 1251151; + +// public static native String getHiddenFromNative(); + +// public static native String getEncryptedFromNative(); + + +// static { +// System.loadLibrary("native-lib"); +// } + + @Override + public String generateHashString(String random) throws NoSuchAlgorithmException { + String sn = getSerialNumber(); + String snPN = BaseApplication.getInstance().getPackageName(); + String nonce = random; + String text = sn + snPN + nonce; +// LogUtil.d(TAG,"Plain Text: "+text); + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] hash = digest.digest(text.getBytes(StandardCharsets.UTF_8)); + + + return ByteUtil.bytes2HexStr(hash); + } + + @Override + public String generateHashString(String random,BasicOptV2 basicOptV2) throws NoSuchAlgorithmException { + String sn = getSerialNumber(basicOptV2); + String snPN = BaseApplication.getInstance().getPackageName(); + String nonce = random; + String text = sn + snPN + nonce; +// LogUtil.d(TAG,"Plain Text: "+text); + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] hash = digest.digest(text.getBytes(StandardCharsets.UTF_8)); + + + return ByteUtil.bytes2HexStr(hash); + } + + @Override + public String generateRandom() { + Random rnd = new Random(); + StringBuilder sb = new StringBuilder((1000000 + rnd.nextInt(9000000))); + return sb.toString(); + } + + @Override + public String getSerialNumber(BasicOptV2 basicOptV2){ + String data = ""; + try { +// data = basicOptV2.getSysParam(getEncryptedFromNative()); + data = basicOptV2.getSysParam("SN"); + } catch (RemoteException e) { + e.printStackTrace(); + } + + return data; + + + } + + @Override + public String getSerialNumber() { + String data = ""; + try { + data = BaseApplication.getInstance().deviceEngine.getDeviceInfo().getSn(); + } catch (Exception e) { + e.printStackTrace(); + } + + return data; + } + + +} + + diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/TimeoutCallback.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/TimeoutCallback.java new file mode 100755 index 0000000..175eea0 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/TimeoutCallback.java @@ -0,0 +1,8 @@ +package com.utsmyanmar.baselib.util; + +public interface TimeoutCallback { + + void onTrick(long trickTime); + + void onFinish(); +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/URLValidator.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/URLValidator.java new file mode 100755 index 0000000..fbddcec --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/URLValidator.java @@ -0,0 +1,18 @@ +package com.utsmyanmar.baselib.util; + +import java.net.MalformedURLException; +import java.net.URL; + +public class URLValidator { + + public static boolean isValidURL(String urlString) + { + try { + new URL(urlString); + return true; + } catch (MalformedURLException e) { + return false; + + } + } +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/enums/EmvPinMode.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/enums/EmvPinMode.java new file mode 100755 index 0000000..c604a4d --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/enums/EmvPinMode.java @@ -0,0 +1,5 @@ +package com.utsmyanmar.baselib.util.enums; + +public enum EmvPinMode { + ONLINE,OFFLINE +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/enums/EmvResultStatus.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/enums/EmvResultStatus.java new file mode 100755 index 0000000..48b44af --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/enums/EmvResultStatus.java @@ -0,0 +1,31 @@ +package com.utsmyanmar.baselib.util.enums; + +public enum EmvResultStatus { + SELECT_APP, + READ_CARD, + PIN_PAD_CANCEL, + PIN_PAD_CONFIRM, + PIN_PAD_ERROR, + READ_CARD_NO_APP, + READ_CARD_RETRY, + PIN_MISMATCH, + CLICK_CONFIRM, + SUCCESS, + BATCH_UPLOAD, + SUCCESS_ONLINE, + FAIL, + FAIL_ONLINE, + REVERSAL_PROCESS, + REVERSAL_FAIL, + REVERSAL_SUCCESS, + REVERSAL_SECONDARY, + ERROR, + NETWORK_ERROR, + TRY_AGAIN, + SECONDARY, + ON_NEXT_SCREEN, + OFFLINE_APPROVE, + OFFLINE_DECLINE, + + CONFIRM_CODE_VERIFY +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/enums/PinUtil.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/enums/PinUtil.java new file mode 100755 index 0000000..d3c59e0 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/enums/PinUtil.java @@ -0,0 +1,7 @@ +package com.utsmyanmar.baselib.util.enums; + +public enum PinUtil { + OLD_PIN, + NEW_PIN, + CONFIRM_PIN +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/ProcessDataResult.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/ProcessDataResult.java new file mode 100755 index 0000000..0342d79 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/ProcessDataResult.java @@ -0,0 +1,7 @@ +package com.utsmyanmar.baselib.util.rx_helper; + +import java.util.List; + +public interface ProcessDataResult { + void onSuccess(List lists); +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/ProcessSingleDataResult.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/ProcessSingleDataResult.java new file mode 100755 index 0000000..bff1fd9 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/ProcessSingleDataResult.java @@ -0,0 +1,10 @@ +package com.utsmyanmar.baselib.util.rx_helper; + +import android.os.RemoteException; + +public interface ProcessSingleDataResult { + + void onSuccess(T data); + + void onDataNotFound(); +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxCallbackUpdateX.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxCallbackUpdateX.java new file mode 100755 index 0000000..f9c41fd --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxCallbackUpdateX.java @@ -0,0 +1,12 @@ +package com.utsmyanmar.baselib.util.rx_helper; + +import io.reactivex.rxjava3.disposables.Disposable; + +public interface RxCallbackUpdateX +{ + + + void onError(Throwable throwable); + void onComplete(); + +} \ No newline at end of file diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxCallbackX.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxCallbackX.java new file mode 100755 index 0000000..5379fc1 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxCallbackX.java @@ -0,0 +1,13 @@ +package com.utsmyanmar.baselib.util.rx_helper; + +import android.os.RemoteException; + +import com.utsmyanmar.baselib.db.model.ContactlessAid; + +public interface RxCallbackX { + + void onSuccess(T data ) throws RemoteException; + void onError(Throwable throwable); + void onComplete(); + +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxHelper.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxHelper.java new file mode 100755 index 0000000..b3d35c5 --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxHelper.java @@ -0,0 +1,20 @@ +package com.utsmyanmar.baselib.util.rx_helper; + +import java.util.List; + +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.core.Observable; + +public interface RxHelper { + + void queryData(Maybe> observable, RxCallbackX> callbackX); + + void updateData(Completable completable,RxCallbackUpdateX callbackX); + + void querySingleData(Maybe observable, RxCallbackX callbackX); + + void observableData(Observable observable, RxCallbackX callbackX); + + void dispose(); +} diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxUtil.java b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxUtil.java new file mode 100755 index 0000000..47a973c --- /dev/null +++ b/baselib/src/main/java/com/utsmyanmar/baselib/util/rx_helper/RxUtil.java @@ -0,0 +1,92 @@ +package com.utsmyanmar.baselib.util.rx_helper; + +import com.utsmyanmar.baselib.db.model.ContactlessAid; +import com.utsmyanmar.paylibs.model.PayDetail; + +import java.util.List; + +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.CompletableObserver; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.core.MaybeObserver; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.schedulers.Schedulers; + +public class RxUtil implements RxHelper { + + private final CompositeDisposable compositeDisposable = new CompositeDisposable(); + @Override + public void queryData(Maybe> observable,RxCallbackX> callbackX) { + compositeDisposable.add( + observable.subscribeOn(Schedulers.io()) + .observeOn(Schedulers.io()) + .subscribe( + callbackX::onSuccess, + callbackX::onError, + callbackX::onComplete + ) + ); + } + + @Override + public void updateData(Completable completable, RxCallbackUpdateX callbackX) { + + completable.subscribeOn(Schedulers.io()) + .observeOn(Schedulers.io()) + .subscribe(new CompletableObserver() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onComplete() { + callbackX.onComplete(); + } + + @Override + public void onError(@NonNull Throwable e) { + callbackX.onError(e); + } + } + + ); + + } + + @Override + public void querySingleData(Maybe observable, RxCallbackX callbackX) { + compositeDisposable.add( + observable.subscribeOn(Schedulers.io()) + .observeOn(Schedulers.io()) + .subscribe( + callbackX::onSuccess, + callbackX::onError, + callbackX::onComplete + ) + ); + } + + @Override + public void observableData(Observable observable, RxCallbackX callbackX) { + compositeDisposable.add( + observable.subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + callbackX::onSuccess, + callbackX::onError, + callbackX::onComplete + ) + ); + } + + + @Override + public void dispose() { + compositeDisposable.dispose(); + } +} diff --git a/baselib/src/main/res/raw/certi.crt b/baselib/src/main/res/raw/certi.crt new file mode 100644 index 0000000..424b4bf --- /dev/null +++ b/baselib/src/main/res/raw/certi.crt @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEITCCAwmgAwIBAgIUIp2h0WlGDCC6xqBayKEA2OfzMGAwDQYJKoZIhvcNAQEL +BQAwgZ4xCzAJBgNVBAYTAk1NMQ4wDAYDVQQIDAVCdXJtYTERMA8GA1UEBwwITWFu +ZGFsYXkxEzARBgNVBAoMClVBVF9LQlpQYXkxGjAYBgNVBAsMEVVBVF9LQlpQYXlf +UEdXX0NBMRcwFQYDVQQDDA5hcGkua2J6cGF5LmNvbTEiMCAGCSqGSIb3DQEJARYT +amlhbmdiaW5AaHVhd2VpLmNvbTAgFw0xOTA2MTcwMTE3MzNaGA8zMDE4MTAxODAx +MTczM1owgZ4xCzAJBgNVBAYTAk1NMQ4wDAYDVQQIDAVCdXJtYTERMA8GA1UEBwwI +TWFuZGFsYXkxEzARBgNVBAoMClVBVF9LQlpQYXkxGjAYBgNVBAsMEVVBVF9LQlpQ +YXlfUEdXX0NBMRcwFQYDVQQDDA5hcGkua2J6cGF5LmNvbTEiMCAGCSqGSIb3DQEJ +ARYTamlhbmdiaW5AaHVhd2VpLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALCnpBEIKANGLSbYNajzAJ4Xc7H7XJF4erFdTR/iC1cXDenDwqIeEYpm +07jXhaPkwaQpNKO8vYkHFzY6zHO21TyswS1DowsDModnXCu8tG1mpY8p6w1wzTPI +3ccq7XYQiTmx0/9pMcuuJ/7uWA0/nFIDEpc8M0ra7tZDUgJA4nYnkryz35SwlctD +Pcb+XdKxpVOL0BnEkrT5lov+V0yOT/MTJnCEMECiR0Ggr632SPu4DovtHEpWVltq +aDqFu78KVMs3h9VfT7DUCwrXlbewD2Q3bMdsG41EPH1Wki28Sq+4lQ6EMZ7QQPbk +lOxW4J2Zq/ZCX7kaQsUOeSg81dGpMfsCAwEAAaNTMFEwHQYDVR0OBBYEFG0LxFC8 +DdLu2rB8PY6xxQZHOFrXMB8GA1UdIwQYMBaAFG0LxFC8DdLu2rB8PY6xxQZHOFrX +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAGDeGS0KCugqVQK8 +SQdK1FRRqQ94ObjTx38Da02g57gVnF2gAZLn8eCisq4bksR9B+Aya+gLZylUGFK9 +e2TCN1XVEDnyM4+qhs8XdKLsV0iVDMq+Hrsy1l4036Hhcy5XWH4SNN0fUrYXuaUw +zw1vHmv9IitYjRwZ13IpckbtwXOIj2bVUfN6OMnDQdcoNmXlYQsjaNZcfG/9rYV/ +Ob2ynG4yXnEsz9qRhE8V7i2mSR28eBffYVWYI822N6TDeqjRrztTlNMqRBosEzfQ +Igjm6XL31RJEJfnUCLOU2HLIMdBwsYFVoxwgFLr9THbK6IlKcag1/UvfjJP8pPn9 +jM4M6IA= +-----END CERTIFICATE----- diff --git a/baselib/src/main/res/raw/client.pkcs12 b/baselib/src/main/res/raw/client.pkcs12 new file mode 100644 index 0000000..e331c18 Binary files /dev/null and b/baselib/src/main/res/raw/client.pkcs12 differ