|
@@ -42,7 +42,7 @@ int main(int argc, char **argv)
|
|
|
usage();
|
|
|
return EXIT_FAILURE;
|
|
|
}
|
|
|
-
|
|
|
+ /* generating RSA key */
|
|
|
BN_dec2bn(&rsa->e, argv[1]);
|
|
|
BN_dec2bn(&rsa->d, argv[2]);
|
|
|
BN_dec2bn(&rsa->p, argv[3]);
|
|
@@ -53,13 +53,24 @@ int main(int argc, char **argv)
|
|
|
BN_mod(rsa->dmq1, rsa->d, q1, ctx);
|
|
|
BN_mod(rsa->dmp1, rsa->d, p1, ctx);
|
|
|
BN_mod_inverse(rsa->iqmp, rsa->q, rsa->p, ctx);
|
|
|
- PEM_write_RSAPrivateKey(stdout, rsa, NULL, NULL, 0, NULL, NULL);
|
|
|
+ /* PEM_write_RSAPrivateKey(stdout, rsa, NULL, NULL, 0, NULL, NULL); */
|
|
|
|
|
|
+ /* 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_CTX_free(ctx);
|
|
|
BN_free(q1);
|
|
|
BN_free(p1);
|
|
|
RSA_free(rsa);
|
|
|
|
|
|
- return 0;
|
|
|
+ return EXIT_SUCCESS;
|
|
|
}
|