X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=apps%2Fpkcs8.c;h=15b8e6a08417f903138abfd3f9db92313de6c9c2;hp=125bf6158ac894227670e60f1e4ca1bbee54a33e;hb=6e9fa57c6ddde7df49983251373a05cd663aac22;hpb=033585175485077bf7f5bbb352fd4f162d0c235f diff --git a/apps/pkcs8.c b/apps/pkcs8.c index 125bf6158a..15b8e6a084 100644 --- a/apps/pkcs8.c +++ b/apps/pkcs8.c @@ -67,7 +67,7 @@ typedef enum OPTION_choice { OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_INFORM, OPT_OUTFORM, OPT_ENGINE, OPT_IN, OPT_OUT, - OPT_TOPK8, OPT_NOITER, OPT_NOCRYPT, OPT_NOOCT, OPT_NSDB, OPT_EMBED, + OPT_TOPK8, OPT_NOITER, OPT_NOCRYPT, #ifndef OPENSSL_NO_SCRYPT OPT_SCRYPT, OPT_SCRYPT_N, OPT_SCRYPT_R, OPT_SCRYPT_P, #endif @@ -83,10 +83,6 @@ OPTIONS pkcs8_options[] = { {"topk8", OPT_TOPK8, '-', "Output PKCS8 file"}, {"noiter", OPT_NOITER, '-', "Use 1 as iteration count"}, {"nocrypt", OPT_NOCRYPT, '-', "Use or expect unencrypted private key"}, - {"nooct", OPT_NOOCT, '-', "Use (nonstandard) no octet format"}, - {"nsdb", OPT_NSDB, '-', "Use (nonstandard) DSA Netscape DB format"}, - {"embed", OPT_EMBED, '-', - "Use (nonstandard) embedded DSA parameters format"}, {"v2", OPT_V2, 's', "Use PKCS#5 v2.0 and cipher"}, {"v1", OPT_V1, 's', "Use PKCS#5 v1.5 and cipher"}, {"v2prf", OPT_V2PRF, 's'}, @@ -115,9 +111,12 @@ int pkcs8_main(int argc, char **argv) const EVP_CIPHER *cipher = NULL; char *infile = NULL, *outfile = NULL; char *passinarg = NULL, *passoutarg = NULL, *prog; - char pass[50], *passin = NULL, *passout = NULL, *p8pass = NULL; +#ifndef OPENSSL_NO_UI + char pass[50]; +#endif + char *passin = NULL, *passout = NULL, *p8pass = NULL; OPTION_CHOICE o; - int nocrypt = 0, ret = 1, iter = PKCS12_DEFAULT_ITER, p8_broken = PKCS8_OK; + int nocrypt = 0, ret = 1, iter = PKCS12_DEFAULT_ITER; int informat = FORMAT_PEM, outformat = FORMAT_PEM, topk8 = 0, pbe_nid = -1; int private = 0; #ifndef OPENSSL_NO_SCRYPT @@ -159,15 +158,6 @@ int pkcs8_main(int argc, char **argv) case OPT_NOCRYPT: nocrypt = 1; break; - case OPT_NOOCT: - p8_broken = PKCS8_NO_OCTET; - break; - case OPT_NSDB: - p8_broken = PKCS8_NS_DB; - break; - case OPT_EMBED: - p8_broken = PKCS8_EMBEDDED_PARAM; - break; case OPT_V2: if (!opt_cipher(opt_arg(), &cipher)) goto opthelp; @@ -203,9 +193,9 @@ int pkcs8_main(int argc, char **argv) break; #ifndef OPENSSL_NO_SCRYPT case OPT_SCRYPT: - scrypt_N = 1024; + scrypt_N = 16384; scrypt_r = 8; - scrypt_p = 16; + scrypt_p = 1; if (cipher == NULL) cipher = EVP_aes_256_cbc(); break; @@ -249,7 +239,7 @@ int pkcs8_main(int argc, char **argv) pkey = load_key(infile, informat, 1, passin, e, "key"); if (!pkey) goto end; - if ((p8inf = EVP_PKEY2PKCS8_broken(pkey, p8_broken)) == NULL) { + if ((p8inf = EVP_PKEY2PKCS8(pkey)) == NULL) { BIO_printf(bio_err, "Error converting key\n"); ERR_print_errors(bio_err); goto end; @@ -285,13 +275,18 @@ int pkcs8_main(int argc, char **argv) } if (passout) p8pass = passout; - else { + else if (1) { +#ifndef OPENSSL_NO_UI p8pass = pass; if (EVP_read_pw_string (pass, sizeof pass, "Enter Encryption Password:", 1)) { X509_ALGOR_free(pbe); goto end; } + } else { +#endif + BIO_printf(bio_err, "Password required\n"); + goto end; } app_RAND_load_file(NULL, 0); p8 = PKCS8_set0_pbe(p8pass, strlen(p8pass), p8inf, pbe); @@ -343,9 +338,14 @@ int pkcs8_main(int argc, char **argv) } if (passin) p8pass = passin; - else { + else if (1) { +#ifndef OPENSSL_NO_UI p8pass = pass; EVP_read_pw_string(pass, sizeof pass, "Enter Password:", 0); + } else { +#endif + BIO_printf(bio_err, "Password required\n"); + goto end; } p8inf = PKCS8_decrypt(p8, p8pass, strlen(p8pass)); } @@ -362,31 +362,6 @@ int pkcs8_main(int argc, char **argv) goto end; } - if (p8inf->broken) { - BIO_printf(bio_err, "Warning: broken key encoding: "); - switch (p8inf->broken) { - case PKCS8_NO_OCTET: - BIO_printf(bio_err, "No Octet String in PrivateKey\n"); - break; - - case PKCS8_EMBEDDED_PARAM: - BIO_printf(bio_err, "DSA parameters included in PrivateKey\n"); - break; - - case PKCS8_NS_DB: - BIO_printf(bio_err, "DSA public key include in PrivateKey\n"); - break; - - case PKCS8_NEG_PRIVKEY: - BIO_printf(bio_err, "DSA private key value is negative\n"); - break; - - default: - BIO_printf(bio_err, "Unknown broken type\n"); - break; - } - } - assert(private); if (outformat == FORMAT_PEM) PEM_write_bio_PrivateKey(out, pkey, NULL, NULL, 0, NULL, passout);