# Intro Sunscreen is an ecosystem for building privacy-preserving applications using fully homomorphic encryption. This project is licensed under the terms of the GNU AGPLv3 license. If you require a different license for your application, please reach out to us. *WARNING!* This library is meant for experiments only. It has not been externally audited and is *not* intended for use in production. # Example Below, we look at how to multiply two encrypted integers together. ```rust use sunscreen::{ fhe_program, types::{bfv::Signed, Cipher}, Compiler, Error, FheRuntime, }; #[fhe_program(scheme = "bfv")] fn simple_multiply(a: Cipher, b: Cipher) -> Cipher { a * b } fn main() -> Result<(), Error> { let app = Compiler::new() .fhe_program(simple_multiply) .compile()?; let runtime = FheRuntime::new(app.params())?; let (public_key, private_key) = runtime.generate_keys()?; let a = runtime.encrypt(Signed::from(15), &public_key)?; let b = runtime.encrypt(Signed::from(5), &public_key)?; let results = runtime.run(app.get_fhe_program(simple_multiply).unwrap(), vec![a, b], &public_key)?; let c: Signed = runtime.decrypt(&results[0], &private_key)?; assert_eq!(c, 75.into()); Ok(()) } ``` # Docs * [User guide](https://docs.sunscreen.tech) * [API docs](https://docs.rs/sunscreen) # Getting help For questions about Sunscreen, join our [Discord](https://discord.gg/WHCs6jNNDS)!