implement rotation
This commit is contained in:
+14
-2
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user