opaque-sql
opaque-sql copied to clipboard
gRPC python files
Python files for gRPC. Contains OpaqueClient and OpaqueRPCListener which are instrumental in gRPC and primary actors in steps 1, 2, 3, and 4 (really everything).
In gRPC, the workflow is as follows:
- RPCListener starts spark shell
- Client performs RA with the enclaves
- Client sends query to RPCListener
- RPCListener sends query to enclaves which executes it. The encrypted results (encrypted under enclave key) are saved in a file(s) on the RPCListener
- The client asks for post-verification
- The RPCListener performs post-verification and then re-encrypts the results under the SP key and then returns it
- The SP decrypts the encrypted values returned using its own key
This does NOT work alone. OpaqueClient for example uses several ServiceProvider functions that are only in another PR.
The pull requests should be done in the following order: Key-get -> gRPC reEncryption -> gRPC ServiceProvider -> gRPC Python Files