The main goal of the Netwatch team is to use the security features of the Android platform, namely the Android Keystore system, to provide a way for the enmeshed Crypto Abstraction Layer to interact with mobile devices. The Android Keystore system lets you store cryptographic keys in a secure container to make them more difficult to extract from the device. Sensitive operations are delegated to a secure processor reached through some kernel interface. The resulting architecture looks like this:
The overall goal of the project is to create a Rust-based wrapper that connects the HSM (Android Keystore) with the Crypto-Abstraction Layer provided by j&s-soft.
Note: This repository only houses the prototype designed to demonstrate the functionality of the android CAL implementation. To view the actual implementation, go to the official CAL fork repository page.
- Encryption & Decryption
 - Verification & Signing
 - Device attestation
 
- Rust Programming Language: Install the latest version of Rust on your system. You can install Rust through rustup.
 - Android Studio with the NDK and CMAKE SDK tools enabled.
 
- Clone the repository:
 
git clone https://github.com/cep-sose2024/netwatch.git- Install 
cargo-ndk 
cargo install cargo-ndk- Add android toolchain:
 
rustup target add armv7-linux-androideabi- Navigate to the prototype wrapper directory:
 
cd netwatch/prototype_rust_wrapper- Build the library:
 
cargo ndk -t arm64-v8a -o ../prototype_new/app/src/main/jniLibs build- Run the prototype Java application using Android Studio.
 
We welcome contributions from the community. Please submit a pull request if you detect any bugs, have ideas for enhancements, or would like to add new functionality.
This project is released under the MIT License.
- Special thanks to j&s-soft for providing the Crypto Abstraction Layer.
 
