xref: /openbsd/lib/libfido2/src/buf.c (revision c4a807ed)
1d75efeb7Sdjm /*
2d75efeb7Sdjm  * Copyright (c) 2018 Yubico AB. All rights reserved.
3d75efeb7Sdjm  * Use of this source code is governed by a BSD-style
4d75efeb7Sdjm  * license that can be found in the LICENSE file.
5d75efeb7Sdjm  */
6d75efeb7Sdjm 
7d75efeb7Sdjm #include "fido.h"
8d75efeb7Sdjm 
9d75efeb7Sdjm int
fido_buf_read(const unsigned char ** buf,size_t * len,void * dst,size_t count)10*32a20e26Sdjm fido_buf_read(const unsigned char **buf, size_t *len, void *dst, size_t count)
11d75efeb7Sdjm {
12d75efeb7Sdjm 	if (count > *len)
13d75efeb7Sdjm 		return (-1);
14d75efeb7Sdjm 
15d75efeb7Sdjm 	memcpy(dst, *buf, count);
16d75efeb7Sdjm 	*buf += count;
17d75efeb7Sdjm 	*len -= count;
18d75efeb7Sdjm 
19d75efeb7Sdjm 	return (0);
20d75efeb7Sdjm }
21d75efeb7Sdjm 
22d75efeb7Sdjm int
fido_buf_write(unsigned char ** buf,size_t * len,const void * src,size_t count)23*32a20e26Sdjm fido_buf_write(unsigned char **buf, size_t *len, const void *src, size_t count)
24d75efeb7Sdjm {
25d75efeb7Sdjm 	if (count > *len)
26d75efeb7Sdjm 		return (-1);
27d75efeb7Sdjm 
28d75efeb7Sdjm 	memcpy(*buf, src, count);
29d75efeb7Sdjm 	*buf += count;
30d75efeb7Sdjm 	*len -= count;
31d75efeb7Sdjm 
32d75efeb7Sdjm 	return (0);
33d75efeb7Sdjm }
34