Skip to content

Commit c5ab501

Browse files
committed
rename everything
1 parent 174032a commit c5ab501

File tree

12 files changed

+425
-381
lines changed

12 files changed

+425
-381
lines changed

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 67 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# Conceal SharedPreferences Android
1+
# SharedChamber Android
22
[![](https://jitpack.io/v/afiqiqmal/ConcealSharedPreference-Android.svg)](https://jitpack.io/#afiqiqmal/ConcealSharedPreference-Android) [![API](https://img.shields.io/badge/API-16%2B-blue.svg?style=flat)](https://android-arsenal.com/api?level=16) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-ConcealSharedPreference--Android-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/5448)
33

4-
<b>Project :</b> Secure Android SharedPreferences Using Conceal Crypto by Facebook<br>
4+
<b>Project :</b> SharedChamber on top of SharedPreferences using [Facebook Conceal](http://facebook.github.io/conceal/)<br>
55
<b>Description </b>
66
<br>
77
Conceal provides a set of Java APIs to perform cryptography on Android. It was designed to be able to encrypt large files on disk in a fast and memory efficient manner. Implementation on SharedPreferences of Android would be great data Encryption and Decryption. Currently supported Facebook Conceal V2.0
@@ -11,11 +11,11 @@ Conceal provides a set of Java APIs to perform cryptography on Android. It was d
1111
Gradle
1212
```gradle
1313
dependencies {
14-
compile 'com.github.afiqiqmal:ConcealSharedPreference-Android:1.5.5'
14+
compile 'com.github.afiqiqmal:SharedChamber:2.0.0'
1515
1616
//or
1717
18-
compile 'com.github.afiqiqmal:ConcealSharedPreference-Android:1.5.5' {
18+
compile 'com.github.afiqiqmal:SharedChamber:2.0.0' {
1919
exclude group: 'com.google.code.gson', module: 'gson'
2020
}
2121
}
@@ -25,42 +25,38 @@ Maven
2525
```maven
2626
<dependency>
2727
<groupId>com.github.afiqiqmal</groupId>
28-
<artifactId>ConcealSharedPreference-Android</artifactId>
29-
<version>1.5.2</version>
28+
<artifactId>SharedChamber</artifactId>
29+
<version>2.0.0</version>
3030
</dependency>
3131
```
3232

33-
## Method
34-
35-
[![](http://image.ibb.co/cQpGZb/Screen_Shot_2017_12_01_at_7_31_42_PM.png)]()
36-
3733
## Usage
3834

3935
#### First of All
4036

4137
it needed to first init in Application class in `oncreate` method or on Base Activity Class. or everything is not working =D
4238
```java
43-
ConcealPrefRepository.applicationInit(this);
39+
SharedChamber.initChamber(this);
4440
```
4541

4642

47-
Permission need to use in your project. Please Allow it first, or it will affect `.putImage` and `.putFile` method
43+
Permission need to use in your project. Please Allow it first if you need to use file save, or it will affect `.putImage` and `.putFile` method
4844
```xml
4945
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
5046
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
5147
```
5248

5349
##### Initialize
5450
```java
55-
ConcealPrefRepository concealPrefRepository = new ConcealPrefRepository.PreferencesBuilder(this)
51+
SharedChamber sharedChamber = new SharedChamber.ChamberBuilder(this)
5652
//.useThisPrefStorage("Android_Prefs")
57-
.sharedPrefsBackedKeyChain(CryptoType.KEY_256) //CryptoType.KEY_256 or CryptoType.KEY_128
53+
.setChamberType(ChamberType.KEY_256) //ChamberType.KEY_256 or ChamberType.KEY_128
5854
.enableCrypto(true,true) //param 1 - enable value encryption , param 2 - enable key encryption
5955
.enableKeyPrefix(true, "walaoweh") //1- if false, prefix will be ignore
60-
.createPassword("Android") //default value - BuildConfig.APPLICATION_ID
56+
.setPassword("Android") //default value - BuildConfig.APPLICATION_ID
6157
.setFolderName("testing") //create Folder for data stored: default is - "conceal_path"
6258
.setPrefListener(this) // listen to data changes
63-
.create();
59+
.buildChamber();
6460

6561
*setFolderName - folder will be hidden. To see, enable show hidden folder in storage
6662
- data stored here only images and files
@@ -74,19 +70,19 @@ ConcealPrefRepository concealPrefRepository = new ConcealPrefRepository.Preferen
7470
##### Save data
7571

7672
```java
77-
concealPrefRepository.put(KEY,"Hello");
78-
concealPrefRepository.put(KEY,1000000);
79-
concealPrefRepository.put(KEY,100.00);
80-
concealPrefRepository.put(KEY,new byte[]);
81-
concealPrefRepository.put(KEY,new Map<String,String>());
73+
sharedChamber.put(KEY,"Hello");
74+
sharedChamber.put(KEY,1000000);
75+
sharedChamber.put(KEY,100.00);
76+
sharedChamber.put(KEY,new byte[]);
77+
sharedChamber.put(KEY,new Map<String,String>());
8278
...
8379
...
8480
```
8581

8682
for complex object might need use `putModel` which use gson
8783
```
88-
concealPrefRepository.putModel(KEY, new Gson().fromJson(loadJSONFromAsset(context, "users.json"), User.class));
89-
concealPrefRepository.putModel(KEY, new Gson().fromJson(loadJSONFromAsset(context, "users.json"), new TypeToken<ArrayList<Users>>(){}.getType()));
84+
sharedChamber.putModel(KEY, new Gson().fromJson(loadJSONFromAsset(context, "users.json"), User.class));
85+
sharedChamber.putModel(KEY, new Gson().fromJson(loadJSONFromAsset(context, "users.json"), new TypeToken<ArrayList<Users>>(){}.getType()));
9086
```
9187

9288

@@ -95,20 +91,20 @@ Files and Images
9591
// Files and Images will be encrypted
9692
// prefix of this encrypted images and files start with "conceal_enc_";
9793
File getFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/testing.pdf");
98-
concealPrefRepository.putFile(KEY,getFile,boolean deleteOldFiles);
94+
sharedChamber.putFile(KEY,getFile,boolean deleteOldFiles);
9995
// deleteOldFiles - true or false.. true - will delete choosen file and move to new path
10096
10197
//put images
102-
concealPrefRepository.put(KEY, BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
103-
concealPrefRepository.put(KEY, File file);
104-
concealPrefRepository.putDrawable(KEY, Drawable ID);
98+
sharedChamber.put(KEY, BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
99+
sharedChamber.put(KEY, File file);
100+
sharedChamber.putDrawable(KEY, Drawable ID);
105101
...
106102
...
107103
```
108104

109105
##### <b>For Method Chaining</b>
110106
```java
111-
new ConcealPrefRepository.Editor("PREFIX") // optional - get default from global prefix
107+
new SharedChamber.Editor("PREFIX") // optional - get default from global prefix
112108
.put(KEY,"Hello")
113109
.put(KEY,1000000)
114110
.put(KEY,true)
@@ -126,69 +122,69 @@ new ConcealPrefRepository.Editor("PREFIX") // optional - get default from global
126122

127123
##### <b>Get total data</b>
128124
```java
129-
System.out.println(concealPrefRepository.getPrefsSize());
125+
System.out.println(sharedChamber.getPrefsSize());
130126
```
131127

132128
##### <b>Get all sharedpreferences data</b>
133129
```java
134-
Map<String,String> getAll = concealPrefRepository.getAllSharedPrefData();
130+
Map<String,String> getAll = sharedChamber.getEverythingInChamberInMap();
135131
```
136132

137133
##### <b>Get all sharedpreferences data in List String</b>
138134
```java
139-
List<String> getAll = concealPrefRepository.getAllSharedPrefDataToString();
135+
List<String> getAll = sharedChamber.getEverythingInChamberInList();
140136
```
141137

142138
##### <b>Get all encrypted Files inside created folder</b>
143139
```java
144-
List<CryptoFile> getFiles = concealPrefRepository.getAllConcealEncryptedFiles();
140+
List<CryptoFile> getFiles = sharedChamber.getAllChamberFiles();
145141
```
146142

147143
##### <b>Fetching data</b>
148144

149145
```java
150-
concealPrefRepository.getString(KEY);
151-
concealPrefRepository.getString(KEY,DEFAULT_VALUE);
152-
concealPrefRepository.getInt(KEY);
153-
concealPrefRepository.getInt(KEY,DEFAULT_VALUE);
154-
concealPrefRepository.getDouble(KEY);
155-
concealPrefRepository.getDouble(KEY,DEFAULT_VALUE);
146+
sharedChamber.getString(KEY);
147+
sharedChamber.getString(KEY,DEFAULT_VALUE);
148+
sharedChamber.getInt(KEY);
149+
sharedChamber.getInt(KEY,DEFAULT_VALUE);
150+
sharedChamber.getDouble(KEY);
151+
sharedChamber.getDouble(KEY,DEFAULT_VALUE);
156152

157153
//using gson
158-
concealPrefRepository.getModel(KEY, User.class).toString();
159-
concealPrefRepository.getModel(KEY, new TypeToken<ArrayList<Task>>(){}.getType()).toString();
154+
sharedChamber.getModel(KEY, User.class).toString();
155+
sharedChamber.getModel(KEY, new TypeToken<ArrayList<Task>>(){}.getType()).toString();
160156
.....
161157

162-
Bitmap bitmap = concealPrefRepository.getImage(KEY); //return String path
163-
File enc_file = concealPrefRepository.getFile(KEY,true); //return File
158+
Bitmap bitmap = sharedChamber.getImage(KEY); //return String path
159+
File enc_file = sharedChamber.getFile(KEY,true); //return File
164160
// this getImage and getFile will totally decrypted selected file/image. You need to encrypt it back.
165-
// just call concealPrefRepository.putImage(KEY,bitmap); or concealPrefRepository.putFile(KEY,enc_file,true);
161+
// just call sharedChamber.putImage(KEY,bitmap); or sharedChamber.putFile(KEY,enc_file,true);
166162
........
167163
```
168164

169165
##### <b>Clear key and SharedPreferences</b>
170166

171167
```java
172-
concealPrefRepository.destroyCrypto(); //clear key
173-
concealPrefRepository.destroySharedPreferences(); // clear all
168+
sharedChamber.destroyChamber(); //clear key
169+
sharedChamber.clearChamber(); // clear all
174170

175-
concealPrefRepository.remove(KEY1,KEY2,KEY3,KEY4) //String... keys
176-
concealPrefRepository.removeFile(KEY); //delete assosiate file (images and files) return boolean
171+
sharedChamber.remove(KEY1,KEY2,KEY3,KEY4) //String... keys
172+
sharedChamber.removeFile(KEY); //delete assosiate file (images and files) return boolean
177173
```
178174

179175
##### <b>Check if key exists</b>
180176
```java
181-
concealPrefRepository.contains(KEY); // return boolean
177+
sharedChamber.contains(KEY); // return boolean
182178
```
183179

184180
##### <b>Get SharedPreferences</b>
185181
```java
186-
concealPrefRepository.getPreferences();
182+
sharedChamber.getChamber();
187183
```
188184

189185
##### <b>Listener Data Changes</b>
190186
```java
191-
public class BaseActivity extends AppCompatActivity implements OnDataChangeListener{
187+
public class BaseActivity extends AppCompatActivity implements OnDataChamberChangeListener{
192188
....
193189
@Override
194190
public void onDataChange(String key,String value) {
@@ -199,7 +195,7 @@ public class BaseActivity extends AppCompatActivity implements OnDataChangeListe
199195

200196
##### <b>Easier Save User Detail Preferences</b>
201197
```java
202-
new ConcealPrefRepository.UserPref()
198+
new SharedChamber.UserChamber()
203199
.setFirstName("Firstname")
204200
.setLastName("Lasname")
205201
.setEmail("[email protected]")
@@ -210,72 +206,63 @@ new ConcealPrefRepository.UserPref()
210206
or
211207

212208
```java
213-
ConcealPrefRepository.UserPref().applyFirstName("Firstname"); //directly apply
214-
ConcealPrefRepository.UserPref().applyLastName("Firstname"); //directly apply
209+
SharedChamber.UserChamber().applyFirstName("Firstname"); //directly apply
210+
SharedChamber.UserChamber().applyLastName("Firstname"); //directly apply
215211
```
216212

217213
##### <b>Get User Detail</b>
218214
```java
219-
new ConcealPrefRepository.UserPref().getFirstName()
220-
new ConcealPrefRepository.UserPref().getLastName()
221-
new ConcealPrefRepository.UserPref().getEmail()
215+
new SharedChamber.UserChamber().getFirstName()
216+
new SharedChamber.UserChamber().getLastName()
217+
new SharedChamber.UserChamber().getEmail()
222218
.....
223219
```
224220

225221
##### <b>Key prefix - Apply key with prefix</b>
226222
```java
227-
new ConcealPrefRepository.UserPref("KEY PREFIX").setFirstName("Firstname").apply();
228-
new ConcealPrefRepository.UserPref("KEY PREFIX").setLastName("Firstname").apply();
223+
new SharedChamber.UserChamber("KEY PREFIX").setFirstName("Firstname").apply();
224+
new SharedChamber.UserChamber("KEY PREFIX").setLastName("Firstname").apply();
229225
```
230226

231227

232228
### Extra Usage for Conceal Encryption and Decryption
233229

234230
```java
235-
ConcealCrypto concealCrypto = new ConcealCrypto(this,CryptoType.KEY_256); // CryptoType.KEY_256 or CryptoType.KEY_128
236-
concealCrypto.setEnableValueEncryption(true); //default true
237-
concealCrypto.setEnableKeyEncryption(true); //default true
238-
concealCrypto.setmEntityPassword("Android");
239-
concealCrypto.setmEntityPassword(Entity.create("Android"));
240-
```
241-
242-
OR
243-
```java
244-
ConcealCrypto concealCrypto = new ConcealCrypto.CryptoBuilder(this)
231+
SecretChamber secretChamber = new SecretBuilder(this)
245232
.setEnableValueEncryption(true) //default true
246233
.setEnableKeyEncryption(true) // default true
247-
.setKeyChain(CryptoType.KEY_256) // CryptoType.KEY_256 or CryptoType.KEY_128
248-
.createPassword("Mac OSX")
249-
.create();
234+
.setChamberType(ChamberType.KEY_256) // ChamberType.KEY_256 or ChamberType.KEY_128
235+
.setPassword("Mac OSX")
236+
.buildSecret();
250237
```
251238

252239
##### Hash
253240

254241
```
255-
concealCrypto.hashKey(plaintext); // SHA-256
242+
secretChamber.vaultHash(plaintext); // SHA-256
256243
```
257244

258245
##### Encrypt
259246

260247
```
261-
concealCrypto.obscure(test); // encrypt using facebook conceal
262-
concealCrypto.obscureWithIteration(test,4); // encrypt using basic base64 with iteration
263-
concealCrypto.aesEncrypt("Hello World is World Hello Aes Cryption"); // encrypt using AES
248+
secretChamber.lockVault(test); // encrypt using facebook conceal
249+
secretChamber.lockVaultBase(test,4); // encrypt using basic base64 with iteration
250+
secretChamber.lockVaultAes("Hello World is World Hello Aes Cryption"); // encrypt using AES
264251
265252
//1-parameter is original location of file..it will move to other location set as in initialization
266-
concealCrypto.obscureFile(File file,boolean deleteOldFile);
253+
secretChamber.lockVaultFile(File file,boolean deleteOldFile);
267254
268255
```
269256

270257

271258
##### Decrypt
272259

273260
```
274-
concealCrypto.deObscure(cipher); // decrypt using facebook conceal
275-
concealCrypto.deObscureWithIteration(cipher,4); // decrypt using basic base64 with iteration
276-
concealCrypto.aesDecrypt(cipher); // decrypt using AES
261+
secretChamber.openVault(cipher); // decrypt using facebook conceal
262+
secretChamber.openVaultBase(cipher,4); // decrypt using basic base64 with iteration
263+
secretChamber.openVaultAes(cipher); // decrypt using AES
277264
278-
concealCrypto.deObscureFile(File file,boolean deleteOldFile);
265+
secretChamber.openVaultFile(File file,boolean deleteOldFile);
279266
```
280267

281268

app/src/main/java/com/zeroone/concealexample/BaseActivity.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,29 @@
55
import android.support.v7.app.AppCompatActivity;
66
import android.util.Log;
77

8-
import com.zeroone.conceal.ConcealPrefRepository;
9-
import com.zeroone.conceal.listener.OnDataChangeListener;
10-
import com.zeroone.conceal.model.CryptoType;
8+
import com.zeroone.conceal.SharedChamber;
9+
import com.zeroone.conceal.listener.OnDataChamberChangeListener;
10+
import com.zeroone.conceal.model.ChamberType;
1111

1212
/**
1313
* @author : hafiq on 27/03/2017.
1414
*/
1515

16-
public class BaseActivity extends AppCompatActivity implements OnDataChangeListener {
16+
public class BaseActivity extends AppCompatActivity implements OnDataChamberChangeListener {
1717

18-
ConcealPrefRepository concealPrefRepository;
18+
SharedChamber chamber;
1919

2020
@Override
2121
protected void onCreate(@Nullable Bundle savedInstanceState) {
2222
super.onCreate(savedInstanceState);
2323

24-
concealPrefRepository = new ConcealPrefRepository.PreferencesBuilder(this)
25-
.sharedPrefsBackedKeyChain(CryptoType.KEY_256)
24+
chamber = new SharedChamber.ChamberBuilder(this)
25+
.setChamberType(ChamberType.KEY_256)
2626
.enableCrypto(true,true)
2727
.enableKeyPrefix(true,"walaoweh")
28-
.createPassword("Password@123")
28+
.setPassword("Password@123")
2929
.setPrefListener(this)
30-
.create();
30+
.buildChamber();
3131
}
3232

3333
@Override

0 commit comments

Comments
 (0)