test-downgrade.h revision 255e72915d4cbddceb435e13d81601755714e9f3
1/*
2 * Author: Mary Garvin <mgarvin@tresys.com>
3 *
4 * Copyright (C) 2007-2008 Tresys Technology, LLC
5 *
6 *  This library is free software; you can redistribute it and/or
7 *  modify it under the terms of the GNU Lesser General Public
8 *  License as published by the Free Software Foundation; either
9 *  version 2.1 of the License, or (at your option) any later version.
10 *
11 *  This library is distributed in the hope that it will be useful,
12 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 *  Lesser General Public License for more details.
15 *
16 *  You should have received a copy of the GNU Lesser General Public
17 *  License along with this library; if not, write to the Free Software
18 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19 */
20
21#ifndef __TEST_DOWNGRADE_H__
22#define __TEST_DOWNGRADE_H__
23
24#include <CUnit/Basic.h>
25#include <sepol/policydb/policydb.h>
26
27/*
28 * Function Name:  downgrade_test_init
29 *
30 * Input: None
31 *
32 * Output: None
33 *
34 * Description: Initialize the policydb (policy data base structure)
35 */
36int downgrade_test_init(void);
37
38/*
39 * Function Name:  downgrade_test_cleanup
40 *
41 * Input: None
42 *
43 * Output: None
44 *
45 * Description: Destroys policydb structure
46 */
47int downgrade_test_cleanup(void);
48
49/*
50 * Function Name: downgrade_add_tests
51 *
52 * Input: CU_pSuite
53 *
54 * Output: Returns 0 upon success.  Upon failure, a CUnit testing error
55 *	   value is returned
56 *
57 * Description:  Add the given downgrade tests to the downgrade suite.
58 */
59int downgrade_add_tests(CU_pSuite suite);
60
61/*
62 * Function Name: test_downgrade_possible
63 *
64 * Input: None
65 *
66 * Output: None
67 *
68 * Description: Tests the backward compatability of MLS and Non-MLS binary
69 *		policy versions.
70 */
71void test_downgrade(void);
72
73/*
74 * Function Name:  do_downgrade_test
75 *
76 * Input: int that represents a 0 for Non-MLS policy and a
77 * 		 1 for MLS policy downgrade testing
78 *
79 * Output: (int) 0 on success, negative number upon failure
80 *
81 * Description: This function handles the downgrade testing.  A binary policy
82 *		is read into the policydb structure, the policy version is
83 *		decreased by a specific amount, written back out and then read
84 *		back in again. The process is iterative until the minimum
85 *		policy version is reached.
86 */
87int do_downgrade_test(int mls);
88
89/*
90 * Function Name: read_binary_policy
91 *
92 * Input: char * which is the path to the file containing the binary policy
93 *
94 * Output: Returns 0 upon success.  Upon failure, -1 is returned.
95 *	   Possible failures are, filename with given path does not exist,
96 *	   a failure to open the file, or a failure from prolicydb_read
97 *	   function call.
98 *
99 * Description: Get a filename, open file and read in the binary policy
100 *		into the policydb structure.
101 */
102int read_binary_policy(const char *path, policydb_t *);
103
104/*
105 * Function Name: write_binary_policy
106 *
107 * Input: char * which is the path to the file containing the binary policy
108 *
109 * Output: Returns 0 upon success.  Upon failure, -1 is returned.
110 *	   Possible failures are, filename with given path does not exist,
111 *	   a failure to open the file, or a failure from prolicydb_read
112 *	   function call.
113 *
114 * Description: Get a filename, open file and read in the binary policy
115 *		into the policydb structure.
116 */
117int write_binary_policy(const char *path, policydb_t *);
118
119#endif
120