From 31611dc9dc69fc5b46df45139d57fa350e74508f Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 13 Feb 2025 00:36:54 +0100 Subject: [PATCH 1/4] Remove redundant define --- main.c | 1 - 1 file changed, 1 deletion(-) diff --git a/main.c b/main.c index ad65852..5403cad 100644 --- a/main.c +++ b/main.c @@ -5,7 +5,6 @@ #include #define LED_PIN PD6 -#define RSA_16 void exit_blink() { for (int i = 0; i < 4; i++) { From e6e63f2d32b7d44e81f79ce1d6f5844660fbb3af Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 13 Feb 2025 00:37:32 +0100 Subject: [PATCH 2/4] Seed PRNG at the top of main. Remove redundant printf --- main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/main.c b/main.c index 5403cad..56357b3 100644 --- a/main.c +++ b/main.c @@ -26,8 +26,7 @@ void enter_blink() { int main() { SystemInit(); - - printf("Entering...\n"); + sprand(0); funGpioInitAll(); funPinMode(LED_PIN, GPIO_Speed_10MHz | GPIO_CNF_OUT_PP); From 563778716c611570165400778dd9bfeb3d7bcb35 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 13 Feb 2025 00:38:24 +0100 Subject: [PATCH 3/4] Defalt initialize q to p, e to 0. The following loop will properly assign them. --- main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index 56357b3..205e45c 100644 --- a/main.c +++ b/main.c @@ -34,7 +34,7 @@ int main() { enter_blink(); uint64_t p = gen_prime(1 << 15, 1 << 16); - uint64_t q = gen_prime(1 << 15, 1 << 16); + uint64_t q = p; while (p == q) p = gen_prime(1 << 15, 1 << 16); @@ -42,7 +42,7 @@ int main() { uint64_t phi_n = (p - 1) * (q - 1); // 'e' is public. E for encrypt. - uint64_t e = prand_range(3, phi_n - 1); + uint64_t e = 0; while (gcd(e, phi_n) != 1) e = prand_range(3, phi_n - 1); // 'd' is our private key. D as in decrypt From 6b64e0c18b02c3caf72313cdac979694b3fcd865 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Thu, 13 Feb 2025 01:16:52 +0100 Subject: [PATCH 4/4] Hardcode broken parameters for now --- main.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/main.c b/main.c index 205e45c..29770df 100644 --- a/main.c +++ b/main.c @@ -33,10 +33,15 @@ int main() { enter_blink(); +#ifdef RANDOM uint64_t p = gen_prime(1 << 15, 1 << 16); uint64_t q = p; while (p == q) p = gen_prime(1 << 15, 1 << 16); +#else + uint64_t p = 56857; + uint64_t q = 47963; +#endif uint64_t n = p * q; uint64_t phi_n = (p - 1) * (q - 1);