1. Providing DVR Retrieval API
Providing a REST API to retrieve the DVR
zkpass-client Integration
...
//
// Step 1: Instantiate the zkpass_client object.
//
let zkpass_client = ZkPassClient::new(
"", // This is the zkPass service URL, we don't provide the value because it's not needed on signing DVR flow
ZkPassApiKey {
api_key: "".to_string(),
secret_api_key: "".to_string(),
},
);
//
// Step 2: Call zkpass_client.get_query_engine_version_info.
// The version info is needed for DVR object creation.
//
let query_engine_version_info = zkpass_client.get_query_engine_version_info();
//
// Step 3: Create the DVR object
//
let dvr = DataVerificationRequest {
zkvm: String::from(zkvm),
dvr_title: String::from("My DVR"),
dvr_id: Uuid::new_v4().to_string(),
query_engine_ver: query_engine_version_info.0,
query_method_ver: query_engine_version_info.1,
query: serde_json::to_string(&query).unwrap(),
user_data_requests: wrap_single_user_data_input(UserDataRequest {
user_data_url: Some(String::from("https://hostname/api/user_data/")),
user_data_verifying_key: PublicKeyOption::PublicKey(issuer_pubkey()),
}),
dvr_verifying_key: Some(PublicKeyOption::PublicKey(verifier_pubkey())),
};
//
// Step 4: Call zkpass_client.sign_data_to_jws_token.
// to digitally-sign the dvr data.
//
let dvr_token = zkpass_client
.sign_data_to_jws_token(
VERIFIER_PRIVKEY,
json!(dvr.clone()),
Some(ep))
.unwrap();
...Last updated