From 087290f4461dcb1a895ec975484b3fe1871b45ea Mon Sep 17 00:00:00 2001 From: aw4y Date: Thu, 21 Apr 2016 15:50:42 +0100 Subject: [PATCH] first commit --- .gitignore | 9 + README.md | 109 +++++++ app/.gitignore | 1 + app/build.gradle | 31 ++ app/proguard-rules.pro | 17 ++ .../waspdbexample/ApplicationTest.java | 13 + app/src/main/AndroidManifest.xml | 21 ++ .../waspdbexample/MainActivity.java | 120 ++++++++ .../net/rehacktive/waspdbexample/User.java | 44 +++ .../rehacktive/waspdbexample/UserAdapter.java | 73 +++++ app/src/main/res/layout/activity_main.xml | 18 ++ app/src/main/res/layout/row_user.xml | 13 + app/src/main/res/menu/menu_main.xml | 8 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes app/src/main/res/values-w820dp/dimens.xml | 6 + app/src/main/res/values/dimens.xml | 5 + app/src/main/res/values/strings.xml | 6 + app/src/main/res/values/styles.xml | 8 + build.gradle | 18 ++ gradle.properties | 18 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 164 ++++++++++ gradlew.bat | 90 ++++++ images/hypercube.png | Bin 0 -> 10299 bytes images/wasp_comparison.png | Bin 0 -> 109299 bytes settings.gradle | 1 + waspdb/.gitignore | 1 + waspdb/build.gradle | 60 ++++ waspdb/libs/commons-io-2.4.jar | Bin 0 -> 181060 bytes waspdb/proguard-rules.pro | 17 ++ .../java/net/rehacktive/waspdb/MainTest.java | 175 +++++++++++ .../java/net/rehacktive/waspdb/User.java | 68 +++++ .../waspdb/UserWithNestedContent.java | 96 ++++++ waspdb/src/main/AndroidManifest.xml | 8 + .../java/net/rehacktive/waspdb/WaspDb.java | 190 ++++++++++++ .../net/rehacktive/waspdb/WaspFactory.java | 178 +++++++++++ .../java/net/rehacktive/waspdb/WaspHash.java | 162 ++++++++++ .../net/rehacktive/waspdb/WaspListener.java | 16 + .../net/rehacktive/waspdb/WaspObservable.java | 40 +++ .../net/rehacktive/waspdb/WaspObserver.java | 9 + .../internals/collision/CollisionHash.java | 281 ++++++++++++++++++ .../internals/collision/KryoStoreUtils.java | 96 ++++++ .../exceptions/KeyAlreadyExistsException.java | 9 + .../exceptions/KeyNotFoundException.java | 9 + .../internals/cryptolayer/AESSerializer.java | 51 ++++ .../internals/cryptolayer/CipherManager.java | 70 +++++ .../waspdb/internals/utils/Salt.java | 20 ++ .../waspdb/internals/utils/Utils.java | 77 +++++ waspdb/src/main/res/values/strings.xml | 3 + 53 files changed, 2435 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/net/rehacktive/waspdbexample/ApplicationTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/net/rehacktive/waspdbexample/MainActivity.java create mode 100644 app/src/main/java/net/rehacktive/waspdbexample/User.java create mode 100644 app/src/main/java/net/rehacktive/waspdbexample/UserAdapter.java create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/row_user.xml create mode 100644 app/src/main/res/menu/menu_main.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/values-w820dp/dimens.xml create mode 100644 app/src/main/res/values/dimens.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 images/hypercube.png create mode 100644 images/wasp_comparison.png create mode 100644 settings.gradle create mode 100644 waspdb/.gitignore create mode 100644 waspdb/build.gradle create mode 100644 waspdb/libs/commons-io-2.4.jar create mode 100644 waspdb/proguard-rules.pro create mode 100644 waspdb/src/androidTest/java/net/rehacktive/waspdb/MainTest.java create mode 100644 waspdb/src/androidTest/java/net/rehacktive/waspdb/User.java create mode 100644 waspdb/src/androidTest/java/net/rehacktive/waspdb/UserWithNestedContent.java create mode 100644 waspdb/src/main/AndroidManifest.xml create mode 100755 waspdb/src/main/java/net/rehacktive/waspdb/WaspDb.java create mode 100755 waspdb/src/main/java/net/rehacktive/waspdb/WaspFactory.java create mode 100755 waspdb/src/main/java/net/rehacktive/waspdb/WaspHash.java create mode 100644 waspdb/src/main/java/net/rehacktive/waspdb/WaspListener.java create mode 100644 waspdb/src/main/java/net/rehacktive/waspdb/WaspObservable.java create mode 100644 waspdb/src/main/java/net/rehacktive/waspdb/WaspObserver.java create mode 100755 waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/CollisionHash.java create mode 100755 waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/KryoStoreUtils.java create mode 100755 waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/exceptions/KeyAlreadyExistsException.java create mode 100755 waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/exceptions/KeyNotFoundException.java create mode 100755 waspdb/src/main/java/net/rehacktive/waspdb/internals/cryptolayer/AESSerializer.java create mode 100644 waspdb/src/main/java/net/rehacktive/waspdb/internals/cryptolayer/CipherManager.java create mode 100644 waspdb/src/main/java/net/rehacktive/waspdb/internals/utils/Salt.java create mode 100755 waspdb/src/main/java/net/rehacktive/waspdb/internals/utils/Utils.java create mode 100644 waspdb/src/main/res/values/strings.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3b0db11 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +/.idea +/.idea/* +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build diff --git a/README.md b/README.md new file mode 100644 index 0000000..893c562 --- /dev/null +++ b/README.md @@ -0,0 +1,109 @@ +![image](/images/hypercube.png =100x) +#WaspDb +WaspDB is a pure Java key/value (NoSQL) database library for Android. It supports AES256 encryption for all the disk storage. It's very small (the aar file is ~189 KB). + +Keys and Values are simple Java Objects. Everything is automatically serialized using the [Kryo]() serialization library. + +Data is stored by an implementation of hashmaps on disk. + + +###QuickStart + +To use it with gradle + + dependencies { + compile 'REPLACEME' + } + +Let's assume a POJO (even with nested object, like Address): + + class User { + private String username; + private String email; + private String telephone; + private Address address; + + public User() { + } + + // getters and setters... + } + +No need to be Serializable or Parcelable or annotations or extending/implementing from other classes/interfaces, the only important thing is to have an **empty constructor**. + +**Create a database, a WaspHash and store a POJO** + + // create a database, using the default files dir as path, database name and a password + String path = getFilesDir().getPath(); + String databaseName = "myDb"; + String password = "passw0rd"; + + WaspDb db = WaspFactory.openOrCreateDatabase(path,databaseName,password); + + // now create an WaspHash, it's like a sql table + WaspHash users = db.openOrCreateHash("users"); + + // now let's have a POJO + User p = new User(); + ... // do your stuff with your POJO! + + // and simply store it! + users.put(p.getUsername(), p); + + +**To retrieve it**, it's just + + User p = users.get("username1"); + +**Need all your objects?** + + List allUsers = users.getAllValues(); + +It returns all the users, in a standard java List. + +Or you can **get all the keys** used + + List keys = users.getAllKeys(); + +or the actual **key/value map** (it's again a standard java class) + + HashMap usersMap = users.getAllData(); + +Please note that the process of creating an encrypted database is computationally expensive (10000 iterations to create the AES256 key), so also an async method is available: + + WaspFactory.openOrCreateDatabase(path, databaseName, password, new WaspListener() { + @Override + public void onDone(WaspDb waspDb) { + .... + } + }); + + +###Why WaspDb +I **hate** to store objects on sqlite! It's a lot of boiler code...for what? +Okay, let's say in the polite way :) + + The object-relational impedance mismatch is a set of conceptual and technical difficulties that are often encountered when a relational database management system (RDBMS) is being used by a program written in an object-oriented programming language or style; particularly when objects or class definitions are mapped in a straightforward way to database tables or relational schema. +(from wikipedia [https://en.wikipedia.org/wiki/Object-relational_impedance_mismatch](https://en.wikipedia.org/wiki/Object-relational_impedance_mismatch)) + +###What WaspDb is NOT +This is not a SQL database. It does not have a relational data model, it does not support SQL queries, and it provides no support for indexes, nor transactions. + +###Features +- it's pure java, it's standalone, no native stuff, it's not an ORM to SqlLite! + +- the database addresses up to 4294967296 keys for WaspHash...enough? :) + +###Limitations +- it's NOT transactional. So if you wanna store 10000, it will make 10000 actual write operations to disk in sequence. That means it will be slower (in this case) compared to transactional databases. (of course, if you store 100 items as a java List - so actually a single object - it will make a single(ish) write operation) + + +###Performances + +I've used this project [https://github.com/Raizlabs/AndroidDatabaseLibraryComparison](https://github.com/Raizlabs/AndroidDatabaseLibraryComparison) to make some benchmarking. + +This is the "simple trial" (storing 50 objects) on a Nexus 5, using WaspDb's encryption feature: + +![image](/images/wasp_comparison.png =800x) + +It's even faster if you don't need encryption. diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..ec0a61d --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,31 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 22 + buildToolsVersion "21.1.2" + + defaultConfig { + applicationId "net.rehacktive.waspdbexample" + minSdkVersion 14 + targetSdkVersion 22 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + + lintOptions { + abortOnError false + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'com.android.support:appcompat-v7:22.0.0' + compile project(':waspdb') +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..dfe9ea7 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/stefano/android-sdk-macosx/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/app/src/androidTest/java/net/rehacktive/waspdbexample/ApplicationTest.java b/app/src/androidTest/java/net/rehacktive/waspdbexample/ApplicationTest.java new file mode 100644 index 0000000..46ef286 --- /dev/null +++ b/app/src/androidTest/java/net/rehacktive/waspdbexample/ApplicationTest.java @@ -0,0 +1,13 @@ +package net.rehacktive.waspdbexample; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..ac1f030 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/java/net/rehacktive/waspdbexample/MainActivity.java b/app/src/main/java/net/rehacktive/waspdbexample/MainActivity.java new file mode 100644 index 0000000..a5cf240 --- /dev/null +++ b/app/src/main/java/net/rehacktive/waspdbexample/MainActivity.java @@ -0,0 +1,120 @@ +package net.rehacktive.waspdbexample; + +import android.os.Bundle; +import android.support.v7.app.ActionBarActivity; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.ListView; +import android.widget.ProgressBar; + +import net.rehacktive.waspdb.WaspDb; +import net.rehacktive.waspdb.WaspFactory; +import net.rehacktive.waspdb.WaspHash; +import net.rehacktive.waspdb.WaspListener; +import net.rehacktive.waspdb.WaspObserver; + +import java.util.ArrayList; +import java.util.List; + +public class MainActivity extends ActionBarActivity { + + ProgressBar progressBar; + // wasp objects + WaspDb db; + WaspHash hash; + WaspObserver observer; + + UserAdapter adapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + progressBar = (ProgressBar) findViewById(R.id.progressBar); + + ListView userList = (ListView) findViewById(R.id.userlist); + adapter = new UserAdapter(this); + userList.setAdapter(adapter); + + if(db==null) { + progressBar.setVisibility(View.VISIBLE); + WaspFactory.openOrCreateDatabase(getFilesDir().getPath(), "example", "Passw0rd", new WaspListener() { + @Override + public void onDone(WaspDb waspDb) { + db = waspDb; + hash = db.openOrCreateHash("users"); + + progressBar.setVisibility(View.INVISIBLE); + + getUsers(); + + observer = new WaspObserver() { + @Override + public void onChange() { + List users = hash.getAllValues(); + adapter.setUsers(users); + adapter.notifyDataSetChanged(); + } + }; + + hash.register(observer); + } + }); + } + } + + private void getUsers() { + List users = hash.getAllValues(); + if(users==null) + users = new ArrayList<>(); + + adapter.setUsers(users); + adapter.notifyDataSetChanged(); + } + + private void addUser() { + User user = new User("user "+System.currentTimeMillis(), ""); + hash.put(user.getUser_name(),user); + } + + private void flushUsers() { + hash.flush(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + hash.unregister(observer); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.add_user) { + addUser(); + return true; + } + + if (id == R.id.flush_user) { + flushUsers(); + return true; + } + + return super.onOptionsItemSelected(item); + } +} diff --git a/app/src/main/java/net/rehacktive/waspdbexample/User.java b/app/src/main/java/net/rehacktive/waspdbexample/User.java new file mode 100644 index 0000000..094f26c --- /dev/null +++ b/app/src/main/java/net/rehacktive/waspdbexample/User.java @@ -0,0 +1,44 @@ +package net.rehacktive.waspdbexample; + +/** + * Created by stefano on 28/07/2015. + */ +public class User { + + private String id; + private String user_name; + private String email; + + public User() { + } + + public User(String username, String email) { + this.user_name = username; + this.email = email; + this.id = ""+System.currentTimeMillis(); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getUser_name() { + return user_name; + } + + public void setUser_name(String user_name) { + this.user_name = user_name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } +} diff --git a/app/src/main/java/net/rehacktive/waspdbexample/UserAdapter.java b/app/src/main/java/net/rehacktive/waspdbexample/UserAdapter.java new file mode 100644 index 0000000..eb6ce33 --- /dev/null +++ b/app/src/main/java/net/rehacktive/waspdbexample/UserAdapter.java @@ -0,0 +1,73 @@ +package net.rehacktive.waspdbexample; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.TextView; + +import java.util.List; + +/** + * Created by stefano on 31/07/2015. + */ +public class UserAdapter extends BaseAdapter { + + private List users; + + LayoutInflater mInflator; + + Context mContext; + + public UserAdapter(Context context) { + mContext = context; + mInflator = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + } + + public void setUsers(List users) { + this.users = users; + } + + @Override + public int getCount() { + return users != null ? users.size() : 0; + } + + @Override + public User getItem(int i) { + return users.get(i); + } + + @Override + public long getItemId(int i) { + return i; + } + + @Override + public View getView(int position, View convertView, ViewGroup container) { + + Viewholder holder; + + final User t = getItem(position); + + if (convertView == null) { + holder = new Viewholder(); + convertView = mInflator.inflate(R.layout.row_user, container, false); + holder.username = (TextView) convertView.findViewById(R.id.username); + convertView.setTag(holder); + + } else { + holder = (Viewholder) convertView.getTag(); + } + + holder.username.setText(t.getUser_name()); + + return convertView; + } + + private class Viewholder { + TextView username; + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..89852b1 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/app/src/main/res/layout/row_user.xml b/app/src/main/res/layout/row_user.xml new file mode 100644 index 0000000..4d60091 --- /dev/null +++ b/app/src/main/res/layout/row_user.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml new file mode 100644 index 0000000..a78bf7f --- /dev/null +++ b/app/src/main/res/menu/menu_main.xml @@ -0,0 +1,8 @@ + + + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..cde69bcccec65160d92116f20ffce4fce0b5245c GIT binary patch literal 3418 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bfa42f0e7b91d006d22352c9ff2f134e504e3c1d GIT binary patch literal 4842 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..324e72cdd7480cb983fa1bcc7ce686e51ef87fe7 GIT binary patch literal 7718 zcmZ{JWl)?=u?hpbj?h-6mfK3P*Eck~k0Tzeg5-hkABxtZea0_k$f-mlF z0S@Qqtva`>x}TYzc}9LrO?P#qj+P1@HZ?W?0C;Muih9o&|G$cb@ocx1*PEUJ%~tM} z901hB;rx4#{@jOHs_MN00ADr$2n+#$yJuJ64gh!x0KlF(07#?(0ENrf7G3D`0EUHz zisCaq%dJ9dz%zhdRNuG*01nCjDhiPCl@b8xIMfv7^t~4jVRrSTGYyZUWqY@yW=)V_ z&3sUP1SK9v1f{4lDSN(agrKYULc;#EGDVeU*5b@#MOSY5JBn#QG8wqxQh+mdR638{mo5f>O zLUdZIPSjFk0~F26zDrM3y_#P^P91oWtLlPaZrhnM$NR%qsbHHK#?fN?cX?EvAhY1Sr9A(1;Kw4@87~|;2QP~ z(kKOGvCdB}qr4m#)1DwQFlh^NdBZvNLkld&yg%&GU`+boBMsoj5o?8tVuY^b0?4;E zsxoLxz8?S$y~a~x0{?dqk+6~Dd(EG7px_yH(X&NX&qEtHPUhu*JHD258=5$JS12rQ zcN+7p>R>tbFJ3NzEcRIpS98?}YEYxBIA8}1Y8zH9wq0c{hx+EXY&ZQ!-Hvy03X zLTMo4EZwtKfwb294-cY5XhQRxYJSybphcrNJWW2FY+b?|QB^?$5ZN=JlSs9Og(;8+ z*~-#CeeEOxt~F#aWn8wy-N_ilDDe_o+SwJD>4y?j5Lpj z2&!EX)RNxnadPBAa?fOj5D1C{l1E0X?&G3+ckcVfk`?%2FTsoUf4@~eaS#th=zq7v zMEJR@1T?Pi4;$xiPv`3)9rsrbVUH&b0e2{YTEG%;$GGzKUKEim;R6r>F@Q-}9JR-< zOPpQI>W0Vt6&7d?~$d&}chKTr_rELu} zWY;KTvtpJFr?P~ReHL4~2=ABn1`GN4Li%OI_1{mMRQi1Bf?+^Va?xdn4>h)Bq#ZRK zYo%R_h5etrv|!$1QF8fu80fN?1oXe(Jx#e6H^$+>C}N{*i$bNbELsXDA>cxlh|iFq zh~$yJ?1lTdcFd1Yv+Hr^PP!yupP!0H@Y6(wFcaVE+0?qjDJ1;*-Q8qL{NNPc{GAoi z_kBH`kw^(^7ShmzArk^A-!3_$W%!M-pGaZC=K`p-ch&iT%CV0>ofS74aPd7oT&cRr zXI30fVV6#PR*Z?c*orR0!$K6SUl9!H>hG+%`LdifNk`!Sw7Hon{Wn=|qV{a%v9nEq zAdBW*5kq6il=yA}x8cZQt^c+RBS|TRn;!?$ue?@jIV~0w1dt1FJRYI-K5>z-^01)R z)r}A&QXp^?-?}Uj`}ZPqB#}xO-?{0wrmi|eJOEjzdXbey4$rtKNHz)M*o?Ov+;S=K z-l~`)xV`%7Gvzy5wfvwqc0|80K29k0G~1nuBO+y-6)w11Kz2{>yD{HTt-uybe2pe? zUZK*Eij7TT4NwF1Jr@6R7gMuu^@qn#zPIgRtF?-SJL83LBDrh7k#{F^222EXPg}S0d4Lf0!|1 z|2k$^b~)^8$Z-yH{B-vo%7sVU@ZCvXN+Am)-fy$afZ_4HAUpK}j4p`UyXRel-+(VS z#K>-=-oA1pH+Lo$&|!lYB|M7Y&&bF##Oi@y_G3p1X$0I{jS1!NEdTz#x0`H`d*l%X z*8Y3>L*>j@ZQGOdPqwY(GzbA4nxqT(UAP<-tBf{_cb&Hn8hO5gEAotoV;tF6K4~wr2-M0v|2acQ!E@G*g$J z)~&_lvwN%WW>@U_taX5YX@a~pnG7A~jGwQwd4)QKk|^d_x9j+3JYmI5H`a)XMKwDt zk(nmso_I$Kc5m+8iVbIhY<4$34Oz!sg3oZF%UtS(sc6iq3?e8Z;P<{OFU9MACE6y( zeVprnhr!P;oc8pbE%A~S<+NGI2ZT@4A|o9bByQ0er$rYB3(c)7;=)^?$%a${0@70N zuiBVnAMd|qX7BE)8})+FAI&HM|BIb3e=e`b{Do8`J0jc$H>gl$zF26=haG31FDaep zd~i}CHSn$#8|WtE06vcA%1yxiy_TH|RmZ5>pI5*8pJZk0X54JDQQZgIf1Pp3*6hepV_cXe)L2iW$Ov=RZ4T)SP^a_8V} z+Nl?NJL7fAi<)Gt98U+LhE>x4W=bfo4F>5)qBx@^8&5-b>y*Wq19MyS(72ka8XFr2 zf*j(ExtQkjwN|4B?D z7+WzS*h6e_Po+Iqc-2n)gTz|de%FcTd_i9n+Y5*Vb=E{8xj&|h`CcUC*(yeCf~#Mf zzb-_ji&PNcctK6Xhe#gB0skjFFK5C4=k%tQQ}F|ZvEnPcH=#yH4n%z78?McMh!vek zVzwC0*OpmW2*-A6xz0=pE#WdXHMNxSJ*qGY(RoV9)|eu)HSSi_+|)IgT|!7HRx~ zjM$zp%LEBY)1AKKNI?~*>9DE3Y2t5p#jeqeq`1 zsjA-8eQKC*!$%k#=&jm+JG?UD(}M!tI{wD*3FQFt8jgv2xrRUJ}t}rWx2>XWz9ndH*cxl()ZC zoq?di!h6HY$fsglgay7|b6$cUG-f!U4blbj(rpP^1ZhHv@Oi~;BBvrv<+uC;%6QK!nyQ!bb3i3D~cvnpDAo3*3 zXRfZ@$J{FP?jf(NY7~-%Kem>jzZ2+LtbG!9I_fdJdD*;^T9gaiY>d+S$EdQrW9W62 z6w8M&v*8VWD_j)fmt?+bdavPn>oW8djd zRnQ}{XsIlwYWPp;GWLXvbSZ8#w25z1T}!<{_~(dcR_i1U?hyAe+lL*(Y6c;j2q7l! zMeN(nuA8Z9$#w2%ETSLjF{A#kE#WKus+%pal;-wx&tTsmFPOcbJtT?j&i(#-rB}l@ zXz|&%MXjD2YcYCZ3h4)?KnC*X$G%5N)1s!0!Ok!F9KLgV@wxMiFJIVH?E5JcwAnZF zU8ZPDJ_U_l81@&npI5WS7Y@_gf3vTXa;511h_(@{y1q-O{&bzJ z*8g>?c5=lUH6UfPj3=iuuHf4j?KJPq`x@en2Bp>#zIQjX5(C<9-X4X{a^S znWF1zJ=7rEUwQ&cZgyV4L12f&2^eIc^dGIJP@ToOgrU_Qe=T)utR;W$_2Vb7NiZ+d z$I0I>GFIutqOWiLmT~-Q<(?n5QaatHWj**>L8sxh1*pAkwG>siFMGEZYuZ)E!^Hfs zYBj`sbMQ5MR;6=1^0W*qO*Zthx-svsYqrUbJW)!vTGhWKGEu8c+=Yc%xi}Rncu3ph zTT1j_>={i3l#~$!rW!%ZtD9e6l6k-k8l{2w53!mmROAD^2yB^e)3f9_Qyf&C#zk`( z|5RL%r&}#t(;vF4nO&n}`iZpIL=p9tYtYv3%r@GzLWJ6%y_D(icSF^swYM`e8-n43iwo$C~>G<)dd0ze@5}n(!^YD zHf#OVbQ$Li@J}-qcOYn_iWF=_%)EXhrVuaYiai|B<1tXwNsow(m;XfL6^x~|Tr%L3~cs0@c) zDvOFU-AYn1!A;RBM0S}*EhYK49H$mBAxus)CB*KW(87#!#_C0wDr<0*dZ+GN&(3wR z6)cFLiDvOfs*-7Q75ekTAx)k!dtENUKHbP|2y4=tf*d_BeZ(9kR*m;dVzm&0fkKuD zVw5y9N>pz9C_wR+&Ql&&y{4@2M2?fWx~+>f|F%8E@fIfvSM$Dsk26(UL32oNvTR;M zE?F<7<;;jR4)ChzQaN((foV z)XqautTdMYtv<=oo-3W-t|gN7Q43N~%fnClny|NNcW9bIPPP5KK7_N8g!LB8{mK#! zH$74|$b4TAy@hAZ!;irT2?^B0kZ)7Dc?(7xawRUpO~AmA#}eX9A>+BA7{oDi)LA?F ze&CT`Cu_2=;8CWI)e~I_65cUmMPw5fqY1^6v))pc_TBArvAw_5Y8v0+fFFT`T zHP3&PYi2>CDO=a|@`asXnwe>W80%%<>JPo(DS}IQiBEBaNN0EF6HQ1L2i6GOPMOdN zjf3EMN!E(ceXhpd8~<6;6k<57OFRs;mpFM6VviPN>p3?NxrpNs0>K&nH_s ze)2#HhR9JHPAXf#viTkbc{-5C7U`N!`>J-$T!T6%=xo-)1_WO=+BG{J`iIk%tvxF39rJtK49Kj#ne;WG1JF1h7;~wauZ)nMvmBa2PPfrqREMKWX z@v}$0&+|nJrAAfRY-%?hS4+$B%DNMzBb_=Hl*i%euVLI5Ts~UsBVi(QHyKQ2LMXf` z0W+~Kz7$t#MuN|X2BJ(M=xZDRAyTLhPvC8i&9b=rS-T{k34X}|t+FMqf5gwQirD~N1!kK&^#+#8WvcfENOLA`Mcy@u~ zH10E=t+W=Q;gn}&;`R1D$n(8@Nd6f)9=F%l?A>?2w)H}O4avWOP@7IMVRjQ&aQDb) zzj{)MTY~Nk78>B!^EbpT{&h zy{wTABQlVVQG<4;UHY?;#Je#-E;cF3gVTx520^#XjvTlEX>+s{?KP#Rh@hM6R;~DE zaQY16$Axm5ycukte}4FtY-VZHc>=Ps8mJDLx3mwVvcF<^`Y6)v5tF`RMXhW1kE-;! z7~tpIQvz5a6~q-8@hTfF9`J;$QGQN%+VF#`>F4K3>h!tFU^L2jEagQ5Pk1U_I5&B> z+i<8EMFGFO$f7Z?pzI(jT0QkKnV)gw=j74h4*jfkk3UsUT5PemxD`pO^Y#~;P2Cte zzZ^pr>SQHC-576SI{p&FRy36<`&{Iej&&A&%>3-L{h(fUbGnb)*b&eaXj>i>gzllk zLXjw`pp#|yQIQ@;?mS=O-1Tj+ZLzy+aqr7%QwWl?j=*6dw5&4}>!wXqh&j%NuF{1q zzx$OXeWiAue+g#nkqQ#Uej@Zu;D+@z^VU*&HuNqqEm?V~(Z%7D`W5KSy^e|yF6kM7 z8Z9fEpcs^ElF9Vnolfs7^4b0fsNt+i?LwUX8Cv|iJeR|GOiFV!JyHdq+XQ&dER(KSqMxW{=M)lA?Exe&ZEB~6SmHg`zkcD7x#myq0h61+zhLr_NzEIjX zr~NGX_Uh~gdcrvjGI(&5K_zaEf}1t*)v3uT>~Gi$r^}R;H+0FEE5El{y;&DniH2@A z@!71_8mFHt1#V8MVsIYn={v&*0;3SWf4M$yLB^BdewOxz;Q=+gakk`S{_R_t!z2b| z+0d^C?G&7U6$_-W9@eR6SH%+qLx_Tf&Gu5%pn*mOGU0~kv~^K zhPeqYZMWWoA(Y+4GgQo9nNe6S#MZnyce_na@78ZnpwFenVafZC3N2lc5Jk-@V`{|l zhaF`zAL)+($xq8mFm{7fXtHru+DANoGz-A^1*@lTnE;1?03lz8kAnD{zQU=Pb^3f` zT5-g`z5|%qOa!WTBed-8`#AQ~wb9TrUZKU)H*O7!LtNnEd!r8!Oda)u!Gb5P`9(`b z`lMP6CLh4OzvXC#CR|@uo$EcHAyGr=)LB7)>=s3 zvU;aR#cN3<5&CLMFU@keW^R-Tqyf4fdkOnwI(H$x#@I1D6#dkUo@YW#7MU0@=NV-4 zEh2K?O@+2e{qW^7r?B~QTO)j}>hR$q9*n$8M(4+DOZ00WXFonLlk^;os8*zI>YG#? z9oq$CD~byz>;`--_NMy|iJRALZ#+qV8OXn=AmL^GL&|q1Qw-^*#~;WNNNbk(96Tnw zGjjscNyIyM2CYwiJ2l-}u_7mUGcvM+puPF^F89eIBx27&$|p_NG)fOaafGv|_b9G$;1LzZ-1aIE?*R6kHg}dy%~K(Q5S2O6086 z{lN&8;0>!pq^f*Jlh=J%Rmaoed<=uf@$iKl+bieC83IT!09J&IF)9H)C?d!eW1UQ}BQwxaqQY47DpOk@`zZ zo>#SM@oI^|nrWm~Ol7=r`!Bp9lQNbBCeHcfN&X$kjj0R(@?f$OHHt|fWe6jDrYg3(mdEd$8P2Yzjt9*EM zLE|cp-Tzsdyt(dvLhU8}_IX&I?B=|yoZ!&<`9&H5PtApt=VUIB4l0a1NH v0SQqt3DM`an1p};^>=lX|A*k@Y-MNT^ZzF}9G-1G696?OEyXH%^Pv9$0dR%J literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000..63fc816 --- /dev/null +++ b/app/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,6 @@ + + + 64dp + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..47c8224 --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,5 @@ + + + 16dp + 16dp + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..8f79128 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,6 @@ + + WaspDbExample + + Hello world! + Settings + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..766ab99 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..e6c1aa5 --- /dev/null +++ b/build.gradle @@ -0,0 +1,18 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:1.2.3' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..1d3591c --- /dev/null +++ b/gradle.properties @@ -0,0 +1,18 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd GIT binary patch literal 49896 zcmagFb986H(k`5d^NVfUwr$(C?M#x1ZQHiZiEVpg+jrjgoQrerx!>1o_ul)D>ebz~ zs=Mmxr&>W81QY-S1PKWQ%N-;H^tS;2*XwVA`dej1RRn1z<;3VgfE4~kaG`A%QSPsR z#ovnZe+tS9%1MfeDyz`RirvdjPRK~p(#^q2(^5@O&NM19EHdvN-A&StN>0g6QA^VN z0Gx%Gq#PD$QMRFzmK+utjS^Y1F0e8&u&^=w5K<;4Rz|i3A=o|IKLY+g`iK6vfr9?+ z-`>gmU&i?FGSL5&F?TXFu`&Js6h;15QFkXp2M1H9|Eq~bpov-GU(uz%mH0n55wUl- zv#~ccAz`F5wlQ>e_KlJS3@{)B?^v*EQM=IxLa&76^y51a((wq|2-`qON>+4dLc{Oo z51}}o^Zen(oAjxDK7b++9_Yg`67p$bPo3~BCpGM7uAWmvIhWc5Gi+gQZ|Pwa-Gll@<1xmcPy z|NZmu6m)g5Ftu~BG&Xdxclw7Cij{xbBMBn-LMII#Slp`AElb&2^Hw+w>(3crLH!;I zN+Vk$D+wP1#^!MDCiad@vM>H#6+`Ct#~6VHL4lzmy;lSdk>`z6)=>Wh15Q2)dQtGqvn0vJU@+(B5{MUc*qs4!T+V=q=wy)<6$~ z!G>e_4dN@lGeF_$q9`Ju6Ncb*x?O7=l{anm7Eahuj_6lA{*#Gv*TaJclevPVbbVYu z(NY?5q+xxbO6%g1xF0r@Ix8fJ~u)VRUp`S%&rN$&e!Od`~s+64J z5*)*WSi*i{k%JjMSIN#X;jC{HG$-^iX+5f5BGOIHWAl*%15Z#!xntpk($-EGKCzKa zT7{siZ9;4TICsWQ$pu&wKZQTCvpI$Xvzwxoi+XkkpeE&&kFb!B?h2hi%^YlXt|-@5 zHJ~%AN!g_^tmn1?HSm^|gCE#!GRtK2(L{9pL#hp0xh zME}|DB>(5)`iE7CM)&_+S}-Bslc#@B5W4_+k4Cp$l>iVyg$KP>CN?SVGZ(&02>iZK zB<^HP$g$Lq*L$BWd?2(F?-MUbNWTJVQdW7$#8a|k_30#vHAD1Z{c#p;bETk0VnU5A zBgLe2HFJ3032$G<`m*OB!KM$*sdM20jm)It5OSru@tXpK5LT>#8)N!*skNu1$TpIw zufjjdp#lyH5bZ%|Iuo|iu9vG1HrIVWLH>278xo>aVBkPN3V$~!=KnlXQ4eDqS7%E% zQ!z^$Q$b^6Q)g#cLpwur(|<0gWHo6A6jc;n`t(V9T;LzTAU{IAu*uEQ%Ort1k+Kn+f_N`9|bxYC+~Z1 zCC1UCWv*Orx$_@ydv9mIe(liLfOr7mhbV@tKw{6)q^1DH1nmvZ0cj215R<~&I<4S| zgnr;9Cdjqpz#o8i0CQjtl`}{c*P)aSdH|abxGdrR)-3z+02-eX(k*B)Uqv6~^nh** z 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..aec9973 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/images/hypercube.png b/images/hypercube.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec41fa84443e537c8e03780156d599d25fe314d GIT binary patch literal 10299 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 X_x<*wp=#~8h!0|BOd`|(uDAaWvd5`h literal 0 HcmV?d00001 diff --git a/images/wasp_comparison.png b/images/wasp_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..03565cbd8922695349de4590552ddd009de92e38 GIT binary patch literal 109299 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 F{{x&<1sDJT literal 0 HcmV?d00001 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..a8617fe --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':app', ':waspdb' diff --git a/waspdb/.gitignore b/waspdb/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/waspdb/.gitignore @@ -0,0 +1 @@ +/build diff --git a/waspdb/build.gradle b/waspdb/build.gradle new file mode 100644 index 0000000..2cc2cad --- /dev/null +++ b/waspdb/build.gradle @@ -0,0 +1,60 @@ +apply plugin: 'com.android.library' + +buildscript { + repositories { + jcenter() + } +} + +android { + packagingOptions { + exclude 'META-INF/DEPENDENCIES.txt' + exclude 'META-INF/LICENSE.txt' + exclude 'META-INF/NOTICE.txt' + exclude 'META-INF/NOTICE' + exclude 'META-INF/LICENSE' + exclude 'META-INF/DEPENDENCIES' + exclude 'META-INF/notice.txt' + exclude 'META-INF/license.txt' + exclude 'META-INF/dependencies.txt' + exclude 'META-INF/LGPL2.1' + } + + compileSdkVersion 22 + buildToolsVersion "21.1.2" + + defaultConfig { + minSdkVersion 14 + targetSdkVersion 22 + versionCode 1 + versionName "1.0" + } + + lintOptions { + abortOnError false + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } + buildTypes { + debug { + buildConfigField "boolean", "IS_DEBUG", "true" + } + + release { + minifyEnabled false + buildConfigField "boolean", "IS_DEBUG", "false" + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'com.esotericsoftware:kryo:3.0.3' +} + + + + diff --git a/waspdb/libs/commons-io-2.4.jar b/waspdb/libs/commons-io-2.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..837750483c5a9eef108afa57654460628ae97fde GIT binary patch literal 181060 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
  • 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 literal 0 HcmV?d00001 diff --git a/waspdb/proguard-rules.pro b/waspdb/proguard-rules.pro new file mode 100644 index 0000000..dfe9ea7 --- /dev/null +++ b/waspdb/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/stefano/android-sdk-macosx/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/waspdb/src/androidTest/java/net/rehacktive/waspdb/MainTest.java b/waspdb/src/androidTest/java/net/rehacktive/waspdb/MainTest.java new file mode 100644 index 0000000..22d3b0e --- /dev/null +++ b/waspdb/src/androidTest/java/net/rehacktive/waspdb/MainTest.java @@ -0,0 +1,175 @@ +package net.rehacktive.waspdb; + +import android.content.Context; +import android.test.InstrumentationTestCase; +import android.util.Log; + +import java.util.HashMap; +import java.util.List; + +/** + * Created by stefano on 30/07/2015. + */ +public class MainTest extends InstrumentationTestCase { + + String path; + String dbName = "justAtestDb"; + String dbPwd = "passw0rd!"; + + Context ctx; + + WaspDb db; + + @Override + protected void setUp() throws Exception { + super.setUp(); + ctx = getInstrumentation().getContext(); + path = ctx.getFilesDir().getAbsolutePath(); + + db = WaspFactory.openOrCreateDatabase(path,dbName,dbPwd); + } + + public void testDatabaseCreation() { + WaspFactory.openOrCreateDatabase(path, dbName, dbPwd, new WaspListener() { + @Override + public void onDone(WaspDb ret) { + assertTrue("testDatabaseCreation", WaspFactory.existsDatabase(path, dbName)); + } + }); + + } + + public void testCreateHash() throws Exception { + db.openOrCreateHash("hash"); + assertTrue("testCreateHash", db.existsHash("hash")); + } + + public void testPut() throws Exception { + int id = 1; + UserWithNestedContent p = new UserWithNestedContent(id, "test", "123"); + WaspHash hash = db.openOrCreateHash("hash"); + hash.flush(); + + hash.put(id, p); + + UserWithNestedContent newPerson = hash.get(id); + assertTrue("testPut", newPerson.equals(p) && newPerson.getFriends().size()==UserWithNestedContent.NUMBER_OF_FRIENDS); + } + + public void testMultiplePut() throws Exception { + WaspHash hash = db.openOrCreateHash("test12"); + hash.flush(); + + Long start = System.currentTimeMillis(); + int count = 100; + for (int i = 0; i < count; i++) { + UserWithNestedContent user = new UserWithNestedContent(i, "b" + i, ""); + hash.put(user.getUsername(), user); + } + Long end = System.currentTimeMillis(); + Log.d("WASPDEBUG MULTIPLE",(end-start)+" ms"); + List result = hash.getAllKeys(); + Long end2 = System.currentTimeMillis(); + Log.d("WASPDEBUG MULTIPLE",(end2-end)+" ms for reading all"); + assertTrue("testMultiplePut " + result.size(), result.size() == count); + } + + public void testGetAllKeys() throws Exception { + WaspHash hash = db.openOrCreateHash("users"); + hash.flush(); + + int count = 10; + for(int i=0; i result = hash.getAllKeys(); + assertTrue("testGetAllKeys", result.size() == count); + } + + public void testGetAllValues() throws Exception { + WaspHash hash = db.openOrCreateHash("users"); + hash.flush(); + + int count = 10; + for(int i=0; i result = hash.getAllValues(); + assertTrue("testGetAllValues", result.size() == count); + } + + public void testGetAllData() throws Exception { + WaspHash hash = db.openOrCreateHash("users"); + hash.flush(); + + int count = 10; + for(int i=0; i result = hash.getAllData(); + assertTrue("testGetAllData", result.size() == count); + } + + public void testRemove() throws Exception { + WaspHash hash = db.openOrCreateHash("deleteHash"); + + UserWithNestedContent p = new UserWithNestedContent(1,"test","123"); + + hash.put(1,p); + + hash.remove(1); + + assertTrue("testDelete", hash.getAllKeys().size() == 0); + } + + public void testHashFlush() throws Exception { + WaspHash hash = db.openOrCreateHash("anotherHash"); + + UserWithNestedContent p = new UserWithNestedContent(1,"test","123"); + + hash.put(1,p); + + hash.flush(); + + assertTrue("testHashFlush", hash.getAllKeys().size() == 0); + } + + public void testHashDelete() throws Exception { + WaspHash hash = db.openOrCreateHash("anotherHashToDelete"); + if(hash!=null) { + db.removeHash("anotherHashToDelete"); + assertTrue(!db.existsHash("anotherHashToDelete")); + } else { + fail(); + } + } + + public void testDatabaseDestroy() throws Exception { + // TODO + } + + public void testObserver() throws Exception { + int id = 2; + UserWithNestedContent p = new UserWithNestedContent(id,"test","123"); + + final WaspHash hash = db.openOrCreateHash("another_hash"); + hash.flush(); + + hash.register(new WaspObserver() { + @Override + public void onChange() { + assertTrue("testObserver", hash.getAllKeys().size() == 1); + } + }); + + hash.put(id, p); + } + + +} diff --git a/waspdb/src/androidTest/java/net/rehacktive/waspdb/User.java b/waspdb/src/androidTest/java/net/rehacktive/waspdb/User.java new file mode 100644 index 0000000..32f2a93 --- /dev/null +++ b/waspdb/src/androidTest/java/net/rehacktive/waspdb/User.java @@ -0,0 +1,68 @@ +package net.rehacktive.waspdb; + +/** + * Created by stefano on 17/03/2015. + */ +public class User { + + private int id; + private String username; + private String telephone; + + public User() { + } + + public User(int id, String username, String telephone) { + this.id = id; + this.username = username; + this.telephone = telephone; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + User user = (User) o; + + if (id != user.id) return false; + if (telephone != null ? !telephone.equals(user.telephone) : user.telephone != null) + return false; + if (username != null ? !username.equals(user.username) : user.username != null) + return false; + + return true; + } + + @Override + public int hashCode() { + int result = id; + result = 31 * result + (username != null ? username.hashCode() : 0); + result = 31 * result + (telephone != null ? telephone.hashCode() : 0); + return result; + } +} diff --git a/waspdb/src/androidTest/java/net/rehacktive/waspdb/UserWithNestedContent.java b/waspdb/src/androidTest/java/net/rehacktive/waspdb/UserWithNestedContent.java new file mode 100644 index 0000000..6070e31 --- /dev/null +++ b/waspdb/src/androidTest/java/net/rehacktive/waspdb/UserWithNestedContent.java @@ -0,0 +1,96 @@ +package net.rehacktive.waspdb; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by stefano on 17/03/2015. + */ +public class UserWithNestedContent { + + public static int NUMBER_OF_FRIENDS = 20; + + private int id; + private String username; + private String telephone; + private List friends; + + public UserWithNestedContent() { + } + + public UserWithNestedContent(int id, String username, String telephone) { + this.id = id; + this.username = username; + this.telephone = telephone; + // generate list of friends + this.friends = new ArrayList<>(); + for (int i = 0; i < NUMBER_OF_FRIENDS; i++) { + User p = new User(i, "test"+i, "123"); + friends.add(p); + } + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getTelephone() { + return telephone; + } + + public void setTelephone(String telephone) { + this.telephone = telephone; + } + + public List getFriends() { + return friends; + } + + public void setFriends(List friends) { + this.friends = friends; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + UserWithNestedContent person = (UserWithNestedContent) o; + + if (id != person.id) return false; + if (telephone != null ? !telephone.equals(person.telephone) : person.telephone != null) + return false; + if (username != null ? !username.equals(person.username) : person.username != null) + return false; + + return true; + } + + @Override + public int hashCode() { + int result = id; + result = 31 * result + (username != null ? username.hashCode() : 0); + result = 31 * result + (telephone != null ? telephone.hashCode() : 0); + return result; + } + + @Override + public String toString() { + return "UserWithNestedContent{" + + "id=" + id + + ", username='" + username + '\'' + + '}'; + } +} diff --git a/waspdb/src/main/AndroidManifest.xml b/waspdb/src/main/AndroidManifest.xml new file mode 100644 index 0000000..fde3ddf --- /dev/null +++ b/waspdb/src/main/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/WaspDb.java b/waspdb/src/main/java/net/rehacktive/waspdb/WaspDb.java new file mode 100755 index 0000000..356dad9 --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/WaspDb.java @@ -0,0 +1,190 @@ +package net.rehacktive.waspdb; + +import net.rehacktive.waspdb.internals.cryptolayer.CipherManager; +import net.rehacktive.waspdb.internals.utils.Utils; + +import java.io.File; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.List; + +public class WaspDb { + + /* + * this object contains all main infos about database + * this file is "kryonized" under {path}/dbname/db.data + */ + + private String dbName; // db name + private String path; // db path + private CipherManager cipherManager; + + private List hashes; // all hashes used + + protected WaspDb() { + } + + /** + * Open/create a WaspHash instance + * @param hashName name + * @return + */ + public WaspHash openOrCreateHash(String hashName) { + WaspHash hash; + try { + if(existsHash(hashName)) { + hash = getHash(hashName); + } else { + hash = createHash(hashName); + } + return hash; + } + catch(Exception wfe) { + wfe.printStackTrace(); + return null; + } + } + + /** + * Check if the WaspHash exists + * @param hashName name + * @return + */ + public boolean existsHash(String hashName) { + try { + String realname = Utils.md5(hashName); + String directory = path+"/"+Utils.md5(dbName)+"/"+realname; + return new File(directory).exists(); + } + catch(Exception e) { + return false; + } + } + + protected WaspHash getHash(String hashName) { + try { + String realname = Utils.md5(hashName); + String directory = path+"/"+Utils.md5(dbName)+"/"+realname; + if(new File(directory).exists()) { // already exists + WaspHash hash = new WaspHash(cipherManager,directory); + return hash; + } + else { + return null; + } + + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + protected WaspHash createHash(String hashName) { + try { + String realname = Utils.md5(hashName); + String directory = path+"/"+Utils.md5(dbName)+"/"+realname; + if(!new File(directory).exists()) { // if not exists + // create a new one + if(new File(directory).mkdir()) { + WaspHash hash = new WaspHash(cipherManager,directory); + + if(hashes==null) hashes = new ArrayList(); + hashes.add(hashName); + persist(); // update db data on disk + return hash; + } + else { + return null; + } + } else { + return getHash(hashName); + } + } catch(Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * Delete the specified WaspHash + * @param hashName name + * @return + */ + public boolean removeHash(String hashName) { + try { + String realname = Utils.md5(hashName); + String directory = path+"/"+Utils.md5(dbName)+"/"+realname; + if(new File(directory).exists()) { // if exists + // delete recursively + try { + Utils.deleteRecursive(new File(directory)); + + if(hashes!=null) hashes.remove(hashName); + persist(); // update db data on disk + + return true; + } + catch(Exception e) { + return false; + } + } else { + return false; + } + } catch(Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * Return a list of all WaspHash names associated to this database + * @return + */ + public List getAllHashes() { + return hashes; + } + + protected String getName() throws NoSuchAlgorithmException { + return Utils.md5(dbName); + } + + protected void setName(String name) { + this.dbName = name; + } + + protected String getPath() { + return path; + } + + protected void setPath(String path) { + this.path = path; + } + + /** + * Get information about this instance + * @return a string containing some information + */ + @Override + public String toString() { + return "WaspDb [name=" + dbName + ", path=" + path + ", cipher enabled = " + + (cipherManager!=null) + "]"; + } + + private void persist() { + WaspFactory.storeDatabase(this, cipherManager); + } + + protected CipherManager getCipherManager() { + return cipherManager; + } + + protected void setCipherManager(CipherManager cm) { + this.cipherManager = cm; + } + + protected void clearCipherInformation() { + this.cipherManager = null; + } + + +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/WaspFactory.java b/waspdb/src/main/java/net/rehacktive/waspdb/WaspFactory.java new file mode 100755 index 0000000..2661f2f --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/WaspFactory.java @@ -0,0 +1,178 @@ +package net.rehacktive.waspdb; + +import android.os.AsyncTask; + +import net.rehacktive.waspdb.internals.collision.KryoStoreUtils; +import net.rehacktive.waspdb.internals.cryptolayer.CipherManager; +import net.rehacktive.waspdb.internals.utils.Salt; +import net.rehacktive.waspdb.internals.utils.Utils; + +import java.io.File; + +public class WaspFactory { + + private static final String DB_NAME = "data.db"; + private static final String SALT_NAME = "salt"; + + /** + * Asynchronously open/create a WaspDb instance + * the operation requires some time, according to device CPU power + * @param path the path for the database folder - use Context.getFilesDir().getPath() + * @param name name of the database + * @param password password - set as null if you don't need encryption / for better performances + * @param listener a WaspListener instance, to get the database when is ready + */ + public static void openOrCreateDatabase(final String path, final String name, final String password, final WaspListener listener) { + new AsyncTask() { + + WaspDb db = null; + + @Override + protected Void doInBackground(Void... params) { + if(WaspFactory.existsDatabase(path, name)) { + db = WaspFactory.loadDatabase(path, name, password); + } else { + db = WaspFactory.createDatabase(path, name, password); + } + return null; + } + + @Override + protected void onPostExecute(Void aVoid) { + super.onPostExecute(aVoid); + if(db!=null) { + listener.onDone(db); + } else { + listener.onError("error on openOrCreateDatabase"); + } + } + }.execute(); + + } + + /** + * Synchronous call to create the database - use outside of the main thread! + * @param path the path for the database folder - use Context.getFilesDir().getPath() + * @param name name of the database + * @param password password - set as null if you don't need encryption / for better performances + * @return + */ + public static WaspDb openOrCreateDatabase(String path, String name, String password) { + if(WaspFactory.existsDatabase(path, name)) { + return WaspFactory.loadDatabase(path, name, password); + } else { + return WaspFactory.createDatabase(path, name, password); + } + } + + /** + * Destroy the database and remove all the data + * @param db the database object to destroy + * @return + */ + public static boolean destroyDatabase(WaspDb db) { + try { + String directory = db.getPath()+"/"+Utils.md5(db.getName())+"/"; + if(new File(directory).exists()) { // if exists + // delete recursively + try { + Utils.deleteRecursive(new File(directory)); + return true; + } + catch(Exception e) { + return false; + } + } else { + return true; + } + } catch(Exception e) { + e.printStackTrace(); + return false; + } + } + + // PROTECTED + + protected static boolean existsDatabase(String path, String name) { + try { + WaspDb db = new WaspDb(); + db.setPath(path); + db.setName(name); + String directory; + directory = db.getPath()+"/"+db.getName(); + + return (new File(directory).exists()); + } catch (Exception e) { + return false; + } + } + + protected static WaspDb createDatabase(final String path, final String name, final String password) { + if(password!=null && !Utils.checkForCryptoAvailable()) return null; + Salt salt = Utils.generateSalt(); + WaspDb db = new WaspDb(); + db.setName(name); + db.setPath(path); + try { + CipherManager cipherManager = null; + if (!Utils.isEmpty(password)) { + cipherManager = CipherManager.getInstance(password.toCharArray(), salt.getSalt()); + } + + boolean ret = storeDatabase(db, cipherManager); + if (ret) { + KryoStoreUtils.serializeToDisk(salt, db.getPath()+"/"+db.getName()+"/"+SALT_NAME, null); + db.setCipherManager(cipherManager); // set the ciphermanager in the object + return db; + } else return null; + } + catch(Exception e) { + e.printStackTrace(); + return null; + } + } + + protected static boolean storeDatabase(WaspDb db, CipherManager cipherManager) { + try { + String directory = db.getPath()+"/"+db.getName(); + //if((new File(directory).exists())) throw new WaspFatalException("database already exists"); + boolean success = true; + if(!(new File(directory).exists())) success = (new File(directory)).mkdir(); + if(success) { + // do not store the cipherManager + db.clearCipherInformation(); + KryoStoreUtils.serializeToDisk(db, db.getPath() + "/" + db.getName() + "/" + DB_NAME, cipherManager); + db.setCipherManager(cipherManager); + + return true; + } else { + return false; + } + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + protected static WaspDb loadDatabase(final String path, final String name, final String password) { + if(password!=null && !Utils.checkForCryptoAvailable()) return null; + CipherManager cipherManager = null; + try { + String realname = Utils.md5(name); + WaspDb db; + + Salt salt = (Salt) KryoStoreUtils.readFromDisk(path + "/" + realname +"/"+SALT_NAME,Salt.class, null); + if(!Utils.isEmpty(password)) + cipherManager = CipherManager.getInstance(password.toCharArray(),salt.getSalt()); + db = (WaspDb) KryoStoreUtils.readFromDisk(path + "/" + realname + "/" + DB_NAME, WaspDb.class, cipherManager); + + db.setPath(path); // refresh the path to the current one + db.setCipherManager(cipherManager); // set the password in the object + return db; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/WaspHash.java b/waspdb/src/main/java/net/rehacktive/waspdb/WaspHash.java new file mode 100755 index 0000000..481293f --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/WaspHash.java @@ -0,0 +1,162 @@ +package net.rehacktive.waspdb; + +import net.rehacktive.waspdb.internals.collision.CollisionHash; +import net.rehacktive.waspdb.internals.collision.exceptions.KeyNotFoundException; +import net.rehacktive.waspdb.internals.cryptolayer.CipherManager; + +import org.apache.commons.io.FileUtils; + +import java.io.File; +import java.util.HashMap; +import java.util.List; + +public class WaspHash extends WaspObservable { + + private String path; + private CollisionHash hash; + + protected WaspHash() {} + + protected WaspHash(CipherManager cipherManager, String path) { + super(); + this.hash = new CollisionHash(path, cipherManager); + this.path = path; + } + + /** + * Store a key/value pair + * + * @param key the Object key + * @param value the Object value + */ + public void put(Object key, Object value) { + try { + hash.updateObject(key, value); + notifyObservers(); + } + catch(Exception e) { + e.printStackTrace(); + } + } + + /** + * Retrieve a value associated to the specific key + * @param key the key + * @param the value type + * @return the object, casted automagically! + */ + public T get(Object key) { + try { + return (T) hash.retrieveObject(key); + } + catch(KeyNotFoundException k) { + k.printStackTrace(); + return null; + } + catch(Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * Remove the value associated to the specific key + * @param key the key + * @return true if all okay, false if error + */ + public boolean remove(Object key) { + try { + Object obj = hash.removeObject(key); + if(obj!=null) { + notifyObservers(); + return true; + } + return false; + } + catch(KeyNotFoundException k) { + k.printStackTrace(); + return false; + } + catch(Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * Retrieve the list of key for this WaspHash + * @param the key type + * @return a list of keys, casted automagically + */ + public List getAllKeys() { + try { + return hash.getAllKeys(path); + } + catch(Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * Retrieve the list of values for this WaspHash + * @param the value type + * @return a list of values, casted automagically + */ + public List getAllValues() { + try { + return hash.getAllValues(path); + } + catch(Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * Retrieve the list of key/value for this WaspHash + * @param the key type + * @param the value type + * @return a Java HashMap containing all key/values + */ + public HashMap getAllData() { + try { + return hash.getAllData(path); + } + catch(Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * Flush the current WaspHash - all the key/values will be removed + */ + public void flush() { + try { + File currentDir = new File(path); + for(File f : currentDir.listFiles()) { + if(f.isDirectory()) + FileUtils.deleteDirectory(f); + else + FileUtils.deleteQuietly(f); + } + + notifyObservers(); + } + catch(Exception e) { + e.printStackTrace(); + } + } + + /** + * Return some information about this WaspHash + * @return a string containing the infos + */ + @Override + public String toString() { + return "WaspHash [path=" + path + "] total size: (K) " + FileUtils.sizeOf(new File(path)); + } + + +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/WaspListener.java b/waspdb/src/main/java/net/rehacktive/waspdb/WaspListener.java new file mode 100644 index 0000000..39ba36a --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/WaspListener.java @@ -0,0 +1,16 @@ +package net.rehacktive.waspdb; + +import android.util.Log; + +/** + * Created by stefano on 17/03/2015. + */ +public abstract class WaspListener { + + abstract public void onDone(T ret); + + public void onError(String error) { + Log.d("WASPDB", "" + error); + } + +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/WaspObservable.java b/waspdb/src/main/java/net/rehacktive/waspdb/WaspObservable.java new file mode 100644 index 0000000..2a811c7 --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/WaspObservable.java @@ -0,0 +1,40 @@ +package net.rehacktive.waspdb; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by stefano on 17/03/2015. + */ +public class WaspObservable { + + List observers; + + public void register(WaspObserver observer) { + if (observers == null) + observers = new ArrayList<>(); + + if (!observers.contains(observer)) + observers.add(observer); + } + + public void unregister(WaspObserver observer) { + if (observers == null) return; + + observers.remove(observer); + } + + public void notifyObservers() { + try { + if (observers == null) return; + + for (WaspObserver observer : observers) { + if (observer != null) observer.onChange(); + + } + } + catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/WaspObserver.java b/waspdb/src/main/java/net/rehacktive/waspdb/WaspObserver.java new file mode 100644 index 0000000..37558ef --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/WaspObserver.java @@ -0,0 +1,9 @@ +package net.rehacktive.waspdb; + +/** + * Created by stefano on 17/03/2015. + */ +public interface WaspObserver { + + void onChange(); +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/CollisionHash.java b/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/CollisionHash.java new file mode 100755 index 0000000..af463d9 --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/CollisionHash.java @@ -0,0 +1,281 @@ +package net.rehacktive.waspdb.internals.collision; + +import android.util.Log; + +import net.rehacktive.waspdb.internals.collision.exceptions.KeyAlreadyExistsException; +import net.rehacktive.waspdb.internals.collision.exceptions.KeyNotFoundException; +import net.rehacktive.waspdb.internals.cryptolayer.CipherManager; +import net.rehacktive.waspdb.internals.utils.Utils; + +import org.apache.commons.io.FileUtils; + +import java.io.File; +import java.io.FileNotFoundException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + + +public class CollisionHash { + + protected String path; + protected String ext = ".cube"; + + protected int MAXFILESIZE = 65536; + + private CipherManager cipherManager; + + private static String TAG = "COLLISIONHASH"; + + private static String[] cubes = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"}; + + // public methods + + public CollisionHash(String path, CipherManager cipherManager) { + this.path = path; + this.cipherManager = cipherManager; + } + + public void storeObject(Object key, Object value) throws Exception { + storeObject(key, value,false); + } + + public void updateObject(Object key, Object value) throws Exception { + storeObject(key,value,true); + } + + public void storeObject(Object key, Object value, boolean update) throws Exception { + try { + String searchKey = getSearchKey(key); // calculate searchKey for file to store + HashMap hash = getHashFromKey(searchKey); // return the hash from the key - it's size is < MAXSIZE-1 + + if(!hash.containsKey(key) || update) { + hash.put(key, value); // add value + storeHashByKey(hash,searchKey); // store hash + } + else { + throw new KeyAlreadyExistsException("key already exists for value "+hash.get(key)); + } + } catch(Exception e) { + throw e; + } + } + + public Object retrieveObject(Object key) throws Exception { + return retrieveObject(key, false); + } + + + public Object removeObject(Object key) throws Exception { + return retrieveObject(key, true); + } + + public HashMap getAllData(String p) throws Exception { + if(p==null) p = path; + HashMap ret = new HashMap(); + + for(String s : cubes) { + String currentPath = p+"/"+s; + if(new File(currentPath).isDirectory()) { + ret.putAll(getAllData(currentPath)); + } + if(new File(currentPath+ext).exists()) { + HashMap data; + data = (HashMap) KryoStoreUtils.readFromDisk(currentPath+ext, HashMap.class, cipherManager); + ret.putAll(data); + } + } + return ret; + } + + public List getAllKeys(String p) throws Exception { + if(p==null) p = path; + List ret = new ArrayList(); + + for(String s : cubes) { + String currentPath = p+"/"+s; + if(new File(currentPath).isDirectory()) { + ret.addAll(getAllKeys(currentPath)); + } + if(new File(currentPath+ext).exists()) { + HashMap data; + data = (HashMap) KryoStoreUtils.readFromDisk(currentPath+ext, HashMap.class,cipherManager); + ret.addAll(data.keySet()); + } + } + return ret; + } + + public List getAllValues(String p) throws Exception { + if(p==null) p = path; + List ret = new ArrayList(); + + for(String s : cubes) { + String currentPath = p+"/"+s; + if(new File(currentPath).isDirectory()) { + ret.addAll(getAllValues(currentPath)); + } + if(new File(currentPath+ext).exists()) { + HashMap data; + data = (HashMap) KryoStoreUtils.readFromDisk(currentPath+ext, HashMap.class,cipherManager); + ret.addAll(data.values()); + } + } + return ret; + } + + // private methods + + private Object retrieveObject(Object key, boolean remove) throws Exception { + Object ret = null; + try { + String searchKey = getSearchKey(key); // calculate searchKey for file to store + HashMap hash = getHashFromKey(searchKey); // return the hash from the key - it's size is < MAXSIZE-1 + ret = hash.get(key); + if(ret!=null) { + Log.d(TAG, System.currentTimeMillis()+": object found with key "+key); + if(remove) { + hash.remove(key); + storeHashByKey(hash,searchKey); // store hash + Log.d(TAG, System.currentTimeMillis()+": object removed with key "+key); + } + } + else { + throw new KeyNotFoundException("key not found for key "+key); + } + } catch(Exception e) { + throw e; + } + return ret; + } + + protected void explodeCube(String file) throws Exception { + Log.d(TAG,"cube full:"+file); + // the cube is full + // get the working directory + String tmpFile = file.substring(0,file.length()-6)+"tmp"+ext; + // original file + File file1 = new File(file); + // tmp file + File file2 = new File(tmpFile); + // Rename file + boolean success = file1.renameTo(file2); + if(success) Log.d(TAG,"created temporary file"); + + String newdirPath = file.substring(0,file.length()-5); + File newdir = new File(newdirPath);; + try { + + // create a directory with tmp name + if(newdir.mkdir()) { + Log.d(TAG,"created new directory:"+newdirPath); + // read content of the file + HashMap hash; + hash = (HashMap) KryoStoreUtils.readFromDisk(tmpFile,HashMap.class,cipherManager); + // and store it's content inside the new directory + for(Object k : hash.keySet()) { + //String key = (String) k; + Object o = hash.get(k); + storeObject(k, o); + } + // remove the tmp file + file2.delete(); + } else { + Log.d(TAG, "can't create "+newdirPath); + throw new Exception(); + } + } + catch(Exception e) { + e.printStackTrace(); + // if something goes wrong during split + // remove the new directory + deleteRecursive(newdir); + // and restore original cube + success = file2.renameTo(file1); + if(success) { + Log.d(TAG,"restored original cube"); + throw new Exception("Unable to add more data - no more space left?"); + } + else throw new Exception("FATAL ON FILESYSTEM DURING ADDING MORE DATA - possible corrupted data!!!"); + } + Log.d(TAG, "explosion done"); + } + + // previously on CollisionStructure + + public String getSearchKey(Object key) throws NoSuchAlgorithmException { + // transform a key to a searchKey for the collision! + final MessageDigest messageDigest = MessageDigest.getInstance("MD5"); + messageDigest.reset(); + messageDigest.update(KryoStoreUtils.serialize(key)); + final byte[] resultByte = messageDigest.digest(); + final String result = Utils.toHexString(resultByte); + String searchKey = result.substring(0,8); + //Log.d("XXX","getSearchKey: "+searchKey+" for key "+key); + return searchKey; + } + + public String getFileFromSearchKey(String searchKey) { + String filePath = ""; + for(int i=searchKey.length();i>0;i--) { + filePath = path; + for(int j=0;j MAXFILESIZE && hash.size() > 1) { + explodeCube(file); + // then recall this method again (recursive) to use the next byte of the key and find the correct file + return getHashFromKey(searchKey); + } + } + // return + return hash; + } + + protected boolean deleteRecursive(File path) throws FileNotFoundException { + if (!path.exists()) throw new FileNotFoundException(path.getAbsolutePath()); + boolean ret = true; + if (path.isDirectory()){ + for (File f : path.listFiles()){ + ret = ret && deleteRecursive(f); + } + } + return ret && path.delete(); + } + + public void storeHashByKey(HashMap hash, String searchKey) throws Exception { + // simply serialize the hash to the file addressed by the key + String file = getFileFromSearchKey(searchKey); + KryoStoreUtils.serializeToDisk(hash, file, cipherManager); + // the file exists, according to the getHashFromKey feature, and it's not full + } + +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/KryoStoreUtils.java b/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/KryoStoreUtils.java new file mode 100755 index 0000000..dab58f9 --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/KryoStoreUtils.java @@ -0,0 +1,96 @@ +package net.rehacktive.waspdb.internals.collision; + +import com.esotericsoftware.kryo.Kryo; +import com.esotericsoftware.kryo.io.Input; +import com.esotericsoftware.kryo.io.Output; + +import net.rehacktive.waspdb.internals.cryptolayer.AESSerializer; +import net.rehacktive.waspdb.internals.cryptolayer.CipherManager; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; + + +public class KryoStoreUtils { + + private static String TAG = "KRYOSTORE"; + private static Kryo kryoInstance; + + private static Kryo getKryoInstance() { + if(kryoInstance==null) + kryoInstance = new Kryo(); + + return kryoInstance; + } + + // generic i/o + + public static void serializeToDisk(Object obj, String filename, CipherManager cipherManager) throws Exception { + try { + //Long start = System.currentTimeMillis(); + //Log.d(TAG,start+": starting serializeToDisk with password"); + + Output output = new Output(new FileOutputStream(filename)); + if(cipherManager!=null) { + AESSerializer aes = new AESSerializer(getKryoInstance().getSerializer(obj.getClass()), cipherManager); + aes.write(getKryoInstance(), output, obj); + } else { + getKryoInstance().writeObject(output, obj); + } + output.close(); + + //Long end = System.currentTimeMillis(); + //Log.d(TAG,end+": starting serializeToDisk with password"); + //Log.d(TAG,"total time (ms): "+(end-start)); + } + catch(Exception e) { + throw new Exception("\nERROR on serializeToDisk:"+e.getMessage()); + } + } + + public static Object readFromDisk(String filename, Class type, CipherManager cipherManager) throws Exception { + try { + //Long start = System.currentTimeMillis(); + //Log.d(TAG,start+": starting readFromDisk with password"); + + File f = new File(filename); + Object hash; + if(f.exists()) { + Input input = new Input(new FileInputStream(f)); + if(cipherManager!=null) { + AESSerializer aes = new AESSerializer(getKryoInstance().getDefaultSerializer(type), cipherManager); + hash = aes.read(getKryoInstance(), input, type); + } + else { + hash = getKryoInstance().readObject(input, type); + } + input.close(); + + //Long end = System.currentTimeMillis(); + //Log.d(TAG,end+": starting readFromDisk with password"); + //Log.d(TAG,"total time (ms): "+(end-start)); + + return hash; + } + else { + throw new Exception("\nERROR on readFromDisk: can't find "+filename); + } + } + catch(Exception e) { + throw new Exception("\nERROR on readFromDisk:"+e.getMessage()); + } + } + + // serializer for keys + public static byte[] serialize(Object o) { + byte[] ret = new byte[4096]; + Output output = new Output(ret); + getKryoInstance().writeObject(output, o); + return output.toBytes(); + } + +// public static Object cloneObject(Object obj) { +// return getKryoInstance().copy(obj); +// } +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/exceptions/KeyAlreadyExistsException.java b/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/exceptions/KeyAlreadyExistsException.java new file mode 100755 index 0000000..19aa36d --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/exceptions/KeyAlreadyExistsException.java @@ -0,0 +1,9 @@ +package net.rehacktive.waspdb.internals.collision.exceptions; + +public class KeyAlreadyExistsException extends Exception { + + public KeyAlreadyExistsException(String string) { + super(string); + } + +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/exceptions/KeyNotFoundException.java b/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/exceptions/KeyNotFoundException.java new file mode 100755 index 0000000..f16bd7e --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/internals/collision/exceptions/KeyNotFoundException.java @@ -0,0 +1,9 @@ +package net.rehacktive.waspdb.internals.collision.exceptions; + +public class KeyNotFoundException extends Exception { + + public KeyNotFoundException(String string) { + super(string); + } + +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/internals/cryptolayer/AESSerializer.java b/waspdb/src/main/java/net/rehacktive/waspdb/internals/cryptolayer/AESSerializer.java new file mode 100755 index 0000000..608c2d1 --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/internals/cryptolayer/AESSerializer.java @@ -0,0 +1,51 @@ +package net.rehacktive.waspdb.internals.cryptolayer; + +import com.esotericsoftware.kryo.Kryo; +import com.esotericsoftware.kryo.KryoException; +import com.esotericsoftware.kryo.Serializer; +import com.esotericsoftware.kryo.io.Input; +import com.esotericsoftware.kryo.io.Output; + +import java.io.IOException; + +import javax.crypto.Cipher; +import javax.crypto.CipherInputStream; +import javax.crypto.CipherOutputStream; + +public class AESSerializer extends Serializer { + + private final Serializer serializer; + private CipherManager cipherManager; + + public AESSerializer(Serializer serializer, CipherManager cm) { + this.serializer = serializer; + this.cipherManager = cm; + //Security.addProvider(new BouncyCastleProvider()); + } + + public void write(Kryo kryo, Output output, Object object) { + try { + CipherOutputStream cipherStream = new CipherOutputStream(output, cipherManager.getCipher(Cipher.ENCRYPT_MODE)); + + Output cipherOutput = new Output(cipherStream) { + public void close() throws KryoException { + // Don't allow the CipherOutputStream to close the output. + } + }; + kryo.writeObject(cipherOutput, object, serializer); + cipherOutput.flush(); + + cipherStream.close(); + } catch (IOException ex) { + throw new KryoException(ex); + } + + } + + public Object read(Kryo kryo, Input input, Class type) { + CipherInputStream cipherInput = new CipherInputStream(input, cipherManager.getCipher(Cipher.DECRYPT_MODE)); + return kryo.readObject(new Input(cipherInput), type, serializer); + } + + +} \ No newline at end of file diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/internals/cryptolayer/CipherManager.java b/waspdb/src/main/java/net/rehacktive/waspdb/internals/cryptolayer/CipherManager.java new file mode 100644 index 0000000..66d78ac --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/internals/cryptolayer/CipherManager.java @@ -0,0 +1,70 @@ +package net.rehacktive.waspdb.internals.cryptolayer; + +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.Key; +import java.security.NoSuchAlgorithmException; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.KeySpec; + +import javax.crypto.Cipher; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.SecretKeySpec; + +/** + * Created by stefano on 06/08/2014. + */ +public class CipherManager { + + private int ITERATIONS = 10000; + private int KEYSIZE = 256; + + public static String algorithm = "PBEWITHSHA256AND256BITAES-CBC-BC"; + + protected Key key; + + protected static CipherManager instance = null; + + private CipherManager() { + // Exists only to defeat instantiation. + } + + public static CipherManager getInstance(char[] p, byte[] s) { + if (instance == null) { + instance = new CipherManager(); + try { + instance.generateSK(p, s); + } + catch(Exception e) { + e.printStackTrace(); + return null; + } + } + return instance; + } + + private void generateSK(char[] passPhrase, byte[] salt) throws NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidAlgorithmParameterException, InvalidKeyException { + SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(algorithm); + + KeySpec spec = new PBEKeySpec(passPhrase,salt,ITERATIONS, KEYSIZE); + SecretKey secretKey = secretKeyFactory.generateSecret(spec); + + key = new SecretKeySpec(secretKey.getEncoded(), algorithm); + } + + protected Cipher getCipher(int mode) { + try { + Cipher cipher = Cipher.getInstance(algorithm); + cipher.init(mode, key); + + return cipher; + }catch (Exception e) { + e.printStackTrace(); + return null; + } + } + +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/internals/utils/Salt.java b/waspdb/src/main/java/net/rehacktive/waspdb/internals/utils/Salt.java new file mode 100644 index 0000000..474d63c --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/internals/utils/Salt.java @@ -0,0 +1,20 @@ +package net.rehacktive.waspdb.internals.utils; + +/** + * Created by stefano on 20/07/2015. + */ +public class Salt { + + private byte[] salt; + + public Salt() { + } + + public Salt(byte[] salt) { + this.salt = salt; + } + + public byte[] getSalt() { + return salt; + } +} diff --git a/waspdb/src/main/java/net/rehacktive/waspdb/internals/utils/Utils.java b/waspdb/src/main/java/net/rehacktive/waspdb/internals/utils/Utils.java new file mode 100755 index 0000000..1caf460 --- /dev/null +++ b/waspdb/src/main/java/net/rehacktive/waspdb/internals/utils/Utils.java @@ -0,0 +1,77 @@ +package net.rehacktive.waspdb.internals.utils; + +import net.rehacktive.waspdb.internals.cryptolayer.CipherManager; + +import java.io.File; +import java.io.FileNotFoundException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; + +import javax.crypto.SecretKeyFactory; + + +public class Utils { + + public static String md5(String s) throws NoSuchAlgorithmException { + MessageDigest messageDigest; + try { + messageDigest = MessageDigest.getInstance("MD5"); + messageDigest.reset(); + messageDigest.update(s.getBytes()); + byte[] resultByte = messageDigest.digest(); + String result = toHexString(resultByte); + return result; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + throw e; + } + } + + public static String toHexString(byte[] bytes) { + char[] hexArray = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; + char[] hexChars = new char[bytes.length * 2]; + int v; + for ( int j = 0; j < bytes.length; j++ ) { + v = bytes[j] & 0xFF; + hexChars[j*2] = hexArray[v/16]; + hexChars[j*2 + 1] = hexArray[v%16]; + } + return new String(hexChars); + } + + public static boolean isEmpty(String s) { + return s==null || s.trim().equals(""); + } + + public static boolean checkForCryptoAvailable() { + try { +// Security.addProvider(new BouncyCastleProvider()); +// for(String s : Security.getAlgorithms("Cipher")) +// System.out.println(s); + SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(CipherManager.algorithm); + return true; + } catch (NoSuchAlgorithmException e) { + return false; + } + } + + public static boolean deleteRecursive(File path) throws FileNotFoundException { + if (!path.exists()) throw new FileNotFoundException(path.getAbsolutePath()); + boolean ret = true; + if (path.isDirectory()){ + for (File f : path.listFiles()){ + ret = ret && deleteRecursive(f); + } + } + return ret && path.delete(); + } + + + public static Salt generateSalt() { + SecureRandom sr = new SecureRandom(); + byte[] output = new byte[256]; + sr.nextBytes(output); + return new Salt(output); + } +} diff --git a/waspdb/src/main/res/values/strings.xml b/waspdb/src/main/res/values/strings.xml new file mode 100644 index 0000000..08ed9dc --- /dev/null +++ b/waspdb/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + WaspDb +