Secure Coding Standard » History » Version 3
Version 2 (Andreas Steffen, 27.05.2013 17:13) → Version 3/20 (Andreas Steffen, 27.05.2013 17:37)
h1. Secure Coding Standard
The strongSwan project adheres to the following rules recommended by the "CERT C Secure Coding Standard":https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard:
h2. Preprocessor (PRE)
h3. Full Adherence
* "PRE03-C. Prefer typedefs to defines for encoding types":https://www.securecoding.cert.org/confluence/display/seccode/PRE03-C.+Prefer+typedefs+to+defines+for+encoding+types
* "PRE04-C. Do not reuse a standard header file name":https://www.securecoding.cert.org/confluence/display/seccode/PRE04-C.+Do+not+reuse+a+standard+header+file+name
* "PRE06-C. Enclose header files in an inclusion guard":https://www.securecoding.cert.org/confluence/display/seccode/PRE06-C.+Enclose+header+files+in+an+inclusion+guard
* "PRE09-C. Do not replace secure functions with deprecated or obsolescent functions":
h3. Partial Adherence
* "PRE00-C. Prefer inline or static functions to function-like macros ":https://www.securecoding.cert.org/confluence/display/seccode/PRE00-C.+Prefer+inline+or+static+functions+to+function-like+macros
* "PRE01-C. Use parentheses within macros around parameter names":https://www.securecoding.cert.org/confluence/display/seccode/PRE01-C.+Use+parentheses+within+macros+around+parameter+names
* "PRE02-C. Macro replacement lists should be parenthesized":https://www.securecoding.cert.org/confluence/display/seccode/PRE02-C.+Macro+replacement+lists+should+be+parenthesized
h3. Check Adherence
* "PRE05-C. Understand macro replacement when concatenating tokens or performing stringification":https://www.securecoding.cert.org/confluence/display/seccode/PRE05-C.+Understand+macro+replacement+when+concatenating+tokens+or+performing+stringification
* "PRE07-C. Avoid using repeated question marks":https://www.securecoding.cert.org/confluence/display/seccode/PRE07-C.+Avoid+using+repeated+question+marks
h3. No Adherence
* "PRE08-C. Guarantee that header file names are unique":https://www.securecoding.cert.org/confluence/display/seccode/PRE08-C.+Guarantee+that+header+file+names+are+unique
h2. Declarations and Initialization (DCL)
h2. Expressions (EXP)
h2. Integers (INT)
h2. Floating Point (FLP)
h2. Arrays (ARR)
h2. Characters and Strings (STR)
h2. Memory Management (MEM)
h2. Input Output (FIO)
h2. Environment (ENV)
h2. Signals (SIG)
h2. Error Handling (ERR)
h2. Application Programming Interfaces (API)
h2. Concurrency (CON)
h2. Miscellaneous (MSC)
h2. POSIX (POS)
The strongSwan project adheres to the following rules recommended by the "CERT C Secure Coding Standard":https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard:
h2. Preprocessor (PRE)
h3. Full Adherence
* "PRE03-C. Prefer typedefs to defines for encoding types":https://www.securecoding.cert.org/confluence/display/seccode/PRE03-C.+Prefer+typedefs+to+defines+for+encoding+types
* "PRE04-C. Do not reuse a standard header file name":https://www.securecoding.cert.org/confluence/display/seccode/PRE04-C.+Do+not+reuse+a+standard+header+file+name
* "PRE06-C. Enclose header files in an inclusion guard":https://www.securecoding.cert.org/confluence/display/seccode/PRE06-C.+Enclose+header+files+in+an+inclusion+guard
* "PRE09-C. Do not replace secure functions with deprecated or obsolescent functions":
h3. Partial Adherence
* "PRE00-C. Prefer inline or static functions to function-like macros ":https://www.securecoding.cert.org/confluence/display/seccode/PRE00-C.+Prefer+inline+or+static+functions+to+function-like+macros
* "PRE01-C. Use parentheses within macros around parameter names":https://www.securecoding.cert.org/confluence/display/seccode/PRE01-C.+Use+parentheses+within+macros+around+parameter+names
* "PRE02-C. Macro replacement lists should be parenthesized":https://www.securecoding.cert.org/confluence/display/seccode/PRE02-C.+Macro+replacement+lists+should+be+parenthesized
h3. Check Adherence
* "PRE05-C. Understand macro replacement when concatenating tokens or performing stringification":https://www.securecoding.cert.org/confluence/display/seccode/PRE05-C.+Understand+macro+replacement+when+concatenating+tokens+or+performing+stringification
* "PRE07-C. Avoid using repeated question marks":https://www.securecoding.cert.org/confluence/display/seccode/PRE07-C.+Avoid+using+repeated+question+marks
h3. No Adherence
* "PRE08-C. Guarantee that header file names are unique":https://www.securecoding.cert.org/confluence/display/seccode/PRE08-C.+Guarantee+that+header+file+names+are+unique
h2. Declarations and Initialization (DCL)
h2. Expressions (EXP)
h2. Integers (INT)
h2. Floating Point (FLP)
h2. Arrays (ARR)
h2. Characters and Strings (STR)
h2. Memory Management (MEM)
h2. Input Output (FIO)
h2. Environment (ENV)
h2. Signals (SIG)
h2. Error Handling (ERR)
h2. Application Programming Interfaces (API)
h2. Concurrency (CON)
h2. Miscellaneous (MSC)
h2. POSIX (POS)