summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2016-05-04 08:07:37 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2016-05-04 08:07:39 +0200
commit460955dc2ecd8b5dea082a827fadbd908f50b7d8 (patch)
tree51e342e19c52aea12d1aed54c73dbd83eadf97bb
parent400e3f7f99ab20de2cf04fa3b892838122b99b84 (diff)
downloadgnutls-460955dc2ecd8b5dea082a827fadbd908f50b7d8.tar.gz
tests: avoid the usage of tmpnam()
Use a simpler version which is confined within the testsuite build directories.
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/set_x509_key_file.c2
-rw-r--r--tests/set_x509_key_file_der.c18
-rw-r--r--tests/set_x509_pkcs12_key.c13
-rw-r--r--tests/utils.c105
-rw-r--r--tests/utils.h4
6 files changed, 78 insertions, 66 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index f11057366a..41c3b43b57 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -64,6 +64,7 @@ endif
noinst_LTLIBRARIES = libutils.la
pkglib_LTLIBRARIES =
libutils_la_SOURCES = utils.h utils.c seccomp.c
+libutils_la_LIBADD = ../lib/libgnutls.la
ctests = mini-record-2 simple gc set_pkcs12_cred certder certuniqueid \
mpi certificate_set_x509_crl dn parse_ca moredn record-sizes \
@@ -233,6 +234,7 @@ TESTS_ENVIRONMENT = \
GNUTLS_SYSTEM_PRIORITY_FILE=$(srcdir)/system.prio \
PSK_FILE=$(srcdir)/psk.passwd \
EXEEXT=$(EXEEXT) \
+ builddir="$(builddir)" \
top_builddir="$(top_builddir)" \
srcdir="$(srcdir)"
diff --git a/tests/set_x509_key_file.c b/tests/set_x509_key_file.c
index b43dcd767f..3661da5eb9 100644
--- a/tests/set_x509_key_file.c
+++ b/tests/set_x509_key_file.c
@@ -75,7 +75,7 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&xcred) >= 0);
- certfile = tmpnam(NULL);
+ certfile = get_tmpname(NULL);
fp = fopen(certfile, "w");
if (fp == NULL)
diff --git a/tests/set_x509_key_file_der.c b/tests/set_x509_key_file_der.c
index 7f2856cbea..52c7c1e00b 100644
--- a/tests/set_x509_key_file_der.c
+++ b/tests/set_x509_key_file_der.c
@@ -31,15 +31,6 @@
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
-#if defined(_WIN32)
-
-void doit(void)
-{
- exit(77);
-}
-
-#else
-
#include "cert-common.h"
#include "utils.h"
@@ -87,8 +78,8 @@ void doit(void)
{
int ret;
gnutls_certificate_credentials_t xcred;
- char keyfile[L_tmpnam];
- char certfile[L_tmpnam];
+ char keyfile[TMPNAME_SIZE];
+ char certfile[TMPNAME_SIZE];
gnutls_datum_t tcert;
global_init();
@@ -98,8 +89,8 @@ void doit(void)
if (TMP_MAX < 2)
exit(77);
- assert(tmpnam(certfile)!=NULL);
- assert(tmpnam(keyfile)!=NULL);
+ assert(get_tmpname(certfile)!=NULL);
+ assert(get_tmpname(keyfile)!=NULL);
write_der(certfile, "CERTIFICATE", (char*)server_cert_pem);
write_der(keyfile, "RSA PRIVATE KEY", (char*)server_key_pem);
@@ -125,4 +116,3 @@ void doit(void)
gnutls_global_deinit();
}
-#endif
diff --git a/tests/set_x509_pkcs12_key.c b/tests/set_x509_pkcs12_key.c
index 83ff8beb7e..794d0e628d 100644
--- a/tests/set_x509_pkcs12_key.c
+++ b/tests/set_x509_pkcs12_key.c
@@ -27,16 +27,6 @@
#include <stdio.h>
#include <stdlib.h>
-
-#if defined(_WIN32)
-
-void doit(void)
-{
- exit(77);
-}
-
-#else
-
#include <assert.h>
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
@@ -84,7 +74,7 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&xcred) >= 0);
- certfile = tmpnam(NULL);
+ certfile = get_tmpname(NULL);
fp = fopen(certfile, "w");
if (fp == NULL)
@@ -113,4 +103,3 @@ void doit(void)
gnutls_global_deinit();
}
-#endif
diff --git a/tests/utils.c b/tests/utils.c
index 62ed8533c2..2a0b944e07 100644
--- a/tests/utils.c
+++ b/tests/utils.c
@@ -31,13 +31,16 @@
#include <unistd.h>
#include <errno.h>
#ifndef _WIN32
-# include <netinet/in.h>
-# include <sys/socket.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
#else
-# include <windows.h> /* for Sleep */
-# include <winbase.h>
+#include <windows.h> /* for Sleep */
+#include <winbase.h>
#endif
+#include <gnutls/gnutls.h>
+#include <gnutls/crypto.h>
+
#include <sys/types.h>
#include "utils.h"
@@ -54,41 +57,39 @@ const char *pkcs3 =
"-----END DH PARAMETERS-----\n";
const char *pkcs3_2048 =
- "-----BEGIN DH PARAMETERS-----\n"
- "MIICDgKCAQEAvVNCqM8M9ZoVYBKEkV2KN8ELHHJ75aTZiK9z6170iKSgbITkOxsd\n"
- "aBCLzHZd7d6/2aNofUeuWdDGHm73d8v53ma2HRVCNESeC2LKsEDFG9FjjUeugvfl\n"
- "zb85TLZwWT9Lb35Ddhdk7CtxoukjS0/JkCE+8RGzmk5+57N8tNffs4aSSHSe4+cw\n"
- "i4wULDxiG2p052czAMP3YR5egWvMuiByhy0vKShiZmOy1/Os5r6E/GUF+298gDjG\n"
- "OeaEUF9snrTcoBwB4yNjVSEbuAh5fMd5zFtz2+dzrk9TYZ44u4DQYkgToW05WcmC\n"
- "+LG0bLAH6lrJR5OMgyheZEo6F20z/d2yyQKCAQEAtzcuTHW61SFQiDRouk6eD0Yx\n"
- "0k1RJdaQdlRf6/Dcc6lEqnbezL90THzvxkBwfJ5jG1VZE7JlVCvLRkBtgb0/6SCf\n"
- "MATfEKG2JMOnKsJxvidmKEp4uN32LketXRrrEBl7rS+HABEfKAzqx+J6trBaq25E\n"
- "7FVJFsyoa8IL8N8YUWwhE2UuEfmiqQQaeoIUYC/xD2arMXn9N0W84Nyy2S9IL4ct\n"
- "e3Azi1Wc8MMfpbxxDRxXCnM2uMkLYWs1lQmcUUX+Uygv3P8lgS+RJ1Pi3+BWMx0S\n"
- "ocsZXqOr6dbEF1WOLObQRK7h/MZp80iVUyrBgX0MbVFN9M5i2u4KKTG95VKRtgIC\n"
- "AQA=\n"
- "-----END DH PARAMETERS-----\n";
+ "-----BEGIN DH PARAMETERS-----\n"
+ "MIICDgKCAQEAvVNCqM8M9ZoVYBKEkV2KN8ELHHJ75aTZiK9z6170iKSgbITkOxsd\n"
+ "aBCLzHZd7d6/2aNofUeuWdDGHm73d8v53ma2HRVCNESeC2LKsEDFG9FjjUeugvfl\n"
+ "zb85TLZwWT9Lb35Ddhdk7CtxoukjS0/JkCE+8RGzmk5+57N8tNffs4aSSHSe4+cw\n"
+ "i4wULDxiG2p052czAMP3YR5egWvMuiByhy0vKShiZmOy1/Os5r6E/GUF+298gDjG\n"
+ "OeaEUF9snrTcoBwB4yNjVSEbuAh5fMd5zFtz2+dzrk9TYZ44u4DQYkgToW05WcmC\n"
+ "+LG0bLAH6lrJR5OMgyheZEo6F20z/d2yyQKCAQEAtzcuTHW61SFQiDRouk6eD0Yx\n"
+ "0k1RJdaQdlRf6/Dcc6lEqnbezL90THzvxkBwfJ5jG1VZE7JlVCvLRkBtgb0/6SCf\n"
+ "MATfEKG2JMOnKsJxvidmKEp4uN32LketXRrrEBl7rS+HABEfKAzqx+J6trBaq25E\n"
+ "7FVJFsyoa8IL8N8YUWwhE2UuEfmiqQQaeoIUYC/xD2arMXn9N0W84Nyy2S9IL4ct\n"
+ "e3Azi1Wc8MMfpbxxDRxXCnM2uMkLYWs1lQmcUUX+Uygv3P8lgS+RJ1Pi3+BWMx0S\n"
+ "ocsZXqOr6dbEF1WOLObQRK7h/MZp80iVUyrBgX0MbVFN9M5i2u4KKTG95VKRtgIC\n"
+ "AQA=\n" "-----END DH PARAMETERS-----\n";
const char *pkcs3_3072 =
- "-----BEGIN DH PARAMETERS-----\n"
- "MIIDDgKCAYEAtRUay8nDgwE5dSVzW525wEu/d0vrFolvYJSevxg2myj5S+gr3Fgq\n"
- "OGaZc4zrBxkxsELc7GuCqaXSOWL4yobT8N05yGbYWkWRPf4crRMx3P7/Gba9WsmH\n"
- "BlL71uPf1IN9CanAlabkhV89RKiYaCpUI19+/sq+N2dO874ToBZCNhxZnTgRZ+po\n"
- "Gdr6XWM0lQ8imIKSer0px3ZHI+/5gmyPry35tGpwlbyclJAg3wlTSdnqDcLxq7AF\n"
- "OZ23PzC3ij7SFErOX9EFBdS2bjtU47O3OkPc9EIYMEv5nwnXICLHslwVifmURAjV\n"
- "LfpObL8LYGN4Gac4tFxuDa0PMg0ES5ADugYBwdRFTAtCy5WOYXINzAAOrH9MommT\n"
- "rMkELf7JOCaV2ktBsvTlrgMAXeyqbf2YSG6CGjj4QnUuqPybSgwPru7VlahsS2lo\n"
- "qjutBPpgIxS53o97Wi3V5kQedKJiNuIDNnJMFNuTADAM+OYwClTH7ZSwTsxEgVpr\n"
- "tMH+WnTI7KTJAoIBgQCrELwIUB4oNbf0x+fIpVndhDpl/WcFc/lDtmiRuym5gWbb\n"
- "NPeI+1rdhnS2R3+nCJODFQTcPNMgIJuSu2EnDCSs5xJ2k08SAgSzyxEdjBpY7qJe\n"
- "+lJPJ12zhcl0vgcvMhb/YgqVe2MKz0RvnYZPwHM/aJbjYjq/6OpK3fVw4M1ZccBK\n"
- "QD4OHK8HOvGU7Wf6kRIcxUlfn15spMCIsrAZQBddWLmQgktsxJNUS+AnaPwTBoOv\n"
- "nGCr1vzw8OS1DtS03VCmtqt3otXhJ3D2oCIG6ogxVAKfHR30KIfzZLBfmCjdzHmH\n"
- "x4OwYTN1wy5juA438QtiDtcgK60ZqSzQO08ZklRncA/TkkyEH6kPn5KSh/hW9O3D\n"
- "KZeAY/KF0/Bc1XNtqPEYFb7Vo3rbTsyjXkICN1Hk9S0OIKL42K7rWBepO9KuddSd\n"
- "aXgH9staP0HXCyyW1VAyqo0TwcWDhE/R7IQQGGwGyd4rD0T+ySW/t09ox23O6X8J\n"
- "FSp6mOVNcuvhB5U2gW8CAgEA\n"
- "-----END DH PARAMETERS-----\n";
+ "-----BEGIN DH PARAMETERS-----\n"
+ "MIIDDgKCAYEAtRUay8nDgwE5dSVzW525wEu/d0vrFolvYJSevxg2myj5S+gr3Fgq\n"
+ "OGaZc4zrBxkxsELc7GuCqaXSOWL4yobT8N05yGbYWkWRPf4crRMx3P7/Gba9WsmH\n"
+ "BlL71uPf1IN9CanAlabkhV89RKiYaCpUI19+/sq+N2dO874ToBZCNhxZnTgRZ+po\n"
+ "Gdr6XWM0lQ8imIKSer0px3ZHI+/5gmyPry35tGpwlbyclJAg3wlTSdnqDcLxq7AF\n"
+ "OZ23PzC3ij7SFErOX9EFBdS2bjtU47O3OkPc9EIYMEv5nwnXICLHslwVifmURAjV\n"
+ "LfpObL8LYGN4Gac4tFxuDa0PMg0ES5ADugYBwdRFTAtCy5WOYXINzAAOrH9MommT\n"
+ "rMkELf7JOCaV2ktBsvTlrgMAXeyqbf2YSG6CGjj4QnUuqPybSgwPru7VlahsS2lo\n"
+ "qjutBPpgIxS53o97Wi3V5kQedKJiNuIDNnJMFNuTADAM+OYwClTH7ZSwTsxEgVpr\n"
+ "tMH+WnTI7KTJAoIBgQCrELwIUB4oNbf0x+fIpVndhDpl/WcFc/lDtmiRuym5gWbb\n"
+ "NPeI+1rdhnS2R3+nCJODFQTcPNMgIJuSu2EnDCSs5xJ2k08SAgSzyxEdjBpY7qJe\n"
+ "+lJPJ12zhcl0vgcvMhb/YgqVe2MKz0RvnYZPwHM/aJbjYjq/6OpK3fVw4M1ZccBK\n"
+ "QD4OHK8HOvGU7Wf6kRIcxUlfn15spMCIsrAZQBddWLmQgktsxJNUS+AnaPwTBoOv\n"
+ "nGCr1vzw8OS1DtS03VCmtqt3otXhJ3D2oCIG6ogxVAKfHR30KIfzZLBfmCjdzHmH\n"
+ "x4OwYTN1wy5juA438QtiDtcgK60ZqSzQO08ZklRncA/TkkyEH6kPn5KSh/hW9O3D\n"
+ "KZeAY/KF0/Bc1XNtqPEYFb7Vo3rbTsyjXkICN1Hk9S0OIKL42K7rWBepO9KuddSd\n"
+ "aXgH9staP0HXCyyW1VAyqo0TwcWDhE/R7IQQGGwGyd4rD0T+ySW/t09ox23O6X8J\n"
+ "FSp6mOVNcuvhB5U2gW8CAgEA\n" "-----END DH PARAMETERS-----\n";
void _fail(const char *format, ...)
{
@@ -151,7 +152,7 @@ void escapeprint(const char *str, size_t len)
{
size_t i;
- printf(" (length %d bytes):\n\t", (int) len);
+ printf(" (length %d bytes):\n\t", (int)len);
for (i = 0; i < len; i++) {
if (((str[i] & 0xFF) >= 'A' && (str[i] & 0xFF) <= 'Z') ||
((str[i] & 0xFF) >= 'a' && (str[i] & 0xFF) <= 'z') ||
@@ -223,7 +224,7 @@ int main(int argc, char *argv[])
argv[0]);
return 1;
}
- while (argc-- > 1);
+ while (argc-- > 1) ;
doit();
@@ -234,3 +235,29 @@ int main(int argc, char *argv[])
return error_count ? 1 : 0;
}
+char *get_tmpname(char s[TMPNAME_SIZE])
+{
+ unsigned char rnd[6];
+ static char _s[TMPNAME_SIZE];
+ int ret;
+ char *p;
+ const char *path;
+
+ ret = gnutls_rnd(GNUTLS_RND_NONCE, rnd, sizeof(rnd));
+ if (ret < 0)
+ return NULL;
+
+ path = getenv("builddir");
+ if (path == NULL)
+ path = ".";
+
+ if (s == NULL)
+ p = _s;
+ else
+ p = s;
+
+ snprintf(p, TMPNAME_SIZE, "%s/tmpfile-%02x%02x%02x%02x%02x%02x.tmp", path, (unsigned)rnd[0], (unsigned)rnd[1],
+ (unsigned)rnd[2], (unsigned)rnd[3], (unsigned)rnd[4], (unsigned)rnd[5]);
+
+ return p;
+}
diff --git a/tests/utils.h b/tests/utils.h
index 24bfcd3778..227a445ee1 100644
--- a/tests/utils.h
+++ b/tests/utils.h
@@ -23,6 +23,7 @@
#ifndef UTILS_H
#define UTILS_H
+#include <stdio.h>
#include <signal.h>
#include <string.h>
#include <stdarg.h>
@@ -67,6 +68,9 @@ extern void binprint(const void *str, size_t len);
int disable_system_calls(void);
void sec_sleep(int sec);
+#define TMPNAME_SIZE 128
+char *get_tmpname(char s[TMPNAME_SIZE]);
+
/* This must be implemented elsewhere. */
extern void doit(void);