Project

General

Profile

Secure Coding Standard » History » Version 3

Andreas Steffen, 27.05.2013 17:37

1 1 Andreas Steffen
h1. Secure Coding Standard
2 1 Andreas Steffen
3 1 Andreas Steffen
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:
4 1 Andreas Steffen
5 1 Andreas Steffen
h2. Preprocessor (PRE)
6 1 Andreas Steffen
7 2 Andreas Steffen
h3. Full Adherence 
8 2 Andreas Steffen
9 2 Andreas Steffen
* "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
10 2 Andreas Steffen
11 2 Andreas Steffen
* "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
12 2 Andreas Steffen
13 3 Andreas Steffen
* "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
14 3 Andreas Steffen
15 3 Andreas Steffen
* "PRE09-C. Do not replace secure functions with deprecated or obsolescent functions":
16 2 Andreas Steffen
h3. Partial Adherence
17 2 Andreas Steffen
18 2 Andreas Steffen
* "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
19 2 Andreas Steffen
20 2 Andreas Steffen
* "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
21 2 Andreas Steffen
22 2 Andreas Steffen
* "PRE02-C. Macro replacement lists should be parenthesized":https://www.securecoding.cert.org/confluence/display/seccode/PRE02-C.+Macro+replacement+lists+should+be+parenthesized
23 3 Andreas Steffen
24 3 Andreas Steffen
h3. Check Adherence
25 3 Andreas Steffen
26 3 Andreas Steffen
* "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
27 3 Andreas Steffen
28 3 Andreas Steffen
* "PRE07-C. Avoid using repeated question marks":https://www.securecoding.cert.org/confluence/display/seccode/PRE07-C.+Avoid+using+repeated+question+marks
29 3 Andreas Steffen
30 3 Andreas Steffen
h3. No Adherence
31 3 Andreas Steffen
32 3 Andreas Steffen
* "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
33 2 Andreas Steffen
34 1 Andreas Steffen
h2. Declarations and Initialization (DCL)
35 1 Andreas Steffen
36 1 Andreas Steffen
h2. Expressions (EXP)
37 1 Andreas Steffen
38 1 Andreas Steffen
h2. Integers (INT)
39 1 Andreas Steffen
40 1 Andreas Steffen
h2. Floating Point (FLP)
41 1 Andreas Steffen
42 1 Andreas Steffen
h2. Arrays (ARR)
43 1 Andreas Steffen
44 1 Andreas Steffen
h2. Characters and Strings (STR)
45 1 Andreas Steffen
46 1 Andreas Steffen
h2. Memory Management (MEM)
47 1 Andreas Steffen
48 1 Andreas Steffen
h2. Input Output (FIO)
49 1 Andreas Steffen
50 1 Andreas Steffen
h2. Environment (ENV)
51 1 Andreas Steffen
52 1 Andreas Steffen
h2. Signals (SIG)
53 1 Andreas Steffen
54 1 Andreas Steffen
h2. Error Handling (ERR)
55 1 Andreas Steffen
56 1 Andreas Steffen
h2. Application Programming Interfaces (API)
57 1 Andreas Steffen
58 1 Andreas Steffen
h2. Concurrency (CON)
59 1 Andreas Steffen
60 1 Andreas Steffen
h2. Miscellaneous (MSC)
61 1 Andreas Steffen
62 1 Andreas Steffen
h2. POSIX (POS)