xref: /freebsd-src/crypto/openssl/include/openssl/buffer.h (revision e71b70530d95c4f34d8bdbd78d1242df1ba4a945)
1*e71b7053SJung-uk Kim /*
2*e71b7053SJung-uk Kim  * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
3*e71b7053SJung-uk Kim  *
4*e71b7053SJung-uk Kim  * Licensed under the OpenSSL license (the "License").  You may not use
5*e71b7053SJung-uk Kim  * this file except in compliance with the License.  You can obtain a copy
6*e71b7053SJung-uk Kim  * in the file LICENSE in the source distribution or at
7*e71b7053SJung-uk Kim  * https://www.openssl.org/source/license.html
8*e71b7053SJung-uk Kim  */
9*e71b7053SJung-uk Kim 
10*e71b7053SJung-uk Kim #ifndef HEADER_BUFFER_H
11*e71b7053SJung-uk Kim # define HEADER_BUFFER_H
12*e71b7053SJung-uk Kim 
13*e71b7053SJung-uk Kim # include <openssl/ossl_typ.h>
14*e71b7053SJung-uk Kim # ifndef HEADER_CRYPTO_H
15*e71b7053SJung-uk Kim #  include <openssl/crypto.h>
16*e71b7053SJung-uk Kim # endif
17*e71b7053SJung-uk Kim # include <openssl/buffererr.h>
18*e71b7053SJung-uk Kim 
19*e71b7053SJung-uk Kim 
20*e71b7053SJung-uk Kim #ifdef  __cplusplus
21*e71b7053SJung-uk Kim extern "C" {
22*e71b7053SJung-uk Kim #endif
23*e71b7053SJung-uk Kim 
24*e71b7053SJung-uk Kim # include <stddef.h>
25*e71b7053SJung-uk Kim # include <sys/types.h>
26*e71b7053SJung-uk Kim 
27*e71b7053SJung-uk Kim /*
28*e71b7053SJung-uk Kim  * These names are outdated as of OpenSSL 1.1; a future release
29*e71b7053SJung-uk Kim  * will move them to be deprecated.
30*e71b7053SJung-uk Kim  */
31*e71b7053SJung-uk Kim # define BUF_strdup(s) OPENSSL_strdup(s)
32*e71b7053SJung-uk Kim # define BUF_strndup(s, size) OPENSSL_strndup(s, size)
33*e71b7053SJung-uk Kim # define BUF_memdup(data, size) OPENSSL_memdup(data, size)
34*e71b7053SJung-uk Kim # define BUF_strlcpy(dst, src, size)  OPENSSL_strlcpy(dst, src, size)
35*e71b7053SJung-uk Kim # define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size)
36*e71b7053SJung-uk Kim # define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen)
37*e71b7053SJung-uk Kim 
38*e71b7053SJung-uk Kim struct buf_mem_st {
39*e71b7053SJung-uk Kim     size_t length;              /* current number of bytes */
40*e71b7053SJung-uk Kim     char *data;
41*e71b7053SJung-uk Kim     size_t max;                 /* size of buffer */
42*e71b7053SJung-uk Kim     unsigned long flags;
43*e71b7053SJung-uk Kim };
44*e71b7053SJung-uk Kim 
45*e71b7053SJung-uk Kim # define BUF_MEM_FLAG_SECURE  0x01
46*e71b7053SJung-uk Kim 
47*e71b7053SJung-uk Kim BUF_MEM *BUF_MEM_new(void);
48*e71b7053SJung-uk Kim BUF_MEM *BUF_MEM_new_ex(unsigned long flags);
49*e71b7053SJung-uk Kim void BUF_MEM_free(BUF_MEM *a);
50*e71b7053SJung-uk Kim size_t BUF_MEM_grow(BUF_MEM *str, size_t len);
51*e71b7053SJung-uk Kim size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len);
52*e71b7053SJung-uk Kim void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz);
53*e71b7053SJung-uk Kim 
54*e71b7053SJung-uk Kim 
55*e71b7053SJung-uk Kim # ifdef  __cplusplus
56*e71b7053SJung-uk Kim }
57*e71b7053SJung-uk Kim # endif
58*e71b7053SJung-uk Kim #endif
59