]>
Commit | Line | Data |
---|---|---|
2c789c82 BM |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
b6b66573 | 5 | openssl-ecparam - EC parameter manipulation and generation |
2c789c82 BM |
6 | |
7 | =head1 SYNOPSIS | |
8 | ||
9 | B<openssl ecparam> | |
169394d4 | 10 | [B<-help>] |
e8769719 RS |
11 | [B<-inform> B<DER>|B<PEM>] |
12 | [B<-outform> B<DER>|B<PEM>] | |
13 | [B<-in> I<filename>] | |
14 | [B<-out> I<filename>] | |
2c789c82 BM |
15 | [B<-noout>] |
16 | [B<-text>] | |
17 | [B<-C>] | |
18 | [B<-check>] | |
ac2b52c6 | 19 | [B<-check_named>] |
e8769719 | 20 | [B<-name> I<arg>] |
fc1d88f0 | 21 | [B<-list_curves>] |
e8769719 RS |
22 | [B<-conv_form> I<arg>] |
23 | [B<-param_enc> I<arg>] | |
2c789c82 | 24 | [B<-no_seed>] |
e8769719 RS |
25 | [B<-rand> I<file...>] |
26 | [B<-writerand> I<file>] | |
2c789c82 | 27 | [B<-genkey>] |
e8769719 | 28 | [B<-engine> I<id>] |
2c789c82 BM |
29 | |
30 | =head1 DESCRIPTION | |
31 | ||
32 | This command is used to manipulate or generate EC parameter files. | |
33 | ||
34 | =head1 OPTIONS | |
35 | ||
36 | =over 4 | |
37 | ||
169394d4 MR |
38 | =item B<-help> |
39 | ||
40 | Print out a usage message. | |
41 | ||
e8769719 | 42 | =item B<-inform> B<DER>|B<PEM> |
2c789c82 BM |
43 | |
44 | This specifies the input format. The B<DER> option uses an ASN.1 DER encoded | |
45 | form compatible with RFC 3279 EcpkParameters. The PEM form is the default | |
1bc74519 | 46 | format: it consists of the B<DER> format base64 encoded with additional |
2c789c82 BM |
47 | header and footer lines. |
48 | ||
e8769719 | 49 | =item B<-outform> B<DER>|B<PEM> |
2c789c82 | 50 | |
7477c83e TM |
51 | This specifies the output format, the options have the same meaning and default |
52 | as the B<-inform> option. | |
2c789c82 | 53 | |
e8769719 | 54 | =item B<-in> I<filename> |
2c789c82 BM |
55 | |
56 | This specifies the input filename to read parameters from or standard input if | |
57 | this option is not specified. | |
58 | ||
e8769719 | 59 | =item B<-out> I<filename> |
2c789c82 BM |
60 | |
61 | This specifies the output filename parameters to. Standard output is used | |
62 | if this option is not present. The output filename should B<not> be the same | |
63 | as the input filename. | |
64 | ||
65 | =item B<-noout> | |
66 | ||
67 | This option inhibits the output of the encoded version of the parameters. | |
68 | ||
69 | =item B<-text> | |
70 | ||
71 | This option prints out the EC parameters in human readable form. | |
72 | ||
73 | =item B<-C> | |
74 | ||
75 | This option converts the EC parameters into C code. The parameters can then | |
35cb565a | 76 | be loaded by calling the get_ec_group_XXX() function. |
2c789c82 BM |
77 | |
78 | =item B<-check> | |
79 | ||
80 | Validate the elliptic curve parameters. | |
81 | ||
ac2b52c6 NT |
82 | =item B<-check_named> |
83 | ||
84 | Validate the elliptic name curve parameters by checking if the curve parameters | |
37f03b98 | 85 | match any built-in curves. |
ac2b52c6 | 86 | |
e8769719 | 87 | =item B<-name> I<arg> |
2c789c82 BM |
88 | |
89 | Use the EC parameters with the specified 'short' name. Use B<-list_curves> | |
90 | to get a list of all currently implemented EC parameters. | |
91 | ||
92 | =item B<-list_curves> | |
93 | ||
94 | If this options is specified B<ecparam> will print out a list of all | |
95 | currently implemented EC parameters names and exit. | |
96 | ||
97 | =item B<-conv_form> | |
98 | ||
99 | This specifies how the points on the elliptic curve are converted | |
ab0a3914 MC |
100 | into octet strings. Possible values are: B<compressed>, B<uncompressed> (the |
101 | default value) and B<hybrid>. For more information regarding | |
2c789c82 BM |
102 | the point conversion forms please read the X9.62 standard. |
103 | B<Note> Due to patent issues the B<compressed> option is disabled | |
104 | by default for binary curves and can be enabled by defining | |
105 | the preprocessor macro B<OPENSSL_EC_BIN_PT_COMP> at compile time. | |
106 | ||
e8769719 | 107 | =item B<-param_enc> I<arg> |
2c789c82 BM |
108 | |
109 | This specifies how the elliptic curve parameters are encoded. | |
110 | Possible value are: B<named_curve>, i.e. the ec parameters are | |
35ed393e | 111 | specified by an OID, or B<explicit> where the ec parameters are |
1bc74519 | 112 | explicitly given (see RFC 3279 for the definition of the |
2c789c82 | 113 | EC parameters structures). The default value is B<named_curve>. |
aebb9aac | 114 | B<Note> the B<implicitlyCA> alternative, as specified in RFC 3279, |
2c789c82 BM |
115 | is currently not implemented in OpenSSL. |
116 | ||
117 | =item B<-no_seed> | |
118 | ||
119 | This option inhibits that the 'seed' for the parameter generation | |
120 | is included in the ECParameters structure (see RFC 3279). | |
121 | ||
122 | =item B<-genkey> | |
123 | ||
35ed393e | 124 | This option will generate an EC private key using the specified parameters. |
2c789c82 | 125 | |
e8769719 | 126 | =item B<-rand> I<file...> |
2c789c82 | 127 | |
c4de074e | 128 | A file or files containing random data used to seed the random number |
3ee1eac2 | 129 | generator. |
35ed393e | 130 | Multiple files can be specified separated by an OS-dependent character. |
2c789c82 BM |
131 | The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for |
132 | all others. | |
133 | ||
e8769719 | 134 | =item B<-writerand> I<file> |
3ee1eac2 RS |
135 | |
136 | Writes random data to the specified I<file> upon exit. | |
137 | This can be used with a subsequent B<-rand> flag. | |
138 | ||
e8769719 | 139 | =item B<-engine> I<id> |
2c789c82 | 140 | |
c4de074e | 141 | Specifying an engine (by its unique B<id> string) will cause B<ecparam> |
2c789c82 BM |
142 | to attempt to obtain a functional reference to the specified engine, |
143 | thus initialising it if needed. The engine will then be set as the default | |
144 | for all available algorithms. | |
145 | ||
146 | =back | |
147 | ||
148 | =head1 NOTES | |
149 | ||
150 | PEM format EC parameters use the header and footer lines: | |
151 | ||
152 | -----BEGIN EC PARAMETERS----- | |
153 | -----END EC PARAMETERS----- | |
154 | ||
155 | OpenSSL is currently not able to generate new groups and therefore | |
1bc74519 | 156 | B<ecparam> can only create EC parameters from known (named) curves. |
2c789c82 BM |
157 | |
158 | =head1 EXAMPLES | |
159 | ||
160 | To create EC parameters with the group 'prime192v1': | |
161 | ||
627bd670 | 162 | openssl ecparam -out ec_param.pem -name prime192v1 |
2c789c82 BM |
163 | |
164 | To create EC parameters with explicit parameters: | |
165 | ||
627bd670 | 166 | openssl ecparam -out ec_param.pem -name prime192v1 -param_enc explicit |
2c789c82 BM |
167 | |
168 | To validate given EC parameters: | |
169 | ||
627bd670 | 170 | openssl ecparam -in ec_param.pem -check |
2c789c82 BM |
171 | |
172 | To create EC parameters and a private key: | |
173 | ||
627bd670 | 174 | openssl ecparam -out ec_key.pem -name prime192v1 -genkey |
2c789c82 BM |
175 | |
176 | To change the point encoding to 'compressed': | |
177 | ||
627bd670 | 178 | openssl ecparam -in ec_in.pem -out ec_out.pem -conv_form compressed |
2c789c82 BM |
179 | |
180 | To print out the EC parameters to standard output: | |
181 | ||
627bd670 | 182 | openssl ecparam -in ec_param.pem -noout -text |
2c789c82 BM |
183 | |
184 | =head1 SEE ALSO | |
185 | ||
b6b66573 DMSP |
186 | L<openssl(1)>, |
187 | L<openssl-ec(1)>, | |
188 | L<openssl-dsaparam(1)> | |
2c789c82 | 189 | |
e2f92610 RS |
190 | =head1 COPYRIGHT |
191 | ||
b6b66573 | 192 | Copyright 2003-2019 The OpenSSL Project Authors. All Rights Reserved. |
e2f92610 | 193 | |
449040b4 | 194 | Licensed under the Apache License 2.0 (the "License"). You may not use |
e2f92610 RS |
195 | this file except in compliance with the License. You can obtain a copy |
196 | in the file LICENSE in the source distribution or at | |
197 | L<https://www.openssl.org/source/license.html>. | |
198 | ||
199 | =cut |