Przeglądaj źródła

gen app: quick selection of primes for faster factorization testing.

Michele Orrù 11 lat temu
rodzic
commit
6a5fffe15a
1 zmienionych plików z 10 dodań i 25 usunięć
  1. 10 25
      src/apps/gen.c

+ 10 - 25
src/apps/gen.c

@@ -100,10 +100,18 @@ int main(int argc, char **argv)
 {
   int opt;
   RSA *rsa = RSA_new();
+  char *task;
 
   rsa->n = rsa->e = rsa->p = rsa->q = NULL;
 
   if (argc < 3) usage(EXIT_FAILURE);
+  /* quick shortcut for testing factorization */
+  if (argc == 3) {
+    task = "pub";
+    BN_dec2bn(&rsa->p, argv[1]);
+    BN_dec2bn(&rsa->q, argv[2]);
+    BN_dec2bn(&rsa->e, "65537");
+  } else task = argv[1];
 
   while ((opt = getopt(argc-1, argv+1, "d:e:N:n:p:q:")) != -1)  {
     switch (opt) {
@@ -130,33 +138,10 @@ int main(int argc, char **argv)
 
   SSL_library_init();
 
-  if (!strcmp(argv[1], "pub"))
+  if (!strcmp(task, "pub"))
     return pubkey_generation(rsa);
-  else if (!strcmp(argv[1], "priv"))
+  else if (!strcmp(task, "priv"))
     return privkey_generation(rsa);
   else
     usage(EXIT_FAILURE);
-
-  /* creating public key */
-  /*
-  EVP_PKEY *pk;
-  pk = EVP_PKEY_new();
-  EVP_PKEY_set1_RSA(pk, rsa);
-  */
-  /* creating dummy certificate */
-  /*
-  X509* crt;
-  crt = X509_new();
-  if (!X509_set_pubkey(crt, pk)) exit(EXIT_FAILURE);
-  */
-  /* PEM_write_X509(stdout, crt); */
-  /*
-  X509_free(crt);
-  EVP_PKEY_free(pk);
-  BN_free(q1);
-  BN_free(p1);
-  RSA_free(rsa);
-
-  */
-  return EXIT_SUCCESS;
 }