summaryrefslogtreecommitdiff
path: root/debian/tests
diff options
context:
space:
mode:
Diffstat (limited to 'debian/tests')
-rw-r--r--debian/tests/.cvsignore4
-rw-r--r--debian/tests/Makefile11
-rw-r--r--debian/tests/getpid.c39
-rwxr-xr-xdebian/tests/keygen-test12
4 files changed, 66 insertions, 0 deletions
diff --git a/debian/tests/.cvsignore b/debian/tests/.cvsignore
new file mode 100644
index 000000000..d0383c1d3
--- /dev/null
+++ b/debian/tests/.cvsignore
@@ -0,0 +1,4 @@
1key1
2key1.pub
3key2
4key2.pub
diff --git a/debian/tests/Makefile b/debian/tests/Makefile
new file mode 100644
index 000000000..16d9840ac
--- /dev/null
+++ b/debian/tests/Makefile
@@ -0,0 +1,11 @@
1test: getpid.so
2 ./keygen-test
3
4getpid.o: getpid.c
5 gcc -fPIC -c $< -o $@
6
7getpid.so: getpid.o
8 gcc -shared -o $@ $<
9
10clean:
11 rm -f getpid.o getpid.so key1 key1.pub key2 key2.pub
diff --git a/debian/tests/getpid.c b/debian/tests/getpid.c
new file mode 100644
index 000000000..c9e35b87e
--- /dev/null
+++ b/debian/tests/getpid.c
@@ -0,0 +1,39 @@
1/*
2 * Compile:
3
4gcc -fPIC -c getpid.c -o getpid.o
5gcc -shared -o getpid.so getpid.o
6
7 * Use:
8
9FORCE_PID=1234 LD_PRELOAD=./getpid.so bash
10
11#
12# Copyright (C) 2001-2008 Kees Cook
13# kees@outflux.net, http://outflux.net/
14#
15# This program is free software; you can redistribute it and/or
16# modify it under the terms of the GNU General Public License
17# as published by the Free Software Foundation; either version 2
18# of the License, or (at your option) any later version.
19#
20# This program is distributed in the hope that it will be useful,
21# but WITHOUT ANY WARRANTY; without even the implied warranty of
22# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23# GNU General Public License for more details.
24#
25# You should have received a copy of the GNU General Public License
26# along with this program; if not, write to the Free Software
27# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28# http://www.gnu.org/copyleft/gpl.html
29
30*/
31
32#include <sys/types.h>
33#include <unistd.h>
34#include <stdlib.h>
35
36pid_t getpid(void)
37{
38 return atoi(getenv("FORCE_PID"));
39}
diff --git a/debian/tests/keygen-test b/debian/tests/keygen-test
new file mode 100755
index 000000000..02b7c761a
--- /dev/null
+++ b/debian/tests/keygen-test
@@ -0,0 +1,12 @@
1#! /bin/sh
2
3rm -f key1 key1.pub key2 key2.pub
4LD_PRELOAD="$(pwd)/getpid.so" FORCE_PID=1234 \
5 ../../build-deb/ssh-keygen -N '' -f key1 >/dev/null
6LD_PRELOAD="$(pwd)/getpid.so" FORCE_PID=1234 \
7 ../../build-deb/ssh-keygen -N '' -f key2 >/dev/null
8if cmp -s key1 key2; then
9 echo "Generated two identical keys!" >&2
10 exit 1
11fi
12exit 0