From 1c09320d5833fef8a4b6cc0091883fd47ea1eb1b Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 25 May 2021 16:59:19 -0700 Subject: [PATCH] ossl: Use crypto_cursor_segment(). Reviewed by: markj Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D30447 --- sys/crypto/openssl/ossl_chacha20.c | 36 ++++++++++-------------------- 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/sys/crypto/openssl/ossl_chacha20.c b/sys/crypto/openssl/ossl_chacha20.c index 7fa1a297052e..a6f56aca1f8f 100644 --- a/sys/crypto/openssl/ossl_chacha20.c +++ b/sys/crypto/openssl/ossl_chacha20.c @@ -65,15 +65,13 @@ ossl_chacha20(struct cryptop *crp, const struct crypto_session_params *csp) resid = crp->crp_payload_length; crypto_cursor_init(&cc_in, &crp->crp_buf); crypto_cursor_advance(&cc_in, crp->crp_payload_start); - inseg = crypto_cursor_segbase(&cc_in); - inlen = crypto_cursor_seglen(&cc_in); + inseg = crypto_cursor_segment(&cc_in, &inlen); if (CRYPTO_HAS_OUTPUT_BUFFER(crp)) { crypto_cursor_init(&cc_out, &crp->crp_obuf); crypto_cursor_advance(&cc_out, crp->crp_payload_output_start); } else cc_out = cc_in; - outseg = crypto_cursor_segbase(&cc_out); - outlen = crypto_cursor_seglen(&cc_out); + outseg = crypto_cursor_segment(&cc_out, &outlen); while (resid >= CHACHA_BLK_SIZE) { if (inlen < CHACHA_BLK_SIZE) { crypto_cursor_copydata(&cc_in, CHACHA_BLK_SIZE, block); @@ -111,16 +109,14 @@ ossl_chacha20(struct cryptop *crp, const struct crypto_session_params *csp) if (out == block) { crypto_cursor_copyback(&cc_out, CHACHA_BLK_SIZE, block); - outseg = crypto_cursor_segbase(&cc_out); - outlen = crypto_cursor_seglen(&cc_out); + outseg = crypto_cursor_segment(&cc_out, &outlen); } else { crypto_cursor_advance(&cc_out, todo); outseg += todo; outlen -= todo; } if (in == block) { - inseg = crypto_cursor_segbase(&cc_in); - inlen = crypto_cursor_seglen(&cc_in); + inseg = crypto_cursor_segment(&cc_in, &inlen); } else { crypto_cursor_advance(&cc_in, todo); inseg += todo; @@ -196,15 +192,13 @@ ossl_chacha20_poly1305_encrypt(struct cryptop *crp, resid = crp->crp_payload_length; crypto_cursor_init(&cc_in, &crp->crp_buf); crypto_cursor_advance(&cc_in, crp->crp_payload_start); - inseg = crypto_cursor_segbase(&cc_in); - inlen = crypto_cursor_seglen(&cc_in); + inseg = crypto_cursor_segment(&cc_in, &inlen); if (CRYPTO_HAS_OUTPUT_BUFFER(crp)) { crypto_cursor_init(&cc_out, &crp->crp_obuf); crypto_cursor_advance(&cc_out, crp->crp_payload_output_start); } else cc_out = cc_in; - outseg = crypto_cursor_segbase(&cc_out); - outlen = crypto_cursor_seglen(&cc_out); + outseg = crypto_cursor_segment(&cc_out, &outlen); while (resid >= CHACHA_BLK_SIZE) { if (inlen < CHACHA_BLK_SIZE) { crypto_cursor_copydata(&cc_in, CHACHA_BLK_SIZE, block); @@ -243,16 +237,14 @@ ossl_chacha20_poly1305_encrypt(struct cryptop *crp, if (out == block) { crypto_cursor_copyback(&cc_out, CHACHA_BLK_SIZE, block); - outseg = crypto_cursor_segbase(&cc_out); - outlen = crypto_cursor_seglen(&cc_out); + outseg = crypto_cursor_segment(&cc_out, &outlen); } else { crypto_cursor_advance(&cc_out, todo); outseg += todo; outlen -= todo; } if (in == block) { - inseg = crypto_cursor_segbase(&cc_in); - inlen = crypto_cursor_seglen(&cc_in); + inseg = crypto_cursor_segment(&cc_in, &inlen); } else { crypto_cursor_advance(&cc_in, todo); inseg += todo; @@ -368,15 +360,13 @@ ossl_chacha20_poly1305_decrypt(struct cryptop *crp, resid = crp->crp_payload_length; crypto_cursor_init(&cc_in, &crp->crp_buf); crypto_cursor_advance(&cc_in, crp->crp_payload_start); - inseg = crypto_cursor_segbase(&cc_in); - inlen = crypto_cursor_seglen(&cc_in); + inseg = crypto_cursor_segment(&cc_in, &inlen); if (CRYPTO_HAS_OUTPUT_BUFFER(crp)) { crypto_cursor_init(&cc_out, &crp->crp_obuf); crypto_cursor_advance(&cc_out, crp->crp_payload_output_start); } else cc_out = cc_in; - outseg = crypto_cursor_segbase(&cc_out); - outlen = crypto_cursor_seglen(&cc_out); + outseg = crypto_cursor_segment(&cc_out, &outlen); while (resid >= CHACHA_BLK_SIZE) { if (inlen < CHACHA_BLK_SIZE) { crypto_cursor_copydata(&cc_in, CHACHA_BLK_SIZE, block); @@ -414,16 +404,14 @@ ossl_chacha20_poly1305_decrypt(struct cryptop *crp, if (out == block) { crypto_cursor_copyback(&cc_out, CHACHA_BLK_SIZE, block); - outseg = crypto_cursor_segbase(&cc_out); - outlen = crypto_cursor_seglen(&cc_out); + outseg = crypto_cursor_segment(&cc_out, &outlen); } else { crypto_cursor_advance(&cc_out, todo); outseg += todo; outlen -= todo; } if (in == block) { - inseg = crypto_cursor_segbase(&cc_in); - inlen = crypto_cursor_seglen(&cc_in); + inseg = crypto_cursor_segment(&cc_in, &inlen); } else { crypto_cursor_advance(&cc_in, todo); inseg += todo;