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