diff options
| author | Simon L. B. Nielsen <simon@FreeBSD.org> | 2008-09-21 14:56:30 +0000 | 
|---|---|---|
| committer | Simon L. B. Nielsen <simon@FreeBSD.org> | 2008-09-21 14:56:30 +0000 | 
| commit | bb1499d2aac1d25a95b8573ff425751f06f159e1 (patch) | |
| tree | a136b5b2317abe8eb83b021afe5e088230fd67e2 /apps/dsa.c | |
| parent | ee266f1253f9cc49430572463d26f72910dfb49e (diff) | |
Diffstat (limited to 'apps/dsa.c')
| -rw-r--r-- | apps/dsa.c | 42 | 
1 files changed, 18 insertions, 24 deletions
| diff --git a/apps/dsa.c b/apps/dsa.c index d503031ec3852..7518a2fe964a6 100644 --- a/apps/dsa.c +++ b/apps/dsa.c @@ -87,6 +87,7 @@   * -camellia128 - encrypt output if PEM format   * -camellia192 - encrypt output if PEM format   * -camellia256 - encrypt output if PEM format + * -seed        - encrypt output if PEM format   * -text	- print a text version   * -modulus	- print the DSA public key   */ @@ -219,6 +220,9 @@ bad:  		BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");  		BIO_printf(bio_err,"                 encrypt PEM output with cbc camellia\n");  #endif +#ifndef OPENSSL_NO_SEED +		BIO_printf(bio_err," -seed           encrypt PEM output with cbc seed\n"); +#endif  		BIO_printf(bio_err," -text           print the key in text\n");  		BIO_printf(bio_err," -noout          don't print key out\n");  		BIO_printf(bio_err," -modulus        print the DSA public value\n"); @@ -236,37 +240,27 @@ bad:  		goto end;  	} -	in=BIO_new(BIO_s_file());  	out=BIO_new(BIO_s_file()); -	if ((in == NULL) || (out == NULL)) +	if (out == NULL)  		{  		ERR_print_errors(bio_err);  		goto end;  		} -	if (infile == NULL) -		BIO_set_fp(in,stdin,BIO_NOCLOSE); -	else -		{ -		if (BIO_read_filename(in,infile) <= 0) -			{ -			perror(infile); -			goto end; -			} -		} -  	BIO_printf(bio_err,"read DSA key\n"); -	if	(informat == FORMAT_ASN1) { -		if(pubin) dsa=d2i_DSA_PUBKEY_bio(in,NULL); -		else dsa=d2i_DSAPrivateKey_bio(in,NULL); -	} else if (informat == FORMAT_PEM) { -		if(pubin) dsa=PEM_read_bio_DSA_PUBKEY(in,NULL, NULL, NULL); -		else dsa=PEM_read_bio_DSAPrivateKey(in,NULL,NULL,passin); -	} else -		{ -		BIO_printf(bio_err,"bad input format specified for key\n"); -		goto end; -		} +	{ +		EVP_PKEY	*pkey; +		if (pubin) +			pkey = load_pubkey(bio_err, infile, informat, 1, +				passin, e, "Public Key"); +		else +			pkey = load_key(bio_err, infile, informat, 1, +				passin, e, "Private Key"); + +		if (pkey != NULL) +		dsa = pkey == NULL ? NULL : EVP_PKEY_get1_DSA(pkey); +		EVP_PKEY_free(pkey); +	}  	if (dsa == NULL)  		{  		BIO_printf(bio_err,"unable to load Key\n"); | 
