diff --git a/csidh/Makefile b/csidh/Makefile index eb654ef..0617cbe 100644 --- a/csidh/Makefile +++ b/csidh/Makefile @@ -28,6 +28,7 @@ $(BUILD_DIR)/%.o: %.s all: $(CODE_OBJ) $(AR) $(BUILD_DIR)/libcsidh.a $^ $(RANLIB) $(BUILD_DIR)/libcsidh.a + $(CC) -o $(BUILD_DIR)/test test/main.c -L$(BUILD_DIR) -lcsidh clean: rm -rf build diff --git a/csidh/test/main.c b/csidh/test/main.c new file mode 100644 index 0000000..7244a15 --- /dev/null +++ b/csidh/test/main.c @@ -0,0 +1,40 @@ +#include +#include +#include +#include "../ref/csidh/csidh.h" + +static void u512_print(u512 const *x) +{ + for (size_t i = 63; i < 64; --i) + printf("%02hhx", i[(unsigned char *) x->c]); + printf("\n"); +} + +static void fp_print(fp const *x) +{ + u512 y; + fp_dec(&y, x); + u512_print(&y); +} + +int main() { + for(size_t i=0; i<1000; i++) { + private_key prA, prB; + public_key pkA, pkB; + public_key shA, shB; + + // private key + csidh_private(&prA); + csidh_private(&prB); + + // public key + csidh(&pkA, &base, &prA); + csidh(&pkB, &base, &prB); + + //csidh + csidh(&shA, &pkA, &prB); + csidh(&shB, &pkB, &prA); + fp_print(&shA.A); + assert(memcmp(&shA, &shB, sizeof(shB))==0); + } +}