EncryptedGsonConverter

Additional

Language
Java
Version
N/A
Created
Mar 30, 2018
Updated
Oct 19, 2018 (Retired)
Owner
Farhad Beigirad (beigirad)
Contributor
Farhad Beigirad (beigirad)
1
Activity
Badge
Generate
Download
Source code

EncryptedGsonConverter

A Retrofit Converter which based on Gson-Converter also can encrypt/decrypt JSON.

Used Encryption library for encryption output and input.

Uses instead of default gson-convertor if you don't need to encryption.

How Works?

Receive (ResponseBody)

#1. Plain text received from server:

PRpqRXhYkTxmAK0Ndh/Fg2IAV+FSiaMrQx0IgXTLdmojfsF70SMPLyUYE2XLGCWZgTKYISe+RSDFDqEwZ35N+g==
#2. Decrypt
{
 "first-name":"Farhad",
 "last-name":"Beigirad"
}

#3. Deserialize

Person class

Send (RequestBody)

#1. Java Object

Person person = new Person( "Farhad" , "Beigirad" );

#2. Serialize

{
 "first-name":"Farhad",
 "last-name":"Beigirad"
}

#3. Output text for send to server:

PRpqRXhYkTxmAK0Ndh/Fg2IAV+FSiaMrQx0IgXTLdmojfsF70SMPLyUYE2XLGCWZgTKYISe+RSDFDqEwZ35N+g==

Setup

Step #1. Add the JitPack repository to root build.gradle file:

allprojects {
    repositories {
 ...
 maven { url "https://jitpack.io" }
    }
}

Step #2. Add the dependency

dependencies {

    implementation 'com.github.beigirad:EncryptedGsonConverter:{LATEST_VERSION}'
    
}

Implementation

Encryption encryption = Encryption.getDefault("MyKey", "MySalt", new byte[16]);

retrofit = new Retrofit.Builder()
        .client(okHttpClient)
        .baseUrl(BASE_URL)
        
        // for encryption
        .addConverterFactory(GsonEncryptConverterFactory.create(encryption))
        // for non encryption
        .addConverterFactory(GsonEncryptConverterFactory.create())

        .build();

License

Copyright 2018 Farhad Beigirad

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.