This time my question isn't out of necessity, but rather curiosity. I've been playing around with calculating the Session Key, and the IV for an SSL connection for a man-in-the-middle type proxy, and finally stumbled upon the EVP_CIPHER_ctx module. Inside of this struct there are two data members: unsigned char oiv[EVP_MAX_IV_LENGTH] and unsigned char iv[EVP_MAX_IV_LENGTH]. Oiv is the original IV, and IV is the current IV. I've been playing around with these two datum, and it seems to me that they never change throughout the lifetime of the application. Is this normal behavior? or should the be rather unpredictably random. The way I am calculating the vector does not rely on this data, so it's neither here nor there, but it did strike me as odd. If anyone has any comments, or input I would like to hear what is really going on here.
Looking forward to responses, Sam -- Sam Jantz Software Engineer