Android Secure XMPP/Jabber Messenger (for European Company). Adding secure solutions to already implemented XMPP/Jabber protocol. https://play.google.com/store/apps/details?id=com.xsecure.encrypted.chat&hl=en_US&gl=US Technologies and tools: - Java 8; - C/C++; - Android Studio; - Android SDK; - Android NDK; - XMPP/Jabber protocol; - OpenSSL; - Olm (Double-Ratchet protocol); - SQLite cipher package; - gradle; - CMake; - Git; Activity: - Build of OpenSSL for Android platform; - Native integration of OpenSSL in the Secure XMPP/Jabber Messenger (JNI access); - Adding native OpenSSL-based crypto functionality: - SHA256; - SHA512; - ECDH (using NID_X9_62_prime256v1/NID_secp256k1); - AES256-CBC; - Base64; - Strong encrypted login, based on native OpenSSL-based crypto functionality: - SHA512; - Encryption of SQLite Database, using OpenSSL, based on: net.zetetic:android-database-sqlcipher package, that uses: - AES256-CBC; - Native SSL connect to Jabber Server(s) (or any server, using SSL protocol) (using native OpenSSL functionality) (messenger-to-server secure connection) using protocols: - TLSv1.2; - TLSv1.3; - Implementing the contact-to-contact shared secret generation, using ECDSA (over XMPP/Jabber protocol): ECDH protocol, using Elliptic Curve: NID_X9_62_prime256v1 (NID_secp256k1); Generated contact-to-contact shared secret is used for base initializing of contact-to-contact Double-Ratchet protocol: https://signal.org/docs/specifications/doubleratchet/ - Integration the Double-Ratchet Algorithm (based on olm) in the Secure XMPP/Jabber Messenger and integration Double-Ratchet Algorithm in the the XMPP/Jabber protocol (contact-to-contact encryption), using the olm sdk: https://gitlab.matrix.org/matrix-org/olm Olm uses: - EC 25519 (X25519) - used by ECDH during every generation of a new Shared Secret; - AES256-CBC - Encryption of message, using new Shared Secret; - HMAC-SHA256 - hmac for every message; Secure XMPP/Jabber Messenger(s) provides regular synchronizing of the Double-Ratchet Protocol, for the same contact-to-contact shared secret usage; - PEM; - PKCS12 (container, encrypted, by AES-256-CBC); - Adding usage of Dagger (dependency injection framework for Java, Kotlin, and Android): https://dagger.dev/; - Multi-platform (Windows/Linux/Android) build of WebRTC, using depot_tools (for following integration);