43 #ifndef VIRGIL_PYTHIA_C_H 44 #define VIRGIL_PYTHIA_C_H 46 #include "pythia_buf.h" 47 #include "pythia_buf_sizes.h" 65 int virgil_pythia_blind(
const pythia_buf_t* password, pythia_buf_t* blinded_password, pythia_buf_t* blinding_secret);
79 const pythia_buf_t* transformed_password,
const pythia_buf_t* blinding_secret,
80 pythia_buf_t* deblinded_password);
96 const pythia_buf_t* pythia_secret,
97 const pythia_buf_t* pythia_scope_secret,
98 pythia_buf_t* transformation_private_key,
99 pythia_buf_t* transformation_public_key);
115 const pythia_buf_t* blinded_password,
const pythia_buf_t* tweak,
116 const pythia_buf_t* transformation_private_key,
117 pythia_buf_t* transformed_password, pythia_buf_t* transformed_tweak);
138 const pythia_buf_t* transformed_password,
const pythia_buf_t* blinded_password,
139 const pythia_buf_t* transformed_tweak,
const pythia_buf_t* transformation_private_key,
140 const pythia_buf_t* transformation_public_key, pythia_buf_t* proof_value_c, pythia_buf_t* proof_value_u);
160 const pythia_buf_t* transformed_password,
const pythia_buf_t* blinded_password,
const pythia_buf_t* tweak,
161 const pythia_buf_t* transformation_public_key,
const pythia_buf_t* proof_value_c,
162 const pythia_buf_t* proof_value_u,
int* verified);
180 const pythia_buf_t* previous_transformation_private_key,
const pythia_buf_t* new_transformation_private_key,
181 pythia_buf_t* password_update_token);
196 const pythia_buf_t* deblinded_password,
const pythia_buf_t* password_update_token,
197 pythia_buf_t* updated_deblinded_password);
203 #endif // VIRGIL_PYTHIA_C_H int virgil_pythia_get_password_update_token(const pythia_buf_t *previous_transformation_private_key, const pythia_buf_t *new_transformation_private_key, pythia_buf_t *password_update_token)
Rotates old transformation key to new transformation key.
int virgil_pythia_verify(const pythia_buf_t *transformed_password, const pythia_buf_t *blinded_password, const pythia_buf_t *tweak, const pythia_buf_t *transformation_public_key, const pythia_buf_t *proof_value_c, const pythia_buf_t *proof_value_u, int *verified)
Verifies the output of virgil_pythia_transform().
int virgil_pythia_prove(const pythia_buf_t *transformed_password, const pythia_buf_t *blinded_password, const pythia_buf_t *transformed_tweak, const pythia_buf_t *transformation_private_key, const pythia_buf_t *transformation_public_key, pythia_buf_t *proof_value_c, pythia_buf_t *proof_value_u)
Generates proof that server possesses secret values that were used to transform password.
int virgil_pythia_compute_transformation_key_pair(const pythia_buf_t *transformation_key_id, const pythia_buf_t *pythia_secret, const pythia_buf_t *pythia_scope_secret, pythia_buf_t *transformation_private_key, pythia_buf_t *transformation_public_key)
Computes transformation private and public key.
int virgil_pythia_blind(const pythia_buf_t *password, pythia_buf_t *blinded_password, pythia_buf_t *blinding_secret)
Blinds password.
int virgil_pythia_deblind(const pythia_buf_t *transformed_password, const pythia_buf_t *blinding_secret, pythia_buf_t *deblinded_password)
Deblinds transformed_password value with previously returned blinding_secret from virgil_pythia_blind...
int virgil_pythia_update_deblinded_with_token(const pythia_buf_t *deblinded_password, const pythia_buf_t *password_update_token, pythia_buf_t *updated_deblinded_password)
Updates previously stored deblinded_password with password_update_token.
int virgil_pythia_transform(const pythia_buf_t *blinded_password, const pythia_buf_t *tweak, const pythia_buf_t *transformation_private_key, pythia_buf_t *transformed_password, pythia_buf_t *transformed_tweak)
Transforms blinded password using the private key, generated from pythia_secret + pythia_scope_secret...