implement rotation

This commit is contained in:
Paul Gerhart
2023-07-23 16:12:00 +02:00
parent 6fb0dcd867
commit ab1e399768
3 changed files with 104 additions and 8 deletions
+14 -2
View File
@@ -13,8 +13,9 @@ use rocket_okapi::{openapi, openapi_get_routes, rapidoc::*, swagger_ui::*};
use rocket::serde::json::Json;
use rocket::Request;
use ophe::core::{RatelimiterRequest,RatelimiterResponse,SetKeyHelper};
use ophe::core::{RatelimiterRequest,RatelimiterResponse,SetKeyHelper, RatelimiterRotateRequest, RatelimiterRotateResponse};
use ophe::core;
use ophe::utils;
use rocket::State;
use bls12_381::Scalar;
@@ -46,7 +47,7 @@ async fn main() {
let launch_result = rocket::build()
.manage(c_p)
.mount("/", openapi_get_routes![phe_help,get_public_parameters,set_key])
.mount("/", openapi_get_routes![phe_help,get_public_parameters,set_key, rotate_key])
.mount(
"/swagger-ui/",
make_swagger_ui(&SwaggerUIConfig {
@@ -111,6 +112,17 @@ fn set_key(request: Json<SetKeyHelper>,c_state: &State<CryptoserviceStatePointer
Json(new_c.pp)
}
#[openapi()]
#[post("/rotate_key",format = "json", data = "<request>")]
fn rotate_key(request: Json<RatelimiterRotateRequest>,c_state: &State<CryptoserviceStatePointer>) -> Json<RatelimiterRotateResponse> {
let mut c_state = c_state.write().unwrap();
let (response, k_new) = core::phe_roate_ratelimiter(&c_state.key, &request.s);
c_state.key = k_new;
Json(response)
}
#[catch(422)]
fn serialize_failed(_req: &Request) -> String {
format!("Malformed Request")