-rw-r--r-- 945 high-ctidh-20210523/checkct.c
#include <string.h> #include <assert.h> #include "csidh.h" #include "crypto_classify.h" #include "crypto_declassify.h" int main() { private_key priv_alice, priv_bob; public_key pub_alice, pub_bob; public_key shared_alice, shared_bob; csidh_private(&priv_alice); csidh_private(&priv_bob); // just in case csidh_private isn't using randombytes: crypto_classify(&priv_alice,sizeof priv_alice); crypto_classify(&priv_bob,sizeof priv_bob); action(&pub_alice,&base,&priv_alice); action(&pub_bob,&base,&priv_bob); // could declassify public keys at this point // but the action doesn't branch based on those action(&shared_alice,&pub_bob,&priv_alice); action(&shared_bob,&pub_alice,&priv_bob); // end of constant-time testing crypto_declassify(&shared_alice,sizeof shared_alice); crypto_declassify(&shared_bob,sizeof shared_bob); assert(!memcmp(&shared_alice,&shared_bob,sizeof(public_key))); return 0; }