Commit 2948fbab authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Fix ctr mode properly this time....

parent 081464fa
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -206,16 +206,19 @@ skip_to_init:
			ctx->num = 0;
			ctx->num = 0;


			case EVP_CIPH_CBC_MODE:
			case EVP_CIPH_CBC_MODE:
			case EVP_CIPH_CTR_MODE:


			OPENSSL_assert(EVP_CIPHER_CTX_iv_length(ctx) <=
			OPENSSL_assert(EVP_CIPHER_CTX_iv_length(ctx) <=
					(int)sizeof(ctx->iv));
					(int)sizeof(ctx->iv));
			if(iv) memcpy(ctx->oiv, iv, EVP_CIPHER_CTX_iv_length(ctx));
			if(iv) memcpy(ctx->oiv, iv, EVP_CIPHER_CTX_iv_length(ctx));
			/* Don't reuse IV for CTR mode */
			if (EVP_CIPHER_CTX_mode(ctx) != EVP_CIPH_CTR_MODE)
			memcpy(ctx->iv, ctx->oiv, EVP_CIPHER_CTX_iv_length(ctx));
			memcpy(ctx->iv, ctx->oiv, EVP_CIPHER_CTX_iv_length(ctx));
			break;
			break;


			case EVP_CIPH_CTR_MODE:
			/* Don't reuse IV for CTR mode */
			if(iv)
				memcpy(ctx->iv, iv, EVP_CIPHER_CTX_iv_length(ctx));
			break;

			default:
			default:
			return 0;
			return 0;
			break;
			break;