E2EE Android SDK Integration Guide
Overview of E2EE​
End-to-End Encryption (E2EE) adds an extra layer of security to your communications by encrypting the data transmitted between the server and client. The process begins with a key exchange where the client and server share keys for encrypting and decrypting messages. This exchange acts like a handshake and ensures that all subsequent communications are encrypted. Only the intended server and client are able to decrypt the messages.
Steps to Enable E2EE in the SDK​
1. Set Up a Custom Server for E2EE​
Initialize the Welcome SDK with a custom server for E2EE as follows:
new IncodeWelcome.Builder(this, WELCOME_API_URL, WELCOME_API_KEY, E2EE_URL)
.build();
IncodeWelcome.Builder(this, WELCOME_API_URL, WELCOME_API_KEY, E2EE_URL)
.build()
2. Enable E2EE via SessionConfig:​
SessionConfig sessionConfig = new SessionConfig.Builder()
.setE2eEncryptionEnabled(true)
.build();
val sessionConfig: SessionConfig = SessionConfig.Builder()
.setE2eEncryptionEnabled(true)
.build()
3. Pass the SessionConfig Object.​
You can pass the SessionConfig
object to IncodeWelcome
when starting a Flow
. There are two methods to do this based on the API you are using:
3.1 For Simple Flows:​
IncodeWelcome.getInstance().startOnboarding(
activityContext,
sessionConfig,
flowConfig,
onboardingListener);
IncodeWelcome.getInstance().startOnboarding(
activityContext,
sessionConfig,
flowConfig,
onboardingListener)
3.2 For Advanced Usage:​
...
IncodeWelcome.getInstance().startOnboardingSection(
activityContext,
sessionConfig,
flowConfig,
onboardingListener);
...
IncodeWelcome.getInstance().startOnboardingSection(
activityContext,
sessionConfig,
flowConfig,
onboardingListener
)