xref: /freebsd-src/crypto/openssh/regress/unittests/sshbuf/test_sshbuf.c (revision 1323ec571215a77ddd21294f0871979d5ad6b992)
1*1323ec57SEd Maste /* 	$OpenBSD: test_sshbuf.c,v 1.2 2021/12/14 21:25:27 deraadt Exp $ */
2a0ee8cc6SDag-Erling Smørgrav /*
3a0ee8cc6SDag-Erling Smørgrav  * Regress test for sshbuf.h buffer API
4a0ee8cc6SDag-Erling Smørgrav  *
5a0ee8cc6SDag-Erling Smørgrav  * Placed in the public domain
6a0ee8cc6SDag-Erling Smørgrav  */
7a0ee8cc6SDag-Erling Smørgrav 
8a0ee8cc6SDag-Erling Smørgrav #define SSHBUF_INTERNAL 1	/* access internals for testing */
9a0ee8cc6SDag-Erling Smørgrav #include "includes.h"
10a0ee8cc6SDag-Erling Smørgrav 
11a0ee8cc6SDag-Erling Smørgrav #include <sys/types.h>
12a0ee8cc6SDag-Erling Smørgrav #include <stdio.h>
13a0ee8cc6SDag-Erling Smørgrav #ifdef HAVE_STDINT_H
14a0ee8cc6SDag-Erling Smørgrav # include <stdint.h>
15a0ee8cc6SDag-Erling Smørgrav #endif
16a0ee8cc6SDag-Erling Smørgrav #include <stdlib.h>
17a0ee8cc6SDag-Erling Smørgrav #include <string.h>
18a0ee8cc6SDag-Erling Smørgrav 
19a0ee8cc6SDag-Erling Smørgrav #include "../test_helper/test_helper.h"
20a0ee8cc6SDag-Erling Smørgrav 
21a0ee8cc6SDag-Erling Smørgrav #include "ssherr.h"
22a0ee8cc6SDag-Erling Smørgrav #include "sshbuf.h"
23a0ee8cc6SDag-Erling Smørgrav 
24a0ee8cc6SDag-Erling Smørgrav void sshbuf_tests(void);
25a0ee8cc6SDag-Erling Smørgrav 
26*1323ec57SEd Maste #ifndef roundup
27*1323ec57SEd Maste #define roundup(x, y)   ((((x)+((y)-1))/(y))*(y))
28*1323ec57SEd Maste #endif
29*1323ec57SEd Maste 
30a0ee8cc6SDag-Erling Smørgrav void
sshbuf_tests(void)31a0ee8cc6SDag-Erling Smørgrav sshbuf_tests(void)
32a0ee8cc6SDag-Erling Smørgrav {
33a0ee8cc6SDag-Erling Smørgrav 	struct sshbuf *p1;
34a0ee8cc6SDag-Erling Smørgrav 	const u_char *cdp;
35a0ee8cc6SDag-Erling Smørgrav 	u_char *dp;
36a0ee8cc6SDag-Erling Smørgrav 	size_t sz;
37a0ee8cc6SDag-Erling Smørgrav 	int r;
38a0ee8cc6SDag-Erling Smørgrav 
39a0ee8cc6SDag-Erling Smørgrav 	TEST_START("allocate sshbuf");
40a0ee8cc6SDag-Erling Smørgrav 	p1 = sshbuf_new();
41a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(p1, NULL);
42a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
43a0ee8cc6SDag-Erling Smørgrav 
44a0ee8cc6SDag-Erling Smørgrav 	TEST_START("max size on fresh buffer");
45a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_GT(sshbuf_max_size(p1), 0);
46a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
47a0ee8cc6SDag-Erling Smørgrav 
48a0ee8cc6SDag-Erling Smørgrav 	TEST_START("available on fresh buffer");
49a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_GT(sshbuf_avail(p1), 0);
50a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
51a0ee8cc6SDag-Erling Smørgrav 
52a0ee8cc6SDag-Erling Smørgrav 	TEST_START("len = 0 on empty buffer");
53a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 0);
54a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
55a0ee8cc6SDag-Erling Smørgrav 
56a0ee8cc6SDag-Erling Smørgrav 	TEST_START("set valid max size");
57a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_set_max_size(p1, 65536), 0);
58a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_max_size(p1), 65536);
59a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
60a0ee8cc6SDag-Erling Smørgrav 
61a0ee8cc6SDag-Erling Smørgrav 	TEST_START("available on limited buffer");
62a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_avail(p1), 65536);
63a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
64a0ee8cc6SDag-Erling Smørgrav 
65a0ee8cc6SDag-Erling Smørgrav 	TEST_START("free");
66a0ee8cc6SDag-Erling Smørgrav 	sshbuf_free(p1);
67a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
68a0ee8cc6SDag-Erling Smørgrav 
69a0ee8cc6SDag-Erling Smørgrav 	TEST_START("consume on empty buffer");
70a0ee8cc6SDag-Erling Smørgrav 	p1 = sshbuf_new();
71a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(p1, NULL);
72a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume(p1, 0), 0);
73a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume(p1, 1), SSH_ERR_MESSAGE_INCOMPLETE);
74a0ee8cc6SDag-Erling Smørgrav 	sshbuf_free(p1);
75a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
76a0ee8cc6SDag-Erling Smørgrav 
77a0ee8cc6SDag-Erling Smørgrav 	TEST_START("consume_end on empty buffer");
78a0ee8cc6SDag-Erling Smørgrav 	p1 = sshbuf_new();
79a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(p1, NULL);
80a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume_end(p1, 0), 0);
81a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume_end(p1, 1), SSH_ERR_MESSAGE_INCOMPLETE);
82a0ee8cc6SDag-Erling Smørgrav 	sshbuf_free(p1);
83a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
84a0ee8cc6SDag-Erling Smørgrav 
85a0ee8cc6SDag-Erling Smørgrav 	TEST_START("reserve space");
86a0ee8cc6SDag-Erling Smørgrav 	p1 = sshbuf_new();
87a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(p1, NULL);
88a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_reserve(p1, 1, &dp);
89a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, 0);
90a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(dp, NULL);
91a0ee8cc6SDag-Erling Smørgrav 	*dp = 0x11;
92a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_reserve(p1, 3, &dp);
93a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, 0);
94a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(dp, NULL);
95a0ee8cc6SDag-Erling Smørgrav 	*dp++ = 0x22;
96a0ee8cc6SDag-Erling Smørgrav 	*dp++ = 0x33;
97a0ee8cc6SDag-Erling Smørgrav 	*dp++ = 0x44;
98a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
99a0ee8cc6SDag-Erling Smørgrav 
100a0ee8cc6SDag-Erling Smørgrav 	TEST_START("sshbuf_len on filled buffer");
101a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4);
102a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
103a0ee8cc6SDag-Erling Smørgrav 
104a0ee8cc6SDag-Erling Smørgrav 	TEST_START("sshbuf_ptr on filled buffer");
105a0ee8cc6SDag-Erling Smørgrav 	cdp = sshbuf_ptr(p1);
106a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(cdp, NULL);
107a0ee8cc6SDag-Erling Smørgrav 	ASSERT_U8_EQ(cdp[0], 0x11);
108a0ee8cc6SDag-Erling Smørgrav 	ASSERT_U8_EQ(cdp[1], 0x22);
109a0ee8cc6SDag-Erling Smørgrav 	ASSERT_U8_EQ(cdp[2], 0x33);
110a0ee8cc6SDag-Erling Smørgrav 	ASSERT_U8_EQ(cdp[3], 0x44);
111a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
112a0ee8cc6SDag-Erling Smørgrav 
113a0ee8cc6SDag-Erling Smørgrav 	TEST_START("consume on filled buffer");
114a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4);
115a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume(p1, 0), 0);
116a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4);
117a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_consume(p1, 64);
118a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE);
119a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4);
120a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume(p1, 1), 0);
121a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 3);
122a0ee8cc6SDag-Erling Smørgrav 	cdp = sshbuf_ptr(p1);
123a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(p1, NULL);
124a0ee8cc6SDag-Erling Smørgrav 	ASSERT_U8_EQ(cdp[0], 0x22);
125a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume(p1, 2), 0);
126a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 1);
127a0ee8cc6SDag-Erling Smørgrav 	cdp = sshbuf_ptr(p1);
128a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(p1, NULL);
129a0ee8cc6SDag-Erling Smørgrav 	ASSERT_U8_EQ(cdp[0], 0x44);
130a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_consume(p1, 2);
131a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE);
132a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 1);
133a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume(p1, 1), 0);
134a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 0);
135a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_consume(p1, 1);
136a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE);
137a0ee8cc6SDag-Erling Smørgrav 	sshbuf_free(p1);
138a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
139a0ee8cc6SDag-Erling Smørgrav 
140a0ee8cc6SDag-Erling Smørgrav 	TEST_START("consume_end on filled buffer");
141a0ee8cc6SDag-Erling Smørgrav 	p1 = sshbuf_new();
142a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(p1, NULL);
143a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_reserve(p1, 4, &dp);
144a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, 0);
145a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(dp, NULL);
146a0ee8cc6SDag-Erling Smørgrav 	*dp++ = 0x11;
147a0ee8cc6SDag-Erling Smørgrav 	*dp++ = 0x22;
148a0ee8cc6SDag-Erling Smørgrav 	*dp++ = 0x33;
149a0ee8cc6SDag-Erling Smørgrav 	*dp++ = 0x44;
150a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4);
151a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_consume_end(p1, 5);
152a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE);
153a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 4);
154a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume_end(p1, 3), 0);
155a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 1);
156a0ee8cc6SDag-Erling Smørgrav 	cdp = sshbuf_ptr(p1);
157a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(cdp, NULL);
158a0ee8cc6SDag-Erling Smørgrav 	ASSERT_U8_EQ(*cdp, 0x11);
159a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_consume_end(p1, 2);
160a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, SSH_ERR_MESSAGE_INCOMPLETE);
161a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume_end(p1, 1), 0);
162a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 0);
163a0ee8cc6SDag-Erling Smørgrav 	sshbuf_free(p1);
164a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
165a0ee8cc6SDag-Erling Smørgrav 
166a0ee8cc6SDag-Erling Smørgrav 	TEST_START("fill limited buffer");
167a0ee8cc6SDag-Erling Smørgrav 	p1 = sshbuf_new();
168a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(p1, NULL);
169a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_set_max_size(p1, 1223), 0);
170a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_max_size(p1), 1223);
171a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_avail(p1), 1223);
172a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_reserve(p1, 1223, &dp);
173a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, 0);
174a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(dp, NULL);
175a0ee8cc6SDag-Erling Smørgrav 	memset(dp, 0xd7, 1223);
176a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 1223);
177a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_avail(p1), 0);
178a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_reserve(p1, 1, &dp);
179a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, SSH_ERR_NO_BUFFER_SPACE);
180a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_EQ(dp, NULL);
181a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
182a0ee8cc6SDag-Erling Smørgrav 
183a0ee8cc6SDag-Erling Smørgrav 	TEST_START("consume and force compaction");
184a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_consume(p1, 223), 0);
185a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 1000);
186a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_avail(p1), 223);
187a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_reserve(p1, 224, &dp);
188a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, SSH_ERR_NO_BUFFER_SPACE);
189a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_EQ(dp, NULL);
190a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 1000);
191a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_avail(p1), 223);
192a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_reserve(p1, 223, &dp);
193a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, 0);
194a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(dp, NULL);
195a0ee8cc6SDag-Erling Smørgrav 	memset(dp, 0x7d, 223);
196a0ee8cc6SDag-Erling Smørgrav 	cdp = sshbuf_ptr(p1);
197a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(cdp, NULL);
198a0ee8cc6SDag-Erling Smørgrav 	ASSERT_MEM_FILLED_EQ(cdp, 0xd7, 1000);
199a0ee8cc6SDag-Erling Smørgrav 	ASSERT_MEM_FILLED_EQ(cdp + 1000, 0x7d, 223);
200a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
201a0ee8cc6SDag-Erling Smørgrav 
202a0ee8cc6SDag-Erling Smørgrav 	TEST_START("resize full buffer");
203a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_set_max_size(p1, 1000);
204a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, SSH_ERR_NO_BUFFER_SPACE);
205a0ee8cc6SDag-Erling Smørgrav 	sz = roundup(1223 + SSHBUF_SIZE_INC * 3, SSHBUF_SIZE_INC);
206a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_set_max_size(p1, sz), 0);
207a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_max_size(p1), sz);
208a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_avail(p1), sz - 1223);
209a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_len(p1), 1223);
210a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
211a0ee8cc6SDag-Erling Smørgrav 
212a0ee8cc6SDag-Erling Smørgrav 	/* NB. uses sshbuf internals */
213a0ee8cc6SDag-Erling Smørgrav 	TEST_START("alloc chunking");
214a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_reserve(p1, 1, &dp);
215a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, 0);
216a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(dp, NULL);
217a0ee8cc6SDag-Erling Smørgrav 	*dp = 0xff;
218a0ee8cc6SDag-Erling Smørgrav 	cdp = sshbuf_ptr(p1);
219a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(cdp, NULL);
220a0ee8cc6SDag-Erling Smørgrav 	ASSERT_MEM_FILLED_EQ(cdp, 0xd7, 1000);
221a0ee8cc6SDag-Erling Smørgrav 	ASSERT_MEM_FILLED_EQ(cdp + 1000, 0x7d, 223);
222a0ee8cc6SDag-Erling Smørgrav 	ASSERT_MEM_FILLED_EQ(cdp + 1223, 0xff, 1);
223a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_alloc(p1) % SSHBUF_SIZE_INC, 0);
224a0ee8cc6SDag-Erling Smørgrav 	sshbuf_free(p1);
225a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
226a0ee8cc6SDag-Erling Smørgrav 
227a0ee8cc6SDag-Erling Smørgrav 	TEST_START("reset buffer");
228a0ee8cc6SDag-Erling Smørgrav 	p1 = sshbuf_new();
229a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(p1, NULL);
230a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(sshbuf_set_max_size(p1, 1223), 0);
231a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_max_size(p1), 1223);
232a0ee8cc6SDag-Erling Smørgrav 	r = sshbuf_reserve(p1, 1223, &dp);
233a0ee8cc6SDag-Erling Smørgrav 	ASSERT_INT_EQ(r, 0);
234a0ee8cc6SDag-Erling Smørgrav 	ASSERT_PTR_NE(dp, NULL);
235a0ee8cc6SDag-Erling Smørgrav 	memset(dp, 0xd7, 1223);
236a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 1223);
237a0ee8cc6SDag-Erling Smørgrav 	sshbuf_reset(p1);
238a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_max_size(p1), 1223);
239a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_len(p1), 0);
240a0ee8cc6SDag-Erling Smørgrav 	ASSERT_SIZE_T_EQ(sshbuf_avail(p1), 1223);
241a0ee8cc6SDag-Erling Smørgrav 	sshbuf_free(p1);
242a0ee8cc6SDag-Erling Smørgrav 	TEST_DONE();
243a0ee8cc6SDag-Erling Smørgrav }
244