opencrypto: Add a routine to copy a crypto buffer cursor
This was useful in converting armv8crypto to use buffer cursors. There
are some cases where one wants to make two passes over data, and this
provides a way to "reset" a cursor.
Reviewed by: jhb
(cherry picked from commit 09bfa5cf16
)
This commit is contained in:
parent
04df02b2f4
commit
2d7f27a4fb
@ -30,7 +30,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd May 25, 2021
|
||||
.Dd Feburary 11, 2022
|
||||
.Dt CRYPTO_BUFFER 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -99,6 +99,11 @@
|
||||
.Fn crypto_cursor_segbase "struct crypto_buffer_cursor *cc"
|
||||
.Ft size_t
|
||||
.Fn crypto_cursor_seglen "struct crypto_buffer_cursor *cc"
|
||||
.Ft void
|
||||
.Fo crypto_cursor_copy
|
||||
.Fa "const struct crypto_buffer_cursor *fromc"
|
||||
.Fa "struct crypto_buffer_cursor *toc"
|
||||
.Fc
|
||||
.Ft bool
|
||||
.Fn CRYPTO_HAS_OUTPUT_BUFFER "struct cryptop *crp"
|
||||
.Sh DESCRIPTION
|
||||
@ -327,6 +332,12 @@ returns the length of a buffer in bytes.
|
||||
.Fn crypto_cursor_seglen
|
||||
returns the length in bytes of a contiguous segment.
|
||||
.Pp
|
||||
.Fn crypto_cursor_copy
|
||||
makes a deep copy of the cursor
|
||||
.Fa fromc .
|
||||
The two copies do not share any state and can thus be used
|
||||
independently.
|
||||
.Pp
|
||||
.Fn CRYPTO_HAS_OUTPUT_BUFFER
|
||||
returns true if the request uses a separate output buffer.
|
||||
.Sh SEE ALSO
|
||||
|
@ -741,6 +741,13 @@ void crypto_cursor_copydata(struct crypto_buffer_cursor *cc, int size,
|
||||
void crypto_cursor_copydata_noadv(struct crypto_buffer_cursor *cc, int size,
|
||||
void *vdst);
|
||||
|
||||
static __inline void
|
||||
crypto_cursor_copy(const struct crypto_buffer_cursor *fromc,
|
||||
struct crypto_buffer_cursor *toc)
|
||||
{
|
||||
memcpy(toc, fromc, sizeof(*toc));
|
||||
}
|
||||
|
||||
static __inline void
|
||||
crypto_read_iv(struct cryptop *crp, void *iv)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user