Virgil Security Crypto library  2.6.3
virgil_pythia_c.h
Go to the documentation of this file.
1 
43 #ifndef VIRGIL_PYTHIA_C_H
44 #define VIRGIL_PYTHIA_C_H
45 
46 #include "pythia_buf.h"
47 #include "pythia_buf_sizes.h"
48 
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52 
65 int virgil_pythia_blind(const pythia_buf_t* password, pythia_buf_t* blinded_password, pythia_buf_t* blinding_secret);
66 
67 
79  const pythia_buf_t* transformed_password, const pythia_buf_t* blinding_secret,
80  pythia_buf_t* deblinded_password);
81 
95 int virgil_pythia_compute_transformation_key_pair(const pythia_buf_t* transformation_key_id,
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);
100 
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);
118 
119 
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);
141 
142 
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);
163 
164 
180  const pythia_buf_t* previous_transformation_private_key, const pythia_buf_t* new_transformation_private_key,
181  pythia_buf_t* password_update_token);
182 
183 
196  const pythia_buf_t* deblinded_password, const pythia_buf_t* password_update_token,
197  pythia_buf_t* updated_deblinded_password);
198 
199 #ifdef __cplusplus
200 }
201 #endif
202 
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...