Cipher so

Providing a simple way to keep your secure info safe for android app development.

A simple way to encrypt your secure data like passwords into a native .so library.

How it works?

All the key-values will be auto package into a native library during the compile time. Then your can obtain them from the Java interface generated by Cipher so.

Features

Encrypt secure info in a native library via easy configs
Reflection free

Usages

Installation

Step 1. in the root build.gradle:

Add maven { url 'https://jitpack.io' } resposity and classpath 'com.github.MEiDIK:Cipher.so:dev-SNAPSHOT' dependency into the buildscript:

buildscript {
    repositories {
        google()
        maven { url 'https://jitpack.io' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.github.MEiDIK:Cipher.so:dev-SNAPSHOT'
    }
}
Step 2. in the app module build.gradle:

Add apply plugin:'cipher.so' before(VERY IMPORTANT) apply plugin: 'com.android.application'

apply plugin: 'cipher.so'
apply plugin: 'com.android.application'

That's all, Cipher.so is ready to GO.

Configuration

In your app module build.gradle, add the follow-like configs to save key-values.

cipher.so {
    keys {
        hello {
            value = 'Hello From Cipher.so?'
        }
        httpsKey {
            value = 'htkdjfkj@https2017now'
        }
        数据库密码 {
            value = '今天天气不错??'
        }
        ...
    }
    encryptSeed = 'HelloSecretKey' //Secret key used for encryption
}

Then Rebuild to generate the Java Interface.

3. Call In Java/Kotlin

String hello = CipherClient.hello();
String httpsKey = CipherClient.httpsKey();
String dbKey = CipherClient.数据库密码();

Todos

  • Encrypt data in .so-lib
  • Prevent dynamic attacks
    • Check Signature
    • More
  • Support different Application varients

GitHub