iron.git

commit b9bcf312712bb9e13d1867dec11265a5eb36f506

Author: Paolo Lulli <paolo@lulli.net>

added export feature

 iron/libexec/iron/iron-client | 23 ++++++++++++++++++++---


diff --git a/iron/libexec/iron/iron-client b/iron/libexec/iron/iron-client
index cca06eae9987034556e9ff056353c3396b05bf4c..b6eb66142ebd825acdd7f752f0dce902ef11bd8d 100755
--- a/iron/libexec/iron/iron-client
+++ b/iron/libexec/iron/iron-client
@@ -36,6 +36,22 @@ 		exit -1
 	fi
 }
 
+function client_export_bundle()
+{
+	DOMAIN=$1
+	client=$2
+	CAPATH=$RCDIR/CA
+	CLIENT_CERTPATH=$RCDIR/${DOMAIN}/certs
+	target_dir="cert-$client"
+	mkdir -p $target_dir/CA
+	mkdir -p $target_dir/$domain
+	mkdir -p $target_dir/$domain/certs/$client
+	cp $CAPATH/ca.crt $target_dir/CA
+	cp $CLIENT_CERTPATH/$client/$client.crt $target_dir/$domain/certs/$client
+	openssl rsa -aes256 -in $CLIENT_CERTPATH/$client/$client.key --out $target_dir/$domain/certs/$client/$client.key
+	tar cvfz $target_dir.tar.gz $target_dir && rm -fr $target_dir
+}
+
 function client_home_setup_write()
 {
 
@@ -91,15 +107,16 @@ 		client_create_csr $service $client
 	fi 
 	if [ "$operation" = "setup" ]; then
 		test -f ${RCFILE} || ( client_home_setup_write $service $client; echo "Edit values in ${RCFILE}"; exit 0) 
-		#source ${RCFILE}
-		#client_home_setup_write $service $client
+	fi 
+	if [ "$operation" = "export" ]; then
+		client_export_bundle $service $client
 	fi 
 	if [ "$operation" = "delete" ]; then
 		source ${RCFILE}
 		#client_home_setup_delete  $service $client
 	fi 
 else
-	echo "Usage: iron client <setup|csr|delete> <service> <client-id>"
+	echo "Usage: iron client <setup|csr|delete|export> <service> <client-id>"
 	exit -1
 fi