Secure Function Type | Description | Remarks |
---|---|---|
xxx_s | Secure function API of Huawei Secure C library | It can be used when the Huawei Secure C library is integrated. |
xxx_sp | API of Huawei Secure C library with optimized secure function performance (macro implementation) | If count, destMax, and strSrc are constants, the performance-optimized macro interface displays its effect. If they are variables, the performance optimization effect is not obvious. The macro interface usage policy is as follows: The _s interface is used by default. The _sp interface is restricted in performance-sensitive call sites. The restriction scenarios are as follows: a) memset_sp and memcpy_sp: destMax and count are constants. b) strcpy_sp or strcat_sp: destMax is a constant and strSrc is a literal. c) strncpy_sp or strncat_sp: destMax and count are constants and strSrc is a literal. |
Function Type | Dangerous Function | Secure Surrogate Function |
---|---|---|
Memory copy | memcpy or bcopy | memcpy_s |
wmemcpy | wmemcpy_s | |
memmove | memmove_s | |
wmemmove | wmemmove_s | |
String copy | strcpy | strcpy_s |
wcscpy | wcscpy_s | |
strncpy | strncpy_s | |
wcsncpy | wcsncpy_s | |
Character string concatenation | strcat | strcat_s |
wcscat | wcscat_s | |
strncat | strncat_s | |
wcsncat | wcsncat_s | |
Format output | sprintf | sprintf_s |
swprintf | swprintf_s | |
vsprintf | vsprintf_s | |
vswprintf | vswprintf_s | |
snprintf | snprintf_s or snprintf_truncated_s | |
vsnprintf | vsnprintf_s or vsnprintf_truncated_s | |
Format input | scanf | scanf_s |
wscanf | wscanf_s | |
vscanf | vscanf_s | |
vwscanf | vwscanf_s | |
fscanf | fscanf_s | |
fwscanf | fwscanf_s | |
vfscanf | vfscanf_s | |
vfwscanf | vfwscanf_s | |
sscanf | sscanf_s | |
swscanf | swscanf_s | |
vsscanf | vsscanf_s | |
vswscanf | vswscanf_s | |
Standard input stream input | gets | gets_s |
Memory initialization | memset | memset_s |