gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r16305 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r16305 - gnunet/src/transport
Date: Mon, 1 Aug 2011 22:59:42 +0200

Author: grothoff
Date: 2011-08-01 22:59:42 +0200 (Mon, 01 Aug 2011)
New Revision: 16305

Added:
   gnunet/src/transport/gnunet-transport-certificate-creation.c
Log:
LRN: added new file

Added: gnunet/src/transport/gnunet-transport-certificate-creation.c
===================================================================
--- gnunet/src/transport/gnunet-transport-certificate-creation.c                
                (rev 0)
+++ gnunet/src/transport/gnunet-transport-certificate-creation.c        
2011-08-01 20:59:42 UTC (rev 16305)
@@ -0,0 +1,116 @@
+#include "platform.h"
+#include "gnunet_disk_lib.h"
+#include "gnunet_os_lib.h"
+
+/* GNUnet TLS certificate shell scricpt
+ Creates a TSL certificate to use with HTTPS transport plugin
+*/
+
+void removecerts (char *file1, char *file2)
+{
+  if (GNUNET_DISK_file_test (file1) == GNUNET_YES)
+  {
+    CHMOD (file1, 0777);
+    REMOVE (file1);
+  }
+  if (GNUNET_DISK_file_test (file2) == GNUNET_YES)
+  {
+    CHMOD (file2, 0777);
+    REMOVE (file2);
+  }
+}
+
+int
+main (int argc, char **argv)
+{
+  struct GNUNET_OS_Process *openssl;
+  enum GNUNET_OS_ProcessStatusType status_type;
+  unsigned long code;
+
+/*
+if [ $# -ne 2 ]; then
+ exit 1
+fi
+*/
+  if (argc != 3)
+    return 1;
+
+/*
+rm -f $1 $2
+*/
+  removecerts (argv[1], argv[2]);
+  /* Create RSA Private Key */
+/*
+openssl genrsa -out $1 1024 2> /dev/null
+*/
+  openssl = GNUNET_OS_start_process (NULL, NULL, "openssl", "openssl", 
"genrsa", "-out", argv[1], "1024", NULL);
+/*
+if [ $? -ne 0 ]; then
+ rm -f $1 $2
+ exit 1
+fi 
+*/
+  if (openssl == NULL)
+    return 2;
+  if (GNUNET_OS_process_wait (openssl) != GNUNET_OK)
+  {
+    GNUNET_OS_process_kill (openssl, SIGTERM);
+    removecerts (argv[1], argv[2]);
+    return 3;
+  }
+  if (GNUNET_OS_process_status (openssl, &status_type, &code) != GNUNET_OK)
+  {
+    GNUNET_OS_process_kill (openssl, SIGTERM);
+    removecerts (argv[1], argv[2]);
+    return 4;
+  }
+  if (status_type != GNUNET_OS_PROCESS_EXITED || code != 0)
+  {
+    GNUNET_OS_process_kill (openssl, SIGTERM);
+    removecerts (argv[1], argv[2]);
+    return 5;
+  }
+  GNUNET_OS_process_close (openssl);
+  
+  /* Create a self-signed certificate in batch mode using rsa key*/
+/*
+   openssl req -batch -days 365 -out $2 -new -x509 -key $1 2> /dev/null
+*/
+  openssl = GNUNET_OS_start_process (NULL, NULL, "openssl", "openssl", "req", 
"-batch", "-days", "365", "-out", argv[2], "-new", "-x509", "-key", argv[1], 
NULL);
+/*
+if [ $? -ne 0 ]; then
+ rm -f $1 $2
+ exit 1
+fi 
+*/
+  if (openssl == NULL)
+    return 6;
+  if (GNUNET_OS_process_wait (openssl) != GNUNET_OK)
+  {
+    GNUNET_OS_process_kill (openssl, SIGTERM);
+    removecerts (argv[1], argv[2]);
+    return 7;
+  }
+  if (GNUNET_OS_process_status (openssl, &status_type, &code) != GNUNET_OK)
+  {
+    GNUNET_OS_process_kill (openssl, SIGTERM);
+    removecerts (argv[1], argv[2]);
+    return 8;
+  }
+  if (status_type != GNUNET_OS_PROCESS_EXITED || code != 0)
+  {
+    GNUNET_OS_process_kill (openssl, SIGTERM);
+    removecerts (argv[1], argv[2]);
+    return 9;
+  }
+  GNUNET_OS_process_close (openssl);
+/*
+chmod 0400 $1 $2
+*/
+  CHMOD (argv[1], 0400);
+  CHMOD (argv[2], 0400);
+/*
+exit 0
+*/
+  return 0;
+}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]