tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

util_string.h (2254B)


      1 /* Copyright (c) 2003-2004, Roger Dingledine
      2 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
      3 * Copyright (c) 2007-2021, The Tor Project, Inc. */
      4 /* See LICENSE for licensing information */
      5 
      6 /**
      7 * \file util_string.h
      8 * \brief Header for util_string.c
      9 **/
     10 
     11 #ifndef TOR_UTIL_STRING_H
     12 #define TOR_UTIL_STRING_H
     13 
     14 #include "orconfig.h"
     15 #include "lib/cc/compat_compiler.h"
     16 
     17 #include <stddef.h>
     18 
     19 const void *tor_memmem(const void *haystack, size_t hlen, const void *needle,
     20                       size_t nlen);
     21 const void *tor_memstr(const void *haystack, size_t hlen,
     22                       const char *needle);
     23 int fast_mem_is_zero(const char *mem, size_t len);
     24 #define fast_digest_is_zero(d) fast_mem_is_zero((d), DIGEST_LEN)
     25 #define fast_digetst256_is_zero(d) fast_mem_is_zero((d), DIGEST256_LEN)
     26 
     27 int tor_digest_is_zero(const char *digest);
     28 int tor_digest256_is_zero(const char *digest);
     29 
     30 /** Allowable characters in a hexadecimal string. */
     31 #define HEX_CHARACTERS "0123456789ABCDEFabcdef"
     32 void tor_strlower(char *s);
     33 void tor_strupper(char *s);
     34 void tor_strreplacechar(char *s, char find, char replacement);
     35 int tor_strisprint(const char *s);
     36 int tor_strisnonupper(const char *s);
     37 int tor_strisspace(const char *s);
     38 int strcmp_opt(const char *s1, const char *s2);
     39 int strcmpstart(const char *s1, const char *s2);
     40 int strcasecmpstart(const char *s1, const char *s2);
     41 int strcmpend(const char *s1, const char *s2);
     42 int strcasecmpend(const char *s1, const char *s2);
     43 int fast_memcmpstart(const void *mem, size_t memlen, const char *prefix);
     44 
     45 void tor_strstrip(char *s, const char *strip);
     46 
     47 const char *eat_whitespace(const char *s);
     48 const char *eat_whitespace_eos(const char *s, const char *eos);
     49 const char *eat_whitespace_no_nl(const char *s);
     50 const char *eat_whitespace_eos_no_nl(const char *s, const char *eos);
     51 const char *find_whitespace(const char *s);
     52 const char *find_whitespace_eos(const char *s, const char *eos);
     53 const char *find_str_at_start_of_line(const char *haystack,
     54                                      const char *needle);
     55 
     56 int string_is_C_identifier(const char *string);
     57 
     58 int string_is_utf8(const char *str, size_t len);
     59 int string_is_utf8_no_bom(const char *str, size_t len);
     60 
     61 #endif /* !defined(TOR_UTIL_STRING_H) */