Documentation
¶
Index ¶
- Variables
- func DecryptBFV(data []byte) (int64, error)
- func DecryptCKKS(data []byte) (float64, error)
- func EncryptBFV(data int64) ([]byte, error)
- func EncryptCKKS(data float64) ([]byte, error)
- func GenEvalKeyBfv(maxDegree int) rlwe.EvaluationKey
- func GenEvalKeyCkks(maxDegree int) rlwe.EvaluationKey
- func GenerateAndSetAndSaveKeys(keysFileLocation string, method Method)
- func GetBFVParamsFromServer(serverURL string) (bfv.Parameters, error)
- func GetCKKSParamsFromServer(serverURL string) (ckks.Parameters, error)
- func LoadAndSetKeys(keysFileLocation string, method Method)
- func LoadOrGenerateKeys(keysFileLocation string, method Method)
- func OpenConnection(info DBConnectionInfo) (*sql.DB, error)
- func SendComputationResultToServerBfv(url string, encryptedResult []byte) (int64, error)
- func SendComputationResultToServerCkks(url string, encryptedResult []byte) (float64, error)
- func SetEvalKeysByMethod(method Method)
- func SetupClient(ckksParams ckks.Parameters, bfvParams bfv.Parameters, ...)
- func SetupServer(ckksKeysFileLocation string, bfvKeysFileLocation string)
- func StartSecureServer(port string, certFile string, keyFile string)
- type BfvEvalKeysResult
- type CkksEvalKeysResult
- type DBConnectionInfo
- type DecryptedResultResponseFloat
- type DecryptedResultResponseInt
- type EvalKeys
- type KeyPair
- type Method
Constants ¶
This section is empty.
Variables ¶
var ( CkksKeys KeyPair BfvKeys KeyPair EvalKeysCkks EvalKeys EvalKeysBfv EvalKeys )
var BfvParams bfv.Parameters
var CkksParams ckks.Parameters
var ( HttpsServer = &http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: false}, }, } )
HttpsServer Basic https server configuration
Functions ¶
func DecryptBFV ¶
DecryptBFV Decrypts data encrypted with BVF algorithm into an int64
func DecryptCKKS ¶
DecryptCKKS Decrypts data encrypted with CKKS algorithm into a float64
func EncryptBFV ¶
EncryptBFV Encrypts float64 data into []byte using BVF algorithm
func EncryptCKKS ¶
EncryptCKKS Encrypts float64 data into []byte using CKKS algorithm
func GenEvalKeyBfv ¶
func GenEvalKeyBfv(maxDegree int) rlwe.EvaluationKey
func GenEvalKeyCkks ¶
func GenEvalKeyCkks(maxDegree int) rlwe.EvaluationKey
func GenerateAndSetAndSaveKeys ¶
GenerateAndSetAndSaveKeys Generates new KeyPair and saves it to keysFileLocation json file
func GetBFVParamsFromServer ¶
func GetBFVParamsFromServer(serverURL string) (bfv.Parameters, error)
GetBFVParamsFromServer Retrieve BFV parameters from server
func GetCKKSParamsFromServer ¶
func GetCKKSParamsFromServer(serverURL string) (ckks.Parameters, error)
GetCKKSParamsFromServer Retrieve CKKS parameters from server
func LoadAndSetKeys ¶
LoadAndSetKeys Loads KeyPair from keysFileLocation json file
func LoadOrGenerateKeys ¶
LoadOrGenerateKeys checks if keys file exists and if it does - loads it If it doesn't - generates a new keys file for specified method
func OpenConnection ¶
func OpenConnection(info DBConnectionInfo) (*sql.DB, error)
OpenConnection Opens connection to a designated database
func SendComputationResultToServerBfv ¶
SendComputationResultToServerBfv Send BFV computation results to server and get a decrypted result
func SendComputationResultToServerCkks ¶
SendComputationResultToServerCkks Send CKKS computation results to server and get a decrypted result
func SetEvalKeysByMethod ¶
func SetEvalKeysByMethod(method Method)
func SetupClient ¶
func SetupClient(ckksParams ckks.Parameters, bfvParams bfv.Parameters, ckksEvalKey rlwe.EvaluationKey, bfvEvalKey rlwe.EvaluationKey)
SetupClient Sets up CkksParams on client side and creates an Evaluator using newly set up CkksParams. Evaluation key is skipped for now
func SetupServer ¶
SetupServer Loads secret and public keys from file or generates new keys and saves them to file if such location doesn't exist. Sets up CkksParams on server side
func StartSecureServer ¶
StartSecureServer Start HTTPS server. Port must be passed as is, without ':'
Types ¶
type BfvEvalKeysResult ¶
type BfvEvalKeysResult struct {
EvalKeys string `json:"bfv_eval_keys"`
}
type CkksEvalKeysResult ¶
type CkksEvalKeysResult struct {
EvalKeys string `json:"ckks_eval_keys"`
}
type DBConnectionInfo ¶
DBConnectionInfo Struct containing all the info needed to connect to a database
func NewDBConnectionInfo ¶
func NewDBConnectionInfo(host string, port int, user string, password string, dbname string) DBConnectionInfo
NewDBConnectionInfo Creates new DBConnectionInfo struct
type DecryptedResultResponseFloat ¶
type DecryptedResultResponseFloat struct {
DecryptedResult float64 `json:"decrypted_result"`
}
type DecryptedResultResponseInt ¶
type DecryptedResultResponseInt struct {
DecryptedResult int64 `json:"decrypted_result"`
}
type EvalKeys ¶
type EvalKeys struct {
EvalKey1 rlwe.EvaluationKey
}
EvalKeys Struct containing rlwe.EvaluationKey for sending it to client
func GetBfvEvalKeysFromServer ¶
GetCKKSParamsFromServer Retrieve BFV EvalKeys from server
func GetCkksEvalKeysFromServer ¶
GetCKKSParamsFromServer Retrieve CKKS EvalKeys from server
type KeyPair ¶
KeyPair Struct containing rlwe.SecretKey and rlwe.PublicKey
func GenKeysCKKS ¶
func GenKeysCKKS() KeyPair
GenKeysCKKS Generates new KeyPair of ckks keys, returns Sk and Pk KeyPair