
=pod

=head1 NAME

pkeyparam - public key algorithm parameter processing tool

=head1 SYNOPSIS

B<openssl> B<pkeyparam>
[B<-in filename>]
[B<-out filename>]
[B<-text>]
[B<-noout>]
[B<-engine id>]

=head1 DESCRIPTION

The B<pkey> command processes public or private keys. They can be converted
between various forms and their components printed out.

=head1 COMMAND OPTIONS

=over 4

=item B<-in filename>

This specifies the input filename to read parameters from or standard input if
this option is not specified.

=item B<-out filename>

This specifies the output filename to write parameters to or standard output if
this option is not specified.

=item B<-text>

prints out the parameters in plain text in addition to the encoded version. 

=item B<-noout>

do not output the encoded version of the parameters.

=item B<-engine id>

specifying an engine (by its unique B<id> string) will cause B<pkeyparam>
to attempt to obtain a functional reference to the specified engine,
thus initialising it if needed. The engine will then be set as the default
for all available algorithms.

=back

=head1 EXAMPLE

Print out text version of parameters:

 openssl pkeyparam -in param.pem -text

=head1 NOTES

There are no B<-inform> or B<-outform> options for this command because only
PEM format is supported because the key type is determined by the PEM headers.

=head1 SEE ALSO

L<genpkey(1)|genpkey(1)>, L<rsa(1)|rsa(1)>, L<pkcs8(1)|pkcs8(1)>,
L<dsa(1)|dsa(1)>, L<genrsa(1)|genrsa(1)>, L<gendsa(1)|gendsa(1)> 

=cut
