1*b077aed3SPierre Pronchery=pod
2*b077aed3SPierre Pronchery
3*b077aed3SPierre Pronchery=head1 NAME
4*b077aed3SPierre Pronchery
5*b077aed3SPierre Proncherylife_cycle-cipher - The cipher algorithm life-cycle
6*b077aed3SPierre Pronchery
7*b077aed3SPierre Pronchery=head1 DESCRIPTION
8*b077aed3SPierre Pronchery
9*b077aed3SPierre ProncheryAll symmetric ciphers (CIPHERs) go through a number of stages in their
10*b077aed3SPierre Proncherylife-cycle:
11*b077aed3SPierre Pronchery
12*b077aed3SPierre Pronchery=over 4
13*b077aed3SPierre Pronchery
14*b077aed3SPierre Pronchery=item start
15*b077aed3SPierre Pronchery
16*b077aed3SPierre ProncheryThis state represents the CIPHER before it has been allocated.  It is the
17*b077aed3SPierre Proncherystarting state for any life-cycle transitions.
18*b077aed3SPierre Pronchery
19*b077aed3SPierre Pronchery=item newed
20*b077aed3SPierre Pronchery
21*b077aed3SPierre ProncheryThis state represents the CIPHER after it has been allocated.
22*b077aed3SPierre Pronchery
23*b077aed3SPierre Pronchery=item initialised
24*b077aed3SPierre Pronchery
25*b077aed3SPierre ProncheryThese states represent the CIPHER when it is set up and capable of processing
26*b077aed3SPierre Proncheryinput.  There are three possible initialised states:
27*b077aed3SPierre Pronchery
28*b077aed3SPierre Pronchery=over 4
29*b077aed3SPierre Pronchery
30*b077aed3SPierre Pronchery=item initialised using EVP_CipherInit
31*b077aed3SPierre Pronchery
32*b077aed3SPierre Pronchery=item initialised for decryption using EVP_DecryptInit
33*b077aed3SPierre Pronchery
34*b077aed3SPierre Pronchery=item initialised for encryption using EVP_EncryptInit
35*b077aed3SPierre Pronchery
36*b077aed3SPierre Pronchery=back
37*b077aed3SPierre Pronchery
38*b077aed3SPierre Pronchery=item updated
39*b077aed3SPierre Pronchery
40*b077aed3SPierre ProncheryThese states represent the CIPHER when it is set up and capable of processing
41*b077aed3SPierre Proncheryadditional input or generating output.  The three possible states directly
42*b077aed3SPierre Proncherycorrespond to those for initialised above.  The three different streams should
43*b077aed3SPierre Proncherynot be mixed.
44*b077aed3SPierre Pronchery
45*b077aed3SPierre Pronchery=item finaled
46*b077aed3SPierre Pronchery
47*b077aed3SPierre ProncheryThis state represents the CIPHER when it has generated output.
48*b077aed3SPierre Pronchery
49*b077aed3SPierre Pronchery=item freed
50*b077aed3SPierre Pronchery
51*b077aed3SPierre ProncheryThis state is entered when the CIPHER is freed.  It is the terminal state
52*b077aed3SPierre Proncheryfor all life-cycle transitions.
53*b077aed3SPierre Pronchery
54*b077aed3SPierre Pronchery=back
55*b077aed3SPierre Pronchery
56*b077aed3SPierre Pronchery=head2 State Transition Diagram
57*b077aed3SPierre Pronchery
58*b077aed3SPierre ProncheryThe usual life-cycle of a CIPHER is illustrated:
59*b077aed3SPierre Pronchery
60*b077aed3SPierre Pronchery=begin man
61*b077aed3SPierre Pronchery
62*b077aed3SPierre Pronchery                                 +---------------------------+
63*b077aed3SPierre Pronchery                                 |                           |
64*b077aed3SPierre Pronchery                                 |           start           |
65*b077aed3SPierre Pronchery                                 |                           |
66*b077aed3SPierre Pronchery                                 +---------------------------+   + - - - - - - - - - - - - - +
67*b077aed3SPierre Pronchery                                       |                         '  any of the initialised   '
68*b077aed3SPierre Pronchery                                       | EVP_CIPHER_CTX_new      ' updated or finaled states '
69*b077aed3SPierre Pronchery                                       v                         '                           '
70*b077aed3SPierre Pronchery                                 +---------------------------+   + - - - - - - - - - - - - - +
71*b077aed3SPierre Pronchery                                 |                           |      |
72*b077aed3SPierre Pronchery                                 |           newed           |      | EVP_CIPHER_CTX_reset
73*b077aed3SPierre Pronchery                                 |                           | <----+
74*b077aed3SPierre Pronchery                                 +---------------------------+
75*b077aed3SPierre Pronchery                                    |   |                 |
76*b077aed3SPierre Pronchery                          +---------+   |                 +---------+
77*b077aed3SPierre Pronchery          EVP_DecryptInit |             | EVP_CipherInit            | EVP_EncryptInit
78*b077aed3SPierre Pronchery                          v             v                           v
79*b077aed3SPierre Pronchery +---------------------------+   +---------------------------+   +---------------------------+
80*b077aed3SPierre Pronchery |                           |   |                           |   |                           |
81*b077aed3SPierre Pronchery |        initialised        |   |        initialised        |   |        initialised        |
82*b077aed3SPierre Pronchery |       for decryption      |   |                           |   |       for encryption      |
83*b077aed3SPierre Pronchery +---------------------------+   +---------------------------+   +---------------------------+
84*b077aed3SPierre Pronchery   |                                   |                                                   |
85*b077aed3SPierre Pronchery   | EVP_DecryptUpdate                 | EVP_CipherUpdate                EVP_EncryptUpdate |
86*b077aed3SPierre Pronchery   |                                   v                                                   |
87*b077aed3SPierre Pronchery   |                             +---------------------------+                             |
88*b077aed3SPierre Pronchery   |                             |                           |--------------------+        |
89*b077aed3SPierre Pronchery   |                             |          updated          |   EVP_CipherUpdate |        |
90*b077aed3SPierre Pronchery   |                             |                           | <------------------+        |
91*b077aed3SPierre Pronchery   v                             +---------------------------+                             v
92*b077aed3SPierre Pronchery +---------------------------+                         |         +---------------------------+
93*b077aed3SPierre Pronchery |                           |---------------------+   |         |                           |
94*b077aed3SPierre Pronchery |          updated          |   EVP_DecryptUpdate |   |         |          updated          |------+
95*b077aed3SPierre Pronchery |       for decryption      | <-------------------+   |         |       for encryption      |      |
96*b077aed3SPierre Pronchery +---------------------------+                         |         +---------------------------+      |
97*b077aed3SPierre Pronchery                          |            EVP_CipherFinal |            |           ^                   |
98*b077aed3SPierre Pronchery                          +-------+                    |   +--------+           |                   |
99*b077aed3SPierre Pronchery                 EVP_DecryptFinal |                    |   | EVP_EncryptFinal   +-------------------+
100*b077aed3SPierre Pronchery                                  v                    v   v                      EVP_EncryptUpdate
101*b077aed3SPierre Pronchery                                 +---------------------------+
102*b077aed3SPierre Pronchery                                 |                           |-----------------------------+
103*b077aed3SPierre Pronchery                                 |          finaled          |                             |
104*b077aed3SPierre Pronchery                                 |                           | <---------------------------+
105*b077aed3SPierre Pronchery                                 +---------------------------+   EVP_CIPHER_CTX_get_params
106*b077aed3SPierre Pronchery                                       |                             (AEAD encryption)
107*b077aed3SPierre Pronchery                                       | EVP_CIPHER_CTX_free
108*b077aed3SPierre Pronchery                                       v
109*b077aed3SPierre Pronchery                                 +---------------------------+
110*b077aed3SPierre Pronchery                                 |                           |
111*b077aed3SPierre Pronchery                                 |           freed           |
112*b077aed3SPierre Pronchery                                 |                           |
113*b077aed3SPierre Pronchery                                 +---------------------------+
114*b077aed3SPierre Pronchery
115*b077aed3SPierre Pronchery=end man
116*b077aed3SPierre Pronchery
117*b077aed3SPierre Pronchery=for html <img src="img/cipher.png">
118*b077aed3SPierre Pronchery
119*b077aed3SPierre Pronchery=head2 Formal State Transitions
120*b077aed3SPierre Pronchery
121*b077aed3SPierre ProncheryThis section defines all of the legal state transitions.
122*b077aed3SPierre ProncheryThis is the canonical list.
123*b077aed3SPierre Pronchery
124*b077aed3SPierre Pronchery=begin man
125*b077aed3SPierre Pronchery
126*b077aed3SPierre Pronchery Function Call                ---------------------------------------------- Current State -----------------------------------------------
127*b077aed3SPierre Pronchery                              start   newed    initialised   updated     finaled   initialised   updated    initialised   updated    freed
128*b077aed3SPierre Pronchery                                                                                    decryption  decryption   encryption  encryption
129*b077aed3SPierre Pronchery EVP_CIPHER_CTX_new           newed
130*b077aed3SPierre Pronchery EVP_CipherInit                    initialised initialised initialised initialised initialised initialised  initialised initialised
131*b077aed3SPierre Pronchery EVP_DecryptInit                   initialised initialised initialised initialised initialised initialised  initialised initialised
132*b077aed3SPierre Pronchery                                    decryption  decryption  decryption  decryption  decryption  decryption  decryption  decryption
133*b077aed3SPierre Pronchery EVP_EncryptInit                   initialised initialised initialised initialised initialised initialised  initialised initialised
134*b077aed3SPierre Pronchery                                    encryption  encryption  encryption  encryption  encryption  encryption  encryption  encryption
135*b077aed3SPierre Pronchery EVP_CipherUpdate                                updated     updated
136*b077aed3SPierre Pronchery EVP_DecryptUpdate                                                                   updated     updated
137*b077aed3SPierre Pronchery                                                                                    decryption  decryption
138*b077aed3SPierre Pronchery EVP_EncryptUpdate                                                                                            updated     updated
139*b077aed3SPierre Pronchery                                                                                                             encryption  encryption
140*b077aed3SPierre Pronchery EVP_CipherFinal                                             finaled
141*b077aed3SPierre Pronchery EVP_DecryptFinal                                                                                finaled
142*b077aed3SPierre Pronchery EVP_EncryptFinal                                                                                                         finaled
143*b077aed3SPierre Pronchery EVP_CIPHER_CTX_free          freed   freed       freed       freed       freed       freed       freed        freed       freed
144*b077aed3SPierre Pronchery EVP_CIPHER_CTX_reset                 newed       newed       newed       newed       newed       newed        newed       newed
145*b077aed3SPierre Pronchery EVP_CIPHER_CTX_get_params            newed    initialised   updated               initialised   updated    initialised   updated
146*b077aed3SPierre Pronchery                                                                                    decryption  decryption   encryption  encryption
147*b077aed3SPierre Pronchery EVP_CIPHER_CTX_set_params            newed    initialised   updated               initialised   updated    initialised   updated
148*b077aed3SPierre Pronchery                                                                                    decryption  decryption   encryption  encryption
149*b077aed3SPierre Pronchery EVP_CIPHER_CTX_gettable_params       newed    initialised   updated               initialised   updated    initialised   updated
150*b077aed3SPierre Pronchery                                                                                    decryption  decryption   encryption  encryption
151*b077aed3SPierre Pronchery EVP_CIPHER_CTX_settable_params       newed    initialised   updated               initialised   updated    initialised   updated
152*b077aed3SPierre Pronchery                                                                                    decryption  decryption   encryption  encryption
153*b077aed3SPierre Pronchery
154*b077aed3SPierre Pronchery=end man
155*b077aed3SPierre Pronchery
156*b077aed3SPierre Pronchery=begin html
157*b077aed3SPierre Pronchery
158*b077aed3SPierre Pronchery<table style="border:1px solid; border-collapse:collapse">
159*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">Function Call</th>
160*b077aed3SPierre Pronchery    <th style="border:1px solid" colspan="10">Current State</th></tr>
161*b077aed3SPierre Pronchery<tr><th style="border:1px solid"></th>
162*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">start</th>
163*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">newed</th>
164*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">initialised</th>
165*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">updated</th>
166*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">finaled</th>
167*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">initialised<br>decryption</th>
168*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">updated<br>decryption</th>
169*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">initialised<br>encryption</th>
170*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">updated<br>encryption</th>
171*b077aed3SPierre Pronchery    <th style="border:1px solid" align="center">freed</th></tr>
172*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CIPHER_CTX_new</th>
173*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
174*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
175*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
176*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
177*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
178*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
179*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
180*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
181*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
182*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
183*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CipherInit</th>
184*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
185*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
186*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
187*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
188*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
189*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
190*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
191*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
192*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
193*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
194*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_DecryptInit</th>
195*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
196*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
197*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
198*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
199*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
200*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
201*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
202*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
203*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
204*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
205*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_EncryptInit</th>
206*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
207*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
208*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
209*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
210*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
211*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
212*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
213*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
214*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
215*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
216*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CipherUpdate</th>
217*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
218*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
219*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated</td>
220*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated</td>
221*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
222*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
223*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
224*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
225*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
226*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
227*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_DecryptUpdate</th>
228*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
229*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
230*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
231*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
232*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
233*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>decryption</td>
234*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>decryption</td>
235*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
236*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
237*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
238*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_EncryptUpdate</th>
239*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
240*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
241*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
242*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
243*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
244*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
245*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
246*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>encryption</td>
247*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>encryption</td>
248*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
249*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CipherFinal</th>
250*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
251*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
252*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
253*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">finaled</td>
254*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
255*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
256*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
257*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
258*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
259*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
260*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_DecryptFinal</th>
261*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
262*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
263*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
264*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
265*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
266*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
267*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">finaled<br>decryption</td>
268*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
269*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
270*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
271*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_EncryptFinal</th>
272*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
273*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
274*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
275*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
276*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
277*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
278*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
279*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
280*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">finaled<br>decryption</td>
281*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
282*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CIPHER_CTX_free</th>
283*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">freed</td>
284*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">freed</td>
285*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">freed</td>
286*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">freed</td>
287*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">freed</td>
288*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">freed</td>
289*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">freed</td>
290*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">freed</td>
291*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">freed</td>
292*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
293*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CIPHER_CTX_reset</th>
294*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
295*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
296*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
297*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
298*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
299*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
300*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
301*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
302*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
303*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
304*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CIPHER_CTX_get_params</th>
305*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
306*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
307*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
308*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated</td>
309*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
310*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
311*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>decryption</td>
312*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
313*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>encryption</td>
314*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
315*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CIPHER_CTX_set_params</th>
316*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
317*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
318*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
319*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated</td>
320*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
321*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
322*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>decryption</td>
323*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
324*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>encryption</td>
325*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
326*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CIPHER_CTX_gettable_params</th>
327*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
328*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
329*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
330*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated</td>
331*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
332*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
333*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>decryption</td>
334*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
335*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>encryption</td>
336*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
337*b077aed3SPierre Pronchery<tr><th style="border:1px solid" align="left">EVP_CIPHER_CTX_settable_params</th>
338*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
339*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">newed</td>
340*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised</td>
341*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated</td>
342*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td>
343*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>decryption</td>
344*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>decryption</td>
345*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">initialised<br>encryption</td>
346*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center">updated<br>encryption</td>
347*b077aed3SPierre Pronchery    <td style="border:1px solid" align="center"></td></tr>
348*b077aed3SPierre Pronchery</table>
349*b077aed3SPierre Pronchery
350*b077aed3SPierre Pronchery=end html
351*b077aed3SPierre Pronchery
352*b077aed3SPierre Pronchery=head1 NOTES
353*b077aed3SPierre Pronchery
354*b077aed3SPierre ProncheryAt some point the EVP layer will begin enforcing the transitions described
355*b077aed3SPierre Proncheryherein.
356*b077aed3SPierre Pronchery
357*b077aed3SPierre Pronchery=head1 SEE ALSO
358*b077aed3SPierre Pronchery
359*b077aed3SPierre ProncheryL<provider-cipher(7)>, L<EVP_EncryptInit(3)>
360*b077aed3SPierre Pronchery
361*b077aed3SPierre Pronchery=head1 COPYRIGHT
362*b077aed3SPierre Pronchery
363*b077aed3SPierre ProncheryCopyright 2021 The OpenSSL Project Authors. All Rights Reserved.
364*b077aed3SPierre Pronchery
365*b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License").  You may not use
366*b077aed3SPierre Proncherythis file except in compliance with the License.  You can obtain a copy
367*b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at
368*b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>.
369*b077aed3SPierre Pronchery
370*b077aed3SPierre Pronchery=cut
371