/*------------------------------------------------------------------ * safe_str_lib.h -- Safe C Library String APIs * * October 2008, Bo Berry * * Copyright (c) 2008-2011, 2013 by Cisco Systems, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. *------------------------------------------------------------------ */ #ifndef __SAFE_STR_LIB_H__ #define __SAFE_STR_LIB_H__ #include "safe_lib.h" /* * The shortest string is a null string!! */ #define RSIZE_MIN_STR ( 1 ) /* maximum sring length */ #define RSIZE_MAX_STR ( 4UL << 10 ) /* 4KB */ /* The makeup of a password */ #define SAFE_STR_MIN_LOWERCASE ( 2 ) #define SAFE_STR_MIN_UPPERCASE ( 2 ) #define SAFE_STR_MIN_NUMBERS ( 1 ) #define SAFE_STR_MIN_SPECIALS ( 1 ) #define SAFE_STR_PASSWORD_MIN_LENGTH ( 6 ) #define SAFE_STR_PASSWORD_MAX_LENGTH ( 32 ) /* set string constraint handler */ extern constraint_handler_t set_str_constraint_handler_s(constraint_handler_t handler); /* string copy */ extern errno_t strcpy_s(char *dest, rsize_t dmax, const char *src); /* string length */ extern rsize_t strnlen_s (const char *s, rsize_t smax); #endif /* __SAFE_STR_LIB_H__ */