summaryrefslogtreecommitdiffstats
path: root/pica-registrar
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2012-07-10 21:54:34 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2012-07-10 21:54:34 +0000
commit8112ceb1d2ffab755b83dc7ed65840a5c88fbcee (patch)
tree790758307734fc84dab433c601c86866d3391bee /pica-registrar
parent7f9ada392430df8b11ee198634b3fbff73276bcb (diff)
downloadpica-pica-8112ceb1d2ffab755b83dc7ed65840a5c88fbcee.tar.gz
pica-pica-8112ceb1d2ffab755b83dc7ed65840a5c88fbcee.zip
continuing registrar...
git-svn-id: svn://localhost/project_picapica/trunk@143 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'pica-registrar')
-rw-r--r--pica-registrar/PICA_registrar.cpp32
1 files changed, 30 insertions, 2 deletions
diff --git a/pica-registrar/PICA_registrar.cpp b/pica-registrar/PICA_registrar.cpp
index 9ffba7b..c9ec901 100644
--- a/pica-registrar/PICA_registrar.cpp
+++ b/pica-registrar/PICA_registrar.cpp
@@ -11,14 +11,22 @@
#include <sys/errno.h>
#include <cstring>
+#include <cstdlib>
#include <map>
using namespace std;
#define PICA_REGISTRAR_PORT 2299
#define READ_BUF_SIZE 4096
+#define WRITE_BUF_SIZE 8192
+
char read_buf[READ_BUF_SIZE];
+char write_buf[WRITE_BUF_SIZE];
+
+
+unsigned int current_id = 30 000;
+
int main(int argc, char *argv[])
{
int socket, client_socket, ret, pos, disconnect_flag;
@@ -67,7 +75,7 @@ while (1)
continue;
{
- FILE *csr_temp;
+ FILE *csr_temp, *cert;
std::string filename = (string("/tmp/CSR-") + inet_ntoa(sc.sin_addr) );
@@ -91,7 +99,27 @@ while (1)
fclose(csr_temp);
- //system(openssl ca)
+ std::string cert_filename = atoi(current_id) + ".pem";
+
+ std::string sign_command = "openssl ca -config ca_config.txt -utf8 -subj /CN=" + atoi(current_id) + "\\#tester -batch -notext -out " + cert_filename + " -in " + csr_temp;
+
+ puts(sign_command.c_str);//debug
+
+ system(sign_command.c_str);
+
+ cert = fopen(cert_filename, "r");
+
+ if (!cert)
+ {
+ perror("fopen");
+ remove(filename.c_str);
+ remove(cert_filename);
+ continue;
+ }
+
+ //send
+
+ current_id++;
remove(filename.c_str);
}