Compare commits
	
		
			No commits in common. "c8s" and "c8-beta" have entirely different histories.
		
	
	
		
	
		
							
								
								
									
										1
									
								
								.fipscheck.metadata
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.fipscheck.metadata
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| 949b3b68b929471e0060196d8a9dda08d11e662e SOURCES/fipscheck-1.5.0.tar.bz2 | ||||
							
								
								
									
										7
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,6 +1 @@ | ||||
| fipscheck-1.2.0.tar.bz2 | ||||
| /fipscheck-1.3.0.tar.bz2 | ||||
| /fipscheck-1.3.1.tar.bz2 | ||||
| /fipscheck-1.4.0.tar.bz2 | ||||
| /fipscheck-1.4.1.tar.bz2 | ||||
| /fipscheck-1.5.0.tar.bz2 | ||||
| SOURCES/fipscheck-1.5.0.tar.bz2 | ||||
|  | ||||
| @ -1,9 +0,0 @@ | ||||
| --- !Policy | ||||
| product_versions: | ||||
|   - rhel-8 | ||||
| decision_context: osci_compose_gate | ||||
| rules: | ||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} | ||||
|   - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} | ||||
|   - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.userspace-fips-mode.functional} | ||||
|   - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tedude.validation} | ||||
							
								
								
									
										1
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								sources
									
									
									
									
									
								
							| @ -1 +0,0 @@ | ||||
| SHA512 (fipscheck-1.5.0.tar.bz2) = 31920d45f7f7fe7deacd964b3f847c0caf76ca53452803443353994042a8c2ef1c2f494a029adc87a87ab69150a9823637f6a2f9b5a363a82bd2dbc6829c35c9 | ||||
| @ -1,61 +0,0 @@ | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| #   Makefile of /CoreOS/fipscheck/Sanity/fipscheck
 | ||||
| #   Description: Test fipscheck helper tool
 | ||||
| #   Author: Ondrej Moris <omoris@redhat.com> 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| #
 | ||||
| #   Copyright (c) 2013 Red Hat, Inc. All rights reserved.
 | ||||
| #
 | ||||
| #   This copyrighted material is made available to anyone wishing
 | ||||
| #   to use, modify, copy, or redistribute it subject to the terms
 | ||||
| #   and conditions of the GNU General Public License version 2.
 | ||||
| #
 | ||||
| #   This program is distributed in the hope that it will be
 | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied
 | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 | ||||
| #   PURPOSE. See the GNU General Public License for more details.
 | ||||
| #
 | ||||
| #   You should have received a copy of the GNU General Public
 | ||||
| #   License along with this program; if not, write to the Free
 | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 | ||||
| #   Boston, MA 02110-1301, USA.
 | ||||
| #
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| export TEST=/CoreOS/fipscheck/Sanity/fipscheck | ||||
| export TESTVERSION=1.0 | ||||
| 
 | ||||
| BUILT_FILES= | ||||
| 
 | ||||
| FILES=$(METADATA) runtest.sh Makefile PURPOSE | ||||
| 
 | ||||
| .PHONY: all install download clean | ||||
| 
 | ||||
| run: $(FILES) build | ||||
| 	./runtest.sh | ||||
| 
 | ||||
| build: $(BUILT_FILES) | ||||
| 	test -x runtest.sh || chmod a+x runtest.sh | ||||
| 
 | ||||
| clean: | ||||
| 	rm -f *~ $(BUILT_FILES) | ||||
| 
 | ||||
| 
 | ||||
| include /usr/share/rhts/lib/rhts-make.include | ||||
| 
 | ||||
| $(METADATA): Makefile | ||||
| 	@echo "Owner:           Ondrej Moris <omoris@redhat.com>" > $(METADATA) | ||||
| 	@echo "Name:            $(TEST)" >> $(METADATA) | ||||
| 	@echo "TestVersion:     $(TESTVERSION)" >> $(METADATA) | ||||
| 	@echo "Path:            $(TEST_DIR)" >> $(METADATA) | ||||
| 	@echo "Description:     Test fipscheck helper tool" >> $(METADATA) | ||||
| 	@echo "Type:            Sanity" >> $(METADATA) | ||||
| 	@echo "TestTime:        15m" >> $(METADATA) | ||||
| 	@echo "RunFor:          fipscheck" >> $(METADATA) | ||||
| 	@echo "Requires:        fipscheck fipscheck-lib" >> $(METADATA) | ||||
| 	@echo "Priority:        Normal" >> $(METADATA) | ||||
| 	@echo "License:         GPLv2" >> $(METADATA) | ||||
| 	@echo "Confidential:    no" >> $(METADATA) | ||||
| 	@echo "Destructive:     no" >> $(METADATA) | ||||
| 
 | ||||
| 	rhts-lint $(METADATA) | ||||
| @ -1,5 +0,0 @@ | ||||
| PURPOSE of /CoreOS/fipscheck/Sanity/fipscheck | ||||
| Description: Test fipscheck helper tool | ||||
| Author: Ondrej Moris <omoris@redhat.com> | ||||
| 
 | ||||
| Test fipscheck functionality, supported parameters as well as all return codes. | ||||
| @ -1,138 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /CoreOS/fipscheck/Sanity/fipscheck | ||||
| #   Description: Test fipscheck helper tool. | ||||
| #   Author: Ondrej Moris <omoris@redhat.com> | ||||
| #  | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/bin/rhts-environment.sh || exit 1 | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="fipscheck" | ||||
| 
 | ||||
| rlJournalStart | ||||
| 
 | ||||
|     rlPhaseStartSetup | ||||
| 
 | ||||
|         rlCheckRpm "fipscheck" || rlDie | ||||
|         rlCheckRpm "fipscheck-lib" || rlDie | ||||
| 
 | ||||
|         tmpdir=$(mktemp -d) | ||||
| 
 | ||||
|         rlRun "chmod a+rwx $tmpdir" 0 | ||||
|         rlRun "pushd $tmpdir" 0 | ||||
|          | ||||
|         echo 'hmac' >hmac | ||||
|         echo 'suffixhmac' >suffixhmac | ||||
|         echo 'incorrecthmac' >incorrecthmac | ||||
|         echo 'emptyhmac' >emptyhmac | ||||
|          | ||||
|         rlRun "fipshmac hmac" 0 | ||||
|         rlRun "fipshmac -s .suffix suffixhmac" 0 | ||||
|         rlRun "fipshmac incorrecthmac && echo 'X' >.incorrecthmac.hmac" 0 | ||||
|         rlRun "fipshmac emptyhmac && echo '' >.emptyhmac.hmac" 0 | ||||
|          | ||||
|         fipscheck_hmac=$(rpm -ql fipscheck | egrep '\.hmac') | ||||
|         fipscheck_libs_all=$(rpm -ql fipscheck-lib | grep so | grep -v hmac | tr '\n' ' ') | ||||
|         fipscheck_libs_some_hmac=$(rpm -ql fipscheck-lib | egrep '\.hmac' | head -1) | ||||
| 
 | ||||
|         rlRun "useradd testuser" 0 | ||||
| 
 | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest "Integrity" | ||||
| 
 | ||||
|         rlCheckRpm "prelink" && rlRun "prelink -ua" 0 | ||||
|         rlRun "fipscheck /usr/bin/fipscheck $fipscheck_libs_all" 0 | ||||
| 
 | ||||
|     rlPhaseEnd | ||||
|          | ||||
|     rlPhaseStartTest "HMAC verification" | ||||
| 
 | ||||
|         # Verify HMAC. | ||||
|         rlRun "fipscheck hmac" 0 | ||||
| 
 | ||||
|         # Verify HMAC with specific suffix. | ||||
|         rlRun "fipscheck -s .suffix suffixhmac" 0 | ||||
| 
 | ||||
|         # Incorrect HMAC causes failure. | ||||
|         rlRun "fipscheck incorrecthmac" 1 | ||||
|          | ||||
|         # Empty HMAC causes failure. | ||||
|         rlRun "fipscheck emptyhmac" 1 | ||||
|                  | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest "Return Codes" | ||||
|      | ||||
|         # 0: Checksum OK. | ||||
|         rlLog "0: Checksum OK" | ||||
|         rlRun "fipscheck hmac" 0 | ||||
|         | ||||
|         # 1: Checksum mismatch. | ||||
|         rlLog "1: Checksum mismatch" | ||||
|         rlRun "fipscheck incorrecthmac" 1 | ||||
| 
 | ||||
|         # 2: Missing filename. | ||||
|         rlLog "2: Missing filename" | ||||
|         rlRun "fipscheck" 2 | ||||
|          | ||||
|         # 3: Cannot open the checksum file. | ||||
|         rlLog "3: Cannot open the checksum file" | ||||
|         rlRun "fipscheck runtest.sh" 3 | ||||
|          | ||||
|         # 4: Cannot read the file to be checksummed. | ||||
|         rlLog "4: Cannot read the file to be checksummed" | ||||
|         rlRun "chmod a-r hmac" 0 | ||||
|         rlRun "runuser -u testuser fipscheck hmac" 4 | ||||
|         rlRun "chmod a+r hmac" 0 | ||||
| 
 | ||||
|         # 5: Memory allocation error. | ||||
|         # N/A | ||||
| 
 | ||||
|         # 10 and higher: Failure during self-checking the libfipscheck.so shared library. | ||||
|         rlLog "10 and higher: Failure during self-checking the libfipscheck.so shared library" | ||||
|         rlRun "mv $fipscheck_libs_some_hmac ${fipscheck_libs_some_hmac}.backup" 0 | ||||
|         rlRun "fipscheck hmac" 10-19 | ||||
|         rlRun "mv ${fipscheck_libs_some_hmac}.backup $fipscheck_libs_some_hmac" 0 | ||||
|          | ||||
|         # 20 and higher: Failure during self-checking the fipscheck binary. | ||||
|         rlRun "mv $fipscheck_hmac ${fipscheck_hmac}.backup" 0 | ||||
|         rlRun "fipscheck hmac" 20-255 | ||||
|         rlRun "mv ${fipscheck_hmac}.backup $fipscheck_hmac" 0 | ||||
|             | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
| 
 | ||||
|         rlRun "popd" 0 | ||||
|         rlRun "rm -rf $tmpdir" 0 | ||||
|         rlRun "userdel testuser" 0 | ||||
| 
 | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
| rlJournalPrintText | ||||
| 
 | ||||
| rlJournalEnd | ||||
| @ -1,61 +0,0 @@ | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| #   Makefile of /CoreOS/fipscheck/Sanity/fipshmac
 | ||||
| #   Description: Test fipshmac helper tool
 | ||||
| #   Author: Ondrej Moris <omoris@redhat.com> 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| #
 | ||||
| #   Copyright (c) 2013 Red Hat, Inc. All rights reserved.
 | ||||
| #
 | ||||
| #   This copyrighted material is made available to anyone wishing
 | ||||
| #   to use, modify, copy, or redistribute it subject to the terms
 | ||||
| #   and conditions of the GNU General Public License version 2.
 | ||||
| #
 | ||||
| #   This program is distributed in the hope that it will be
 | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied
 | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 | ||||
| #   PURPOSE. See the GNU General Public License for more details.
 | ||||
| #
 | ||||
| #   You should have received a copy of the GNU General Public
 | ||||
| #   License along with this program; if not, write to the Free
 | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 | ||||
| #   Boston, MA 02110-1301, USA.
 | ||||
| #
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| export TEST=/CoreOS/fipscheck/Sanity/fipshmac | ||||
| export TESTVERSION=1.0 | ||||
| 
 | ||||
| BUILT_FILES= | ||||
| 
 | ||||
| FILES=$(METADATA) runtest.sh Makefile PURPOSE | ||||
| 
 | ||||
| .PHONY: all install download clean | ||||
| 
 | ||||
| run: $(FILES) build | ||||
| 	./runtest.sh | ||||
| 
 | ||||
| build: $(BUILT_FILES) | ||||
| 	test -x runtest.sh || chmod a+x runtest.sh | ||||
| 
 | ||||
| clean: | ||||
| 	rm -f *~ $(BUILT_FILES) | ||||
| 
 | ||||
| 
 | ||||
| include /usr/share/rhts/lib/rhts-make.include | ||||
| 
 | ||||
| $(METADATA): Makefile | ||||
| 	@echo "Owner:           Ondrej Moris <omoris@redhat.com>" > $(METADATA) | ||||
| 	@echo "Name:            $(TEST)" >> $(METADATA) | ||||
| 	@echo "TestVersion:     $(TESTVERSION)" >> $(METADATA) | ||||
| 	@echo "Path:            $(TEST_DIR)" >> $(METADATA) | ||||
| 	@echo "Description:     Test fipshmac helper tool" >> $(METADATA) | ||||
| 	@echo "Type:            Sanity" >> $(METADATA) | ||||
| 	@echo "TestTime:        15m" >> $(METADATA) | ||||
| 	@echo "RunFor:          fipscheck" >> $(METADATA) | ||||
| 	@echo "Requires:        fipscheck" >> $(METADATA) | ||||
| 	@echo "Priority:        Normal" >> $(METADATA) | ||||
| 	@echo "License:         GPLv2" >> $(METADATA) | ||||
| 	@echo "Confidential:    no" >> $(METADATA) | ||||
| 	@echo "Destructive:     no" >> $(METADATA) | ||||
| 
 | ||||
| 	rhts-lint $(METADATA) | ||||
| @ -1,5 +0,0 @@ | ||||
| PURPOSE of /CoreOS/fipscheck/Sanity/fipshmac | ||||
| Description: Test fipshmac helper tool | ||||
| Author: Ondrej Moris <omoris@redhat.com> | ||||
| 
 | ||||
| Test fipshmac functionality, supported parameters as well as all return codes. | ||||
| @ -1,129 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /CoreOS/fipscheck/Sanity/fipshmac | ||||
| #   Description: Test fipshmac helper tool. | ||||
| #   Author: Ondrej Moris <omoris@redhat.com> | ||||
| #  | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/bin/rhts-environment.sh || exit 1 | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="fipscheck" | ||||
| 
 | ||||
| rlJournalStart | ||||
| 
 | ||||
|     rlPhaseStartSetup | ||||
| 
 | ||||
|         rlCheckRpm "fipscheck" || rlDie | ||||
| 
 | ||||
|         testdir=$(mktemp -d) | ||||
|         testpath=$(mktemp) | ||||
|         testfile=$(basename $testpath) | ||||
|         mountdir=$(mktemp -d) | ||||
| 
 | ||||
|         rlRun "useradd testuser" 0 | ||||
|         rlRun "mount -t tmpfs -o size=512k tmpfs $mountdir" 0 | ||||
|         rlRun "dd if=/dev/urandom bs=512k count=1 of=${mountdir}/blob" 0 | ||||
|          | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest "HMAC generation" | ||||
| 
 | ||||
|         # Create HMAC. | ||||
|         rlRun "echo 'abc' > $testpath" 0 | ||||
|         rlRun "fipshmac $testpath" 0 | ||||
| 
 | ||||
|         # Create HMAC in specified directory. | ||||
|         rlRun "fipshmac -d $testdir $testpath" 0 | ||||
| 
 | ||||
|         # Create HMAC with a specific suffix. | ||||
|         rlRun "fipshmac -s .suffix $testpath" 0 | ||||
|          | ||||
|         # Check that HMAC files exist. | ||||
|         rlAssertExists "/tmp/.${testfile}.hmac" | ||||
|         rlAssertExists "/tmp/.${testfile}.suffix" | ||||
|         rlAssertExists "$testdir/${testfile}.hmac" | ||||
| 
 | ||||
|         # Verify HMAC. | ||||
| 	rlRun "fipscheck $testpath" 0 | ||||
| 
 | ||||
|         # Check that HMAC file is not empty. | ||||
|         rlRun "test -s /tmp/.${testfile}.hmac" 0 | ||||
| 
 | ||||
|         # Check that HMAC file does not change when recomputed. | ||||
|         old=$(cat /tmp/.${testfile}.hmac) | ||||
|         rlRun "fipshmac $testpath" 0 | ||||
|         new=$(cat /tmp/.${testfile}.hmac) | ||||
|         rlAssertEquals "Hashes should not differ" "$old" "$new" | ||||
| 
 | ||||
|         # Check that HMAC file changes when recomputed and file changed. | ||||
|         old=$(cat /tmp/.${testfile}.hmac) | ||||
|         rlRun "echo 'efg' >> $testpath" 0 | ||||
|         rlRun "fipshmac $testpath" 0 | ||||
|         new=$(cat ./.test.hmac) | ||||
|         rlAssertNotEquals "Hashes should differ" "$old" "$new" | ||||
|          | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest "Return Codes" | ||||
| 
 | ||||
|        # 0: OK. | ||||
|        rlLog "0: OK" | ||||
|        rlRun "fipshmac $testpath" 0 | ||||
|               | ||||
|        # 2: Missing filename. | ||||
|        rlLog "2: Missing filename" | ||||
|        rlRun "fipshmac" 2 | ||||
| 
 | ||||
|        # 3: Cannot open the checksum file for writing. | ||||
|        rlLog "3: Cannot open the checksum file for writing" | ||||
|        rlRun "chmod a-r $testpath" 0 | ||||
|        rlRun "runuser -u testuser fipshmac $testpath" 3 | ||||
|        rlRun "chmod a+r $testpath" 0 | ||||
| 
 | ||||
|        # 4: Cannot read the file to be checksummed. | ||||
|        rlLog "4: Cannot read the file to be checksummed" | ||||
|        rlRun "fipshmac missing" 4 | ||||
|         | ||||
|        # 5: Memory allocation error | ||||
|        # N/A | ||||
|         | ||||
|        # 6,7: Cannot write to the checksum file. | ||||
|        rlLog "6,7: Cannot write to the checksum file" | ||||
|        rlRun "fipshmac -d $mountdir $testpath" 6,7 | ||||
|         | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
| 
 | ||||
|         rlRun "rm -rf $testpath .${testfile}.hmac $testdir" 0 | ||||
|         rlRun "userdel testuser" 0 | ||||
|         rlRun "umount $mountdir" 0 | ||||
| 
 | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
| rlJournalPrintText | ||||
| 
 | ||||
| rlJournalEnd | ||||
| @ -1,3 +0,0 @@ | ||||
| #!/bin/bash | ||||
| export TEST_DOCKER_EXTRA_ARGS="--privileged" | ||||
| exec merge-standard-inventory "$@" | ||||
| @ -1,64 +0,0 @@ | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| #
 | ||||
| #   Makefile of /CoreOS/fipscheck/Sanity/library
 | ||||
| #
 | ||||
| #   Description: Test fipscheck API
 | ||||
| #
 | ||||
| #   Author: Ondrej Moris <omoris@redhat.com> 
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| #
 | ||||
| #   Copyright (c) 2017 Red Hat, Inc. All rights reserved.
 | ||||
| #
 | ||||
| #   This copyrighted material is made available to anyone wishing
 | ||||
| #   to use, modify, copy, or redistribute it subject to the terms
 | ||||
| #   and conditions of the GNU General Public License version 2.
 | ||||
| #
 | ||||
| #   This program is distributed in the hope that it will be
 | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied
 | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 | ||||
| #   PURPOSE. See the GNU General Public License for more details.
 | ||||
| #
 | ||||
| #   You should have received a copy of the GNU General Public
 | ||||
| #   License along with this program; if not, write to the Free
 | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 | ||||
| #   Boston, MA 02110-1301, USA.
 | ||||
| #
 | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | ||||
| 
 | ||||
| export TEST=/CoreOS/fipscheck/Sanity/library | ||||
| export TESTVERSION=1.0 | ||||
| 
 | ||||
| BUILT_FILES= | ||||
| 
 | ||||
| FILES=$(METADATA) runtest.sh Makefile PURPOSE test.c | ||||
| 
 | ||||
| .PHONY: all install download clean | ||||
| 
 | ||||
| run: $(FILES) build | ||||
| 	./runtest.sh | ||||
| 
 | ||||
| build: $(BUILT_FILES) | ||||
| 	test -x runtest.sh || chmod a+x runtest.sh | ||||
| 
 | ||||
| clean: | ||||
| 	rm -f *~ $(BUILT_FILES) | ||||
| 
 | ||||
| 
 | ||||
| include /usr/share/rhts/lib/rhts-make.include | ||||
| 
 | ||||
| $(METADATA): Makefile | ||||
| 	@echo "Owner:           Ondrej Moris <omoris@redhat.com>" > $(METADATA) | ||||
| 	@echo "Name:            $(TEST)" >> $(METADATA) | ||||
| 	@echo "TestVersion:     $(TESTVERSION)" >> $(METADATA) | ||||
| 	@echo "Path:            $(TEST_DIR)" >> $(METADATA) | ||||
| 	@echo "Description:     Test fipscheck API" >> $(METADATA) | ||||
| 	@echo "Type:            Sanity" >> $(METADATA) | ||||
| 	@echo "TestTime:        15m" >> $(METADATA) | ||||
| 	@echo "RunFor:          fipscheck" >> $(METADATA) | ||||
| 	@echo "Requires:        fipscheck fipscheck-devel fipscheck-lib libgcrypt libreswan" >> $(METADATA) | ||||
| 	@echo "Priority:        Normal" >> $(METADATA) | ||||
| 	@echo "License:         GPLv2" >> $(METADATA) | ||||
| 	@echo "Confidential:    no" >> $(METADATA) | ||||
| 	@echo "Destructive:     no" >> $(METADATA) | ||||
| 
 | ||||
| 	rhts-lint $(METADATA) | ||||
| @ -1,10 +0,0 @@ | ||||
| PURPOSE of /CoreOS/fipscheck/Sanity/library | ||||
| 
 | ||||
| Test fipscheck library API: | ||||
| 
 | ||||
|  * FIPSCHECK_verify() | ||||
|  * FIPSCHECK_verify_ex() | ||||
|  * FIPSCHECK_verify_files() | ||||
|  * FIPSCHECK_verify_files_ex() | ||||
|  * FIPSCHECK_kernel_fips_mode() | ||||
|  * FIPSCHECK_fips_module_installed() | ||||
| @ -1,416 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /CoreOS/fipscheck/Sanity/library | ||||
| #   Description: Test fipscheck API | ||||
| #   Author: Ondrej Moris <omoris@redhat.com> | ||||
| #  | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/bin/rhts-environment.sh || exit 1 | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| #PACKAGE="fipscheck" | ||||
| rlJournalStart | ||||
| 
 | ||||
|     rlPhaseStartSetup | ||||
| 
 | ||||
|         rlCheckMakefileRequires || rlDie | ||||
|      | ||||
|         # Make sure nothing is prelinked (as expected in FIPS). | ||||
|         rlCheckRpm "prelink" && rlRun "prelink -ua" 0 | ||||
| 
 | ||||
|         rlIsRHEL 6 && debug="-DRHEL6" | ||||
| 	rlRun "gcc $debug test.c -o test -lfipscheck -ldl" | ||||
| 
 | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest "FIPSCHECK_verify()" | ||||
| 
 | ||||
|         rlLog "Function should return 1 if checksum is valid for a given" | ||||
|         rlLog "library (or a current process), 0 otherwise." | ||||
|          | ||||
|         # TC1 | ||||
|         fipshmac "test"  | ||||
|         rlRun "./test --verify" 1 \ | ||||
|               "TC1: process, correct checksum, should return 1" | ||||
|         rm -f ".test.hmac"  | ||||
| 
 | ||||
|         # TC2 | ||||
|         echo 'abc' > ".test.hmac"  | ||||
|         rlRun "./test --verify" 0 \ | ||||
|               "TC2: process, incorrect checksum, should return 0" | ||||
|         rm -f ".test.hmac"  | ||||
| 
 | ||||
|         # TC3 | ||||
|         rm -f ".test.hmac"  | ||||
|         rlRun "./test --verify" 0 \ | ||||
|               "TC3: process, missing checksum, should return 0" | ||||
| 
 | ||||
|         # Setup for TC4 - TC8. | ||||
|         hmac=$(rpm -ql libgcrypt | grep hmac | head -1) | ||||
|         name=$(echo $hmac | sed 's|^.*/\.\(.\+\).hmac|\1|') | ||||
|         path=$(echo $hmac | sed 's|^\(.\+\)/\..*$|\1/|') | ||||
|         file=$(rpm -ql libgcrypt | egrep "/${name}\$") | ||||
|         symb=$(objdump -T $file | grep .text | awk '{print $7}' | tail -1) | ||||
|         echo "hmac=$hmac" | ||||
|         echo "name=$name" | ||||
|         echo "path=$path" | ||||
|         echo "file=$file" | ||||
|         echo "symb=$symb" | ||||
| 
 | ||||
|         # TC4 | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify=${file},${symb}" 1 \ | ||||
|               "TC4: library, correct checksum, should return 1" | ||||
|          | ||||
|         # TC5 | ||||
|         temp=$(mktemp) | ||||
|         mv $hmac $temp | ||||
|         echo 'abc' >$hmac | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify=${file},${symb}" 0 \ | ||||
|               "TC5: library, incorrect checksum, should return 0" | ||||
|         mv $temp $hmac | ||||
| 
 | ||||
|         # TC6 | ||||
|         temp=$(mktemp) | ||||
|         mv $hmac $temp | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify=${file},${symb}" 0 \ | ||||
|               "TC6: library, missing checksum, should return 0" | ||||
|         mv $temp $hmac | ||||
|          | ||||
|         # TC7 | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify=${file}x,${symb}" 0 \ | ||||
|               "TC7: library, incorrect library, should return 0" | ||||
| 
 | ||||
|         # TC8 | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify=${file},${symb}x" 0 \ | ||||
|               "TC8: library, incorrect symbol, should return 0" | ||||
|          | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     if !rlIsRHEL 6; then | ||||
|     rlPhaseStartTest "FIPSCHECK_verify_ex()" | ||||
| 
 | ||||
|         rlLog "Function should return 1 if checksum is valid for a current" | ||||
|         rlLog "process or a given library and suffix (if fail_is_missing" | ||||
|         rlLog "is set to 1), 0 otherwise." | ||||
| 
 | ||||
|         # TC1 | ||||
|         fipshmac "test"  | ||||
|         rlRun "./test --verify-ex" 1 \ | ||||
|               "TC1: process, correct checksum, should return 1" | ||||
|         rm -f ".test.hmac"  | ||||
| 
 | ||||
|         # TC2 | ||||
|         echo 'abc' > ".test.hmac"  | ||||
|         rlRun "./test --verify-ex" 0 \ | ||||
|               "TC2: process, incorrect checksum, should return 0" | ||||
|         rm -f ".test.hmac"  | ||||
| 
 | ||||
|         # TC3 | ||||
|         rm -f ".test.hmac"  | ||||
|         rlRun "./test --verify-ex" 1 \ | ||||
|               "TC3: process, missing checksum (pass if missing), should return 1" | ||||
| 
 | ||||
|         # Setup for TC4 - TC10. | ||||
|         hmac=$(rpm -ql libgcrypt | grep hmac | head -1) | ||||
|         name=$(echo $hmac | sed 's|^.*/\.\(.\+\).hmac|\1|') | ||||
|         path=$(echo $hmac | sed 's|^\(.\+\)/\..*$|\1/|') | ||||
|         file=$(rpm -ql libgcrypt | egrep "/${name}\$") | ||||
|         symb=$(objdump -T $file | grep .text | awk '{print $7}' | tail -1) | ||||
|         echo "hmac=$hmac" | ||||
|         echo "name=$name" | ||||
|         echo "path=$path" | ||||
|         echo "file=$file" | ||||
|         echo "symb=$symb" | ||||
| 
 | ||||
|         # TC4 | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify-ex=${file},${symb},.hmac,0" 1 \ | ||||
|               "TC4: library, correct checksum, should return 1" | ||||
|          | ||||
|         # TC5 | ||||
|         temp=$(mktemp) | ||||
|         mv $hmac $temp | ||||
|         echo 'abc' >$hmac | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify-ex=${file},${symb},.hmac,0" 0 \ | ||||
|               "TC5: library, incorrect checksum, should return 0" | ||||
|         mv $temp $hmac | ||||
| 
 | ||||
|         # TC6 | ||||
|         temp=$(mktemp) | ||||
|         mv $hmac $temp | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify-ex=${file},${symb},.hmac,0" 1 \ | ||||
|               "TC6: library, missing checksum (pass is missing), should return 1" | ||||
|         mv $temp $hmac | ||||
| 
 | ||||
|         # TC7 | ||||
|         temp=$(mktemp) | ||||
|         mv $hmac $temp | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify-ex=${file},${symb},.hmac,1" 0 \ | ||||
|               "TC7: library, missing checksum (fail is missing), should return 0" | ||||
|         mv $temp $hmac | ||||
|          | ||||
|         # TC8 | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify-ex=${file}x,${symb},.hmac,1" 0 \ | ||||
|               "TC8: library, incorrect library, should return 0" | ||||
| 
 | ||||
|         # TC9 | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify-ex=${file},${symb}x,.hmac,1" 0 \ | ||||
|               "TC9: library, incorrect symbol, should return 0" | ||||
| 
 | ||||
|         # TC10 | ||||
|         rlRun "LD_PRELOAD=$file ./test --verify-ex=${file},${symb},.hmacx,1" 0 \ | ||||
|               "TC10: library, incorrect suffix, should return 0" | ||||
|          | ||||
|     rlPhaseEnd | ||||
|     fi | ||||
|      | ||||
|     rlPhaseStartTest "FIPSCHECK_verify_files()" | ||||
| 
 | ||||
|         rlLog "Function should return 1 if checksum is valid for given files" | ||||
|         rlLog "otherwise." | ||||
| 
 | ||||
|         # Setup for TC1 - TC5. | ||||
|         hmac1=$(rpm -ql libgcrypt | grep hmac | head -1) | ||||
|         name1=$(echo $hmac1 | sed 's|^.*/\.\(.\+\).hmac|\1|') | ||||
|         path1=$(echo $hmac1 | sed 's|^\(.\+\)/\..*$|\1/|') | ||||
|         file1=$(rpm -ql libgcrypt | egrep "/${name1}\$") | ||||
|         echo "hmac1=$hmac1" | ||||
|         echo "name1=$name1" | ||||
|         echo "path1=$path1" | ||||
|         echo "file1=$file1" | ||||
| 
 | ||||
|         hmac2=$(rpm -ql libreswan | grep pluto.hmac | head -1) | ||||
|         name2=$(echo $hmac2 | sed 's|^.*/\(.\+\).hmac|\1|') | ||||
|         path2=$(echo $hmac2 | sed 's|^\(.\+\)/.*$|\1/|') | ||||
|         file2=$(rpm -ql libreswan | egrep "ipsec/${name2}\$") | ||||
|         echo "hmac2=$hmac2" | ||||
|         echo "name2=$name2" | ||||
|         echo "path2=$path2" | ||||
|         echo "file2=$file2" | ||||
|          | ||||
|         # TC1 | ||||
|         rlRun "./test --verify-files ${file1},${file2}" 1 \ | ||||
|               "TC1: library, correct checksums, should return 1" | ||||
|          | ||||
|         # TC2 | ||||
|         temp1=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         echo 'abc' >$hmac1 | ||||
|         rlRun "./test --verify-files=${file1},${file2}" 0 \ | ||||
|               "TC2: library, correct and incorrect checksums, should return 0" | ||||
|         mv $temp1 $hmac1 | ||||
| 
 | ||||
|         # TC3 | ||||
|         temp1=$(mktemp) | ||||
|         temp2=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         mv $hmac2 $temp2 | ||||
|         echo 'abc' >$hmac1 | ||||
|         echo 'abc' >$hmac2 | ||||
|         rlRun "./test --verify-files=${file1},${file2}" 0 \ | ||||
|               "TC3: library, incorrect checksums, should return 0" | ||||
|         mv $temp1 $hmac1 | ||||
|         mv $temp2 $hmac2 | ||||
|          | ||||
|         # TC4 | ||||
|         temp1=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         rlRun "./test --verify-files=${file1},${file2}" 0 \ | ||||
|               "TC4: library, one checksum missing, should return 0" | ||||
|         mv $temp1 $hmac1 | ||||
| 
 | ||||
|         # TC5 | ||||
|         temp1=$(mktemp) | ||||
|         temp2=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         mv $hmac2 $temp2 | ||||
|         rlRun "./test --verify-files=${file1},${file2}" 0 \ | ||||
|               "TC5: library, both checksums missing, should return 0" | ||||
|         mv $temp1 $hmac1 | ||||
|         mv $temp2 $hmac2 | ||||
|          | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     if !rlIsRHEL 6; then | ||||
|     rlPhaseStartTest "FIPSCHECK_verify_files_ex()" | ||||
| 
 | ||||
|         rlLog "Function should return 1 if checksum is valid for given files" | ||||
|         rlLog "and fail_if_missing is set to 1, 0 otherwise." | ||||
|          | ||||
|         # Setup for TC1 - TC8. | ||||
|         hmac1=$(rpm -ql libgcrypt | grep hmac | head -1) | ||||
|         name1=$(echo $hmac1 | sed 's|^.*/\.\(.\+\).hmac|\1|') | ||||
|         path1=$(echo $hmac1 | sed 's|^\(.\+\)/\..*$|\1/|') | ||||
|         file1=$(rpm -ql libgcrypt | egrep "/${name1}\$") | ||||
|         echo "hmac1=$hmac1" | ||||
|         echo "name1=$name1" | ||||
|         echo "path1=$path1" | ||||
|         echo "file1=$file1" | ||||
| 
 | ||||
|         hmac2=$(rpm -ql libreswan | grep hmac | head -1) | ||||
|         name2=$(echo $hmac2 | sed 's|^.*/\(.\+\).hmac|\1|') | ||||
|         path2=$(echo $hmac2 | sed 's|^\(.\+\)/.*$|\1/|') | ||||
|         file2=$(rpm -ql libreswan | egrep "/${name2}\$") | ||||
|         echo "hmac2=$hmac2" | ||||
|         echo "name2=$name2" | ||||
|         echo "path2=$path2" | ||||
|         echo "file2=$file2" | ||||
|          | ||||
|         # TC1 | ||||
|         rlRun "./test --verify-files-ex .hmac,1,${file1},${file2}" 1 \ | ||||
|               "TC1: library, correct checksums, should return 1" | ||||
|          | ||||
|         # TC2 | ||||
|         temp1=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         echo 'abc' >$hmac1 | ||||
|         rlRun "./test --verify-files-ex=.hmac,1,${file1},${file2}" 0 \ | ||||
|               "TC2: library, correct and incorrect checksums, should return 0" | ||||
|         mv $temp1 $hmac1 | ||||
| 
 | ||||
|         # TC3 | ||||
|         temp1=$(mktemp) | ||||
|         temp2=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         mv $hmac2 $temp2 | ||||
|         echo 'abc' >$hmac1 | ||||
|         echo 'abc' >$hmac2 | ||||
|         rlRun "./test --verify-files-ex=.hmac,1,${file1},${file2}" 0 \ | ||||
|               "TC3: library, incorrect checksums, should return 0" | ||||
|         mv $temp1 $hmac1 | ||||
|         mv $temp2 $hmac2 | ||||
|          | ||||
|         # TC4 | ||||
|         temp1=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         rlRun "./test --verify-files-ex=.hnac,1,${file1},${file2}" 0 \ | ||||
|               "TC4: library, one checksum missing (fail if missing), should return 0" | ||||
|         mv $temp1 $hmac1 | ||||
| 
 | ||||
|         # TC5 | ||||
|         temp1=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         rlRun "./test --verify-files-ex=.hnac,0,${file1},${file2}" 1 \ | ||||
|               "TC5: library, one checksum missing (pass if missing), should return 1" | ||||
|         mv $temp1 $hmac1 | ||||
|          | ||||
|         # TC6 | ||||
|         temp1=$(mktemp) | ||||
|         temp2=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         mv $hmac2 $temp2 | ||||
|         rlRun "./test --verify-files-ex=.hmac,1,${file1},${file2}" 0 \ | ||||
|               "TC6: library, both checksums missing (fail if missing), should return 0" | ||||
|         mv $temp1 $hmac1 | ||||
|         mv $temp2 $hmac2 | ||||
| 
 | ||||
|         # TC7 | ||||
|         temp1=$(mktemp) | ||||
|         temp2=$(mktemp) | ||||
|         mv $hmac1 $temp1 | ||||
|         mv $hmac2 $temp2 | ||||
|         rlRun "./test --verify-files-ex=.hmac,0,${file1},${file2}" 1 \ | ||||
|               "TC7: library, both checksums missing (pass if missing), should return 1" | ||||
|         mv $temp1 $hmac1 | ||||
|         mv $temp2 $hmac2 | ||||
| 
 | ||||
|         # TC8 | ||||
|         rlRun "./test --verify-files-ex=.hmacx,1,${file1},${file2}" 0 \ | ||||
|               "TC8: library, incorrect suffix, should return 0" | ||||
|                  | ||||
|     rlPhaseEnd | ||||
|     fi | ||||
|      | ||||
|     rlPhaseStartTest "FIPSCHECK_kernel_fips_mode()" | ||||
| 
 | ||||
|         rlLog "Function should return 1 if kernel is in FIPS mode, 0 otherwise." | ||||
| 
 | ||||
|         fips_mode=0 | ||||
|         grep 1 /proc/sys/crypto/fips_enabled && fips_mode=1 | ||||
|         rlRun "./test --kernel-fips-mode" $fips_mode | ||||
| 
 | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     if !rlIsRHEL 6; then | ||||
|     rlPhaseStartTest "FIPSCHECK_fips_module_installed()" | ||||
| 
 | ||||
|         rlLog "Function should return 1 if checksum for given library" | ||||
|         rlLog "(or a current process) is available, 0 otherwise." | ||||
| 
 | ||||
|         # TC1 | ||||
|         touch ".test.hmac"  | ||||
|         rlRun "./test --fips-module-installed" 1 \ | ||||
|               "TC1: process, checksum exists, should return 1" | ||||
|         rm -f ".test.hmac"  | ||||
| 
 | ||||
|         # TC2 | ||||
|         rm -f ".test.hmac"  | ||||
|         rlRun "./test --fips-module-installed" 0 \ | ||||
|               "TC2: process, checksum does not exist, should return 0" | ||||
|          | ||||
|         # Setup for TC3 - TC7. | ||||
|         hmac=$(rpm -ql libgcrypt | grep hmac | head -1) | ||||
|         name=$(echo $hmac | sed 's|^.*/\.\(.\+\).hmac|\1|') | ||||
|         path=$(echo $hmac | sed 's|^\(.\+\)/\..*$|\1/|') | ||||
|         file=$(rpm -ql libgcrypt | egrep "/${name}\$") | ||||
|         symb=$(objdump -T $file | grep .text | awk '{print $7}' | tail -1) | ||||
|         echo "hmac=$hmac" | ||||
|         echo "name=$name" | ||||
|         echo "path=$path" | ||||
|         echo "file=$file" | ||||
|         echo "symb=$symb" | ||||
| 
 | ||||
|         # TC3 | ||||
|         rlRun "LD_PRELOAD=$file ./test --fips-module-installed=${file},${symb},.hmac" 1 \ | ||||
|               "TC3: library, checksum exists, should return 1" | ||||
|          | ||||
|         # TC4 | ||||
|         temp=$(mktemp) | ||||
|         mv $hmac $temp | ||||
|         rlRun "LD_PRELOAD=$file ./test --fips-module-installed=${file},${symb},.hmac" 0 \ | ||||
|               "TC4: library, checksum does not exists, should return 0" | ||||
|         mv $temp $hmac | ||||
|         | ||||
|         # TC5 | ||||
|         rlRun "LD_PRELOAD=$file ./test --fips-module-installed=${file}x,${symb},.hmac" 1 \ | ||||
|               "TC5: library, incorrect library, should return 1 (failsafe)" | ||||
|          | ||||
|         # TC6 | ||||
|         rlRun "LD_PRELOAD=$file ./test --fips-module-installed=${file},${symb}x,.hmac" 1 \ | ||||
|               "TC6: library, incorrect symbol, should return 1 (failsafe)" | ||||
|                 | ||||
|         # TC7 | ||||
|         rlRun "LD_PRELOAD=$file ./test --fips-module-installed=${file},${symb},.hmacx" 0 \ | ||||
|               "TC7: library, incorrect suffix, should return 0" | ||||
|          | ||||
|     rlPhaseEnd | ||||
|     fi | ||||
|      | ||||
|     rlPhaseStartCleanup | ||||
|          rlRun "rm -f ./test" 0 | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
| rlJournalPrintText | ||||
| 
 | ||||
| rlJournalEnd | ||||
| @ -1,81 +0,0 @@ | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <fipscheck.h> | ||||
| #include <dlfcn.h> | ||||
| #include <getopt.h> | ||||
| #include <string.h> | ||||
| 
 | ||||
| int main(int argc, char *argv[]) { | ||||
| 
 | ||||
|     static struct option long_options[] = {             | ||||
|         { "verify", optional_argument, 0, 1 }, | ||||
|         { "verify-ex", optional_argument, 0, 2 }, | ||||
|         { "verify-files", required_argument, 0, 3 }, | ||||
|         { "verify-files-ex", required_argument, 0, 4 }, | ||||
|         { "fips-module-installed", optional_argument, 0, 5 }, | ||||
|         { "kernel-fips-mode", no_argument, 0, 6 }, | ||||
|         {0, 0, 0, 0} | ||||
|     }; | ||||
|      | ||||
|     int rc = 0, option_index = 0, fail_if_missing; | ||||
|     int c = getopt_long (argc, argv, "", long_options, &option_index); | ||||
|     char *libname = NULL, *symbolname = NULL, *suffix = NULL, *files[3]; | ||||
|      | ||||
|     switch (c) { | ||||
| 
 | ||||
|     case 1: | ||||
|         if (optarg != NULL) {             | ||||
|             libname = strtok(optarg, ","); | ||||
|             symbolname = strtok(NULL, ","); | ||||
|         }         | ||||
|         rc = FIPSCHECK_verify(libname, symbolname); | ||||
|         break; | ||||
| 
 | ||||
|     case 2: | ||||
|         if (optarg != NULL) {             | ||||
|             libname = strtok(optarg, ","); | ||||
|             symbolname = strtok(NULL, ","); | ||||
|             suffix = strtok(NULL, ","); | ||||
|             fail_if_missing = atoi(strtok(NULL, ",")); | ||||
|         } | ||||
| #ifndef RHEL6 | ||||
|         rc = FIPSCHECK_verify_ex(libname, symbolname, suffix, fail_if_missing); | ||||
| #endif | ||||
|         break; | ||||
| 
 | ||||
|     case 3: | ||||
|         files[0] = strtok(optarg, ","); | ||||
|         files[1] = strtok(NULL, ","); | ||||
|         files[2] = NULL; | ||||
|         rc = FIPSCHECK_verify_files((const char **) files); | ||||
|         break; | ||||
| 
 | ||||
|     case 4: | ||||
|         suffix = strtok(optarg, ","); | ||||
|         fail_if_missing = atoi(strtok(NULL, ",")); | ||||
|         files[0] = strtok(NULL, ","); | ||||
|         files[1] = strtok(NULL, ","); | ||||
|         files[2] = NULL; | ||||
| #ifndef RHEL6 | ||||
|         rc = FIPSCHECK_verify_files_ex(suffix, fail_if_missing, (const char **) files); | ||||
| #endif | ||||
|         break; | ||||
|          | ||||
|     case 5: | ||||
|         if (optarg != NULL) {             | ||||
|             libname = strtok(optarg, ","); | ||||
|             symbolname = strtok(NULL, ","); | ||||
|             suffix = strtok(NULL, ","); | ||||
|         }         | ||||
| #ifndef RHEL6 | ||||
|         rc = FIPSCHECK_fips_module_installed(libname, symbolname, suffix); | ||||
| #endif | ||||
|         break; | ||||
| 
 | ||||
|     case 6: | ||||
|         rc = FIPSCHECK_kernel_fips_mode(); | ||||
|         break; | ||||
|     } | ||||
|      | ||||
|     return rc; | ||||
| } | ||||
| @ -1,28 +0,0 @@ | ||||
| --- | ||||
| # Tests for classic and container | ||||
| - hosts: localhost | ||||
|   roles: | ||||
|   - role: standard-test-beakerlib | ||||
|     tags: | ||||
|     - classic | ||||
|     - container | ||||
|     tests: | ||||
|     - library | ||||
|     - fipscheck | ||||
|     - fipshmac | ||||
|     required_packages: | ||||
|     - fipscheck           # Required for library test | ||||
|     - fipscheck-devel     # Required for library test | ||||
|     - fipscheck-lib       # Required for library test | ||||
|     - libgcrypt           # Required for library test | ||||
|     - libreswan           # Required for library test | ||||
|     - gcc                 # Required for library test | ||||
| 
 | ||||
| # Tests for Atomic Host | ||||
| - hosts: localhost | ||||
|   roles: | ||||
|   - role: standard-test-beakerlib | ||||
|     tags: | ||||
|     - atomic | ||||
|     tests: | ||||
|     - fipshmac | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user