evplen = EVP_CIPHER_CTX_iv_length(&cc->evp);if(evplen ==0)return;#if(OPENSSL_VERSION_NUMBER < 0x00907000L)if(c->evptype == evp_rijndael) {structssh_rijndael_ctx*aesc;aesc =EVP_CIPHER_CTX_get_app_data(&cc->evp);if(aesc ==NULL) fatal("%s: no rijndael context", __func__);...
However, the way it's been made is that the EVP API is responsible for actual allocation (using the implementation'sdata_size). So when the implementation wants to get to its own private data, it has to ask the EVP API where it is, henceEVP_CIPHER_CTX_get_cipher_data(). ...