Home | History | Annotate | Download | only in tests
      1 /*
      2  * Author: Mary Garvin <mgarvin (at) 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  */
     36 int 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  */
     47 int 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  */
     59 int 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  */
     71 void 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  */
     87 int 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  */
    102 int 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  */
    117 int write_binary_policy(const char *path, policydb_t *);
    118 
    119 #endif
    120