diff --git a/buffer.c b/buffer.c index e61b471f61ec12975b898b99dbb254f1590c1225..c311d2829d2b1b27cdb49b2e6fd089c7c72ee46a 100644 --- a/buffer.c +++ b/buffer.c @@ -76,6 +76,12 @@ nettle_buffer_clear(struct nettle_buffer *buffer) buffer->size = 0; } +void +nettle_buffer_reset(struct nettle_buffer *buffer) +{ + buffer->size = 0; +} + uint8_t * nettle_buffer_space(struct nettle_buffer *buffer, unsigned length) @@ -103,3 +109,10 @@ nettle_buffer_write(struct nettle_buffer *buffer, else return 0; } + +int +nettle_buffer_copy(struct nettle_buffer *dst, + const struct nettle_buffer *src) +{ + nettle_buffer_write(dst, src->size, src->contents); +} diff --git a/buffer.h b/buffer.h index c153839ef0ff9bbc7771027e307cbc7aac2e84b3..f10f96931ed9a0f7578475aff3e3797b0f7ffed5 100644 --- a/buffer.h +++ b/buffer.h @@ -53,6 +53,10 @@ nettle_buffer_init_size(struct nettle_buffer *buffer, void nettle_buffer_clear(struct nettle_buffer *buffer); +/* Resets the buffer, without freeing the buffer space. */ +void +nettle_buffer_reset(struct nettle_buffer *buffer); + int nettle_buffer_grow(struct nettle_buffer *buffer, unsigned length); @@ -73,4 +77,9 @@ uint8_t * nettle_buffer_space(struct nettle_buffer *buffer, unsigned length); +/* Copy the contents of SRC to the end of DST. */ +int +nettle_buffer_copy(struct nettle_buffer *dst, + const struct nettle_buffer *src); + #endif /* NETTLE_BUFFER_H_INCLUDED */