diff options
author | bcook <> | 2015-09-11 14:30:23 +0000 |
---|---|---|
committer | bcook <> | 2015-09-11 14:30:23 +0000 |
commit | e2fad4e6bdd4e404b3f4c186de52078738af2271 (patch) | |
tree | cc1109842924cab95a77b6863b32de51b6d4f960 /src/usr.bin/openssl/req.c | |
parent | 7cea1ef22b79637be449efa70b99c6deaf74ef10 (diff) | |
download | openbsd-e2fad4e6bdd4e404b3f4c186de52078738af2271.tar.gz openbsd-e2fad4e6bdd4e404b3f4c186de52078738af2271.tar.bz2 openbsd-e2fad4e6bdd4e404b3f4c186de52078738af2271.zip |
Remove engine command and parameters from openssl(1).
We do not have any builtin or dynamic engines, meaning openssl(1) has
no way to use the engine command or parameters at all.
ok jsing@
Diffstat (limited to '')
-rw-r--r-- | src/usr.bin/openssl/req.c | 66 |
1 files changed, 10 insertions, 56 deletions
diff --git a/src/usr.bin/openssl/req.c b/src/usr.bin/openssl/req.c index 4e1a4757dd..5ed658bfb1 100644 --- a/src/usr.bin/openssl/req.c +++ b/src/usr.bin/openssl/req.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: req.c,v 1.6 2015/08/22 16:36:05 jsing Exp $ */ | 1 | /* $OpenBSD: req.c,v 1.7 2015/09/11 14:30:23 bcook Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -140,15 +140,13 @@ static int genpkey_cb(EVP_PKEY_CTX * ctx); | |||
140 | static int req_check_len(int len, int n_min, int n_max); | 140 | static int req_check_len(int len, int n_min, int n_max); |
141 | static int check_end(const char *str, const char *end); | 141 | static int check_end(const char *str, const char *end); |
142 | static EVP_PKEY_CTX *set_keygen_ctx(BIO * err, const char *gstr, int *pkey_type, | 142 | static EVP_PKEY_CTX *set_keygen_ctx(BIO * err, const char *gstr, int *pkey_type, |
143 | long *pkeylen, char **palgnam, | 143 | long *pkeylen, char **palgnam); |
144 | ENGINE * keygen_engine); | ||
145 | static CONF *req_conf = NULL; | 144 | static CONF *req_conf = NULL; |
146 | static int batch = 0; | 145 | static int batch = 0; |
147 | 146 | ||
148 | int | 147 | int |
149 | req_main(int argc, char **argv) | 148 | req_main(int argc, char **argv) |
150 | { | 149 | { |
151 | ENGINE *e = NULL, *gen_eng = NULL; | ||
152 | unsigned long nmflag = 0, reqflag = 0; | 150 | unsigned long nmflag = 0, reqflag = 0; |
153 | int ex = 1, x509 = 0, days = 30; | 151 | int ex = 1, x509 = 0, days = 30; |
154 | X509 *x509ss = NULL; | 152 | X509 *x509ss = NULL; |
@@ -165,9 +163,6 @@ req_main(int argc, char **argv) | |||
165 | int nodes = 0, kludge = 0, newhdr = 0, subject = 0, pubkey = 0; | 163 | int nodes = 0, kludge = 0, newhdr = 0, subject = 0, pubkey = 0; |
166 | char *infile, *outfile, *prog, *keyfile = NULL, *template = NULL, | 164 | char *infile, *outfile, *prog, *keyfile = NULL, *template = NULL, |
167 | *keyout = NULL; | 165 | *keyout = NULL; |
168 | #ifndef OPENSSL_NO_ENGINE | ||
169 | char *engine = NULL; | ||
170 | #endif | ||
171 | char *extensions = NULL; | 166 | char *extensions = NULL; |
172 | char *req_exts = NULL; | 167 | char *req_exts = NULL; |
173 | const EVP_CIPHER *cipher = NULL; | 168 | const EVP_CIPHER *cipher = NULL; |
@@ -203,21 +198,6 @@ req_main(int argc, char **argv) | |||
203 | goto bad; | 198 | goto bad; |
204 | outformat = str2fmt(*(++argv)); | 199 | outformat = str2fmt(*(++argv)); |
205 | } | 200 | } |
206 | #ifndef OPENSSL_NO_ENGINE | ||
207 | else if (strcmp(*argv, "-engine") == 0) { | ||
208 | if (--argc < 1) | ||
209 | goto bad; | ||
210 | engine = *(++argv); | ||
211 | } else if (strcmp(*argv, "-keygen_engine") == 0) { | ||
212 | if (--argc < 1) | ||
213 | goto bad; | ||
214 | gen_eng = ENGINE_by_id(*(++argv)); | ||
215 | if (gen_eng == NULL) { | ||
216 | BIO_printf(bio_err, "Can't find keygen engine %s\n", *argv); | ||
217 | goto end; | ||
218 | } | ||
219 | } | ||
220 | #endif | ||
221 | else if (strcmp(*argv, "-key") == 0) { | 201 | else if (strcmp(*argv, "-key") == 0) { |
222 | if (--argc < 1) | 202 | if (--argc < 1) |
223 | goto bad; | 203 | goto bad; |
@@ -366,9 +346,6 @@ bad: | |||
366 | BIO_printf(bio_err, " -verify verify signature on REQ\n"); | 346 | BIO_printf(bio_err, " -verify verify signature on REQ\n"); |
367 | BIO_printf(bio_err, " -modulus RSA modulus\n"); | 347 | BIO_printf(bio_err, " -modulus RSA modulus\n"); |
368 | BIO_printf(bio_err, " -nodes don't encrypt the output key\n"); | 348 | BIO_printf(bio_err, " -nodes don't encrypt the output key\n"); |
369 | #ifndef OPENSSL_NO_ENGINE | ||
370 | BIO_printf(bio_err, " -engine e use engine e, possibly a hardware device\n"); | ||
371 | #endif | ||
372 | BIO_printf(bio_err, " -subject output the request's subject\n"); | 349 | BIO_printf(bio_err, " -subject output the request's subject\n"); |
373 | BIO_printf(bio_err, " -passin private key password source\n"); | 350 | BIO_printf(bio_err, " -passin private key password source\n"); |
374 | BIO_printf(bio_err, " -key file use the private key contained in file\n"); | 351 | BIO_printf(bio_err, " -key file use the private key contained in file\n"); |
@@ -520,12 +497,8 @@ bad: | |||
520 | if ((in == NULL) || (out == NULL)) | 497 | if ((in == NULL) || (out == NULL)) |
521 | goto end; | 498 | goto end; |
522 | 499 | ||
523 | #ifndef OPENSSL_NO_ENGINE | ||
524 | e = setup_engine(bio_err, engine, 0); | ||
525 | #endif | ||
526 | |||
527 | if (keyfile != NULL) { | 500 | if (keyfile != NULL) { |
528 | pkey = load_key(bio_err, keyfile, keyform, 0, passin, e, | 501 | pkey = load_key(bio_err, keyfile, keyform, 0, passin, |
529 | "Private Key"); | 502 | "Private Key"); |
530 | if (!pkey) { | 503 | if (!pkey) { |
531 | /* | 504 | /* |
@@ -541,7 +514,7 @@ bad: | |||
541 | } | 514 | } |
542 | if (keyalg) { | 515 | if (keyalg) { |
543 | genctx = set_keygen_ctx(bio_err, keyalg, &pkey_type, &newkey, | 516 | genctx = set_keygen_ctx(bio_err, keyalg, &pkey_type, &newkey, |
544 | &keyalgstr, gen_eng); | 517 | &keyalgstr); |
545 | if (!genctx) | 518 | if (!genctx) |
546 | goto end; | 519 | goto end; |
547 | } | 520 | } |
@@ -552,7 +525,7 @@ bad: | |||
552 | } | 525 | } |
553 | if (!genctx) { | 526 | if (!genctx) { |
554 | genctx = set_keygen_ctx(bio_err, NULL, &pkey_type, &newkey, | 527 | genctx = set_keygen_ctx(bio_err, NULL, &pkey_type, &newkey, |
555 | &keyalgstr, gen_eng); | 528 | &keyalgstr); |
556 | if (!genctx) | 529 | if (!genctx) |
557 | goto end; | 530 | goto end; |
558 | } | 531 | } |
@@ -893,10 +866,6 @@ end: | |||
893 | sk_OPENSSL_STRING_free(pkeyopts); | 866 | sk_OPENSSL_STRING_free(pkeyopts); |
894 | if (sigopts) | 867 | if (sigopts) |
895 | sk_OPENSSL_STRING_free(sigopts); | 868 | sk_OPENSSL_STRING_free(sigopts); |
896 | #ifndef OPENSSL_NO_ENGINE | ||
897 | if (gen_eng) | ||
898 | ENGINE_free(gen_eng); | ||
899 | #endif | ||
900 | free(keyalgstr); | 869 | free(keyalgstr); |
901 | X509_REQ_free(req); | 870 | X509_REQ_free(req); |
902 | X509_free(x509ss); | 871 | X509_free(x509ss); |
@@ -1370,8 +1339,7 @@ check_end(const char *str, const char *end) | |||
1370 | 1339 | ||
1371 | static EVP_PKEY_CTX * | 1340 | static EVP_PKEY_CTX * |
1372 | set_keygen_ctx(BIO * err, const char *gstr, int *pkey_type, | 1341 | set_keygen_ctx(BIO * err, const char *gstr, int *pkey_type, |
1373 | long *pkeylen, char **palgnam, | 1342 | long *pkeylen, char **palgnam) |
1374 | ENGINE * keygen_engine) | ||
1375 | { | 1343 | { |
1376 | EVP_PKEY_CTX *gctx = NULL; | 1344 | EVP_PKEY_CTX *gctx = NULL; |
1377 | EVP_PKEY *param = NULL; | 1345 | EVP_PKEY *param = NULL; |
@@ -1396,19 +1364,14 @@ set_keygen_ctx(BIO * err, const char *gstr, int *pkey_type, | |||
1396 | else { | 1364 | else { |
1397 | const char *p = strchr(gstr, ':'); | 1365 | const char *p = strchr(gstr, ':'); |
1398 | int len; | 1366 | int len; |
1399 | ENGINE *tmpeng; | ||
1400 | const EVP_PKEY_ASN1_METHOD *ameth; | 1367 | const EVP_PKEY_ASN1_METHOD *ameth; |
1401 | 1368 | ||
1402 | if (p) | 1369 | if (p) |
1403 | len = p - gstr; | 1370 | len = p - gstr; |
1404 | else | 1371 | else |
1405 | len = strlen(gstr); | 1372 | len = strlen(gstr); |
1406 | /* | ||
1407 | * The lookup of a the string will cover all engines so keep | ||
1408 | * a note of the implementation. | ||
1409 | */ | ||
1410 | 1373 | ||
1411 | ameth = EVP_PKEY_asn1_find_str(&tmpeng, gstr, len); | 1374 | ameth = EVP_PKEY_asn1_find_str(NULL, gstr, len); |
1412 | 1375 | ||
1413 | if (!ameth) { | 1376 | if (!ameth) { |
1414 | BIO_printf(err, "Unknown algorithm %.*s\n", len, gstr); | 1377 | BIO_printf(err, "Unknown algorithm %.*s\n", len, gstr); |
@@ -1416,10 +1379,6 @@ set_keygen_ctx(BIO * err, const char *gstr, int *pkey_type, | |||
1416 | } | 1379 | } |
1417 | EVP_PKEY_asn1_get0_info(NULL, pkey_type, NULL, NULL, NULL, | 1380 | EVP_PKEY_asn1_get0_info(NULL, pkey_type, NULL, NULL, NULL, |
1418 | ameth); | 1381 | ameth); |
1419 | #ifndef OPENSSL_NO_ENGINE | ||
1420 | if (tmpeng) | ||
1421 | ENGINE_finish(tmpeng); | ||
1422 | #endif | ||
1423 | if (*pkey_type == EVP_PKEY_RSA) { | 1382 | if (*pkey_type == EVP_PKEY_RSA) { |
1424 | if (p) { | 1383 | if (p) { |
1425 | keylen = strtonum(p + 1, 0, LONG_MAX, &errstr); | 1384 | keylen = strtonum(p + 1, 0, LONG_MAX, &errstr); |
@@ -1470,26 +1429,21 @@ set_keygen_ctx(BIO * err, const char *gstr, int *pkey_type, | |||
1470 | } | 1429 | } |
1471 | if (palgnam) { | 1430 | if (palgnam) { |
1472 | const EVP_PKEY_ASN1_METHOD *ameth; | 1431 | const EVP_PKEY_ASN1_METHOD *ameth; |
1473 | ENGINE *tmpeng; | ||
1474 | const char *anam; | 1432 | const char *anam; |
1475 | ameth = EVP_PKEY_asn1_find(&tmpeng, *pkey_type); | 1433 | ameth = EVP_PKEY_asn1_find(NULL, *pkey_type); |
1476 | if (!ameth) { | 1434 | if (!ameth) { |
1477 | BIO_puts(err, "Internal error: can't find key algorithm\n"); | 1435 | BIO_puts(err, "Internal error: can't find key algorithm\n"); |
1478 | return NULL; | 1436 | return NULL; |
1479 | } | 1437 | } |
1480 | EVP_PKEY_asn1_get0_info(NULL, NULL, NULL, NULL, &anam, ameth); | 1438 | EVP_PKEY_asn1_get0_info(NULL, NULL, NULL, NULL, &anam, ameth); |
1481 | *palgnam = strdup(anam); | 1439 | *palgnam = strdup(anam); |
1482 | #ifndef OPENSSL_NO_ENGINE | ||
1483 | if (tmpeng) | ||
1484 | ENGINE_finish(tmpeng); | ||
1485 | #endif | ||
1486 | } | 1440 | } |
1487 | if (param) { | 1441 | if (param) { |
1488 | gctx = EVP_PKEY_CTX_new(param, keygen_engine); | 1442 | gctx = EVP_PKEY_CTX_new(param, NULL); |
1489 | *pkeylen = EVP_PKEY_bits(param); | 1443 | *pkeylen = EVP_PKEY_bits(param); |
1490 | EVP_PKEY_free(param); | 1444 | EVP_PKEY_free(param); |
1491 | } else | 1445 | } else |
1492 | gctx = EVP_PKEY_CTX_new_id(*pkey_type, keygen_engine); | 1446 | gctx = EVP_PKEY_CTX_new_id(*pkey_type, NULL); |
1493 | 1447 | ||
1494 | if (!gctx) { | 1448 | if (!gctx) { |
1495 | BIO_puts(err, "Error allocating keygen context\n"); | 1449 | BIO_puts(err, "Error allocating keygen context\n"); |