From e58ebd01ca7265483fc6cd3672b6b31fd684c031 Mon Sep 17 00:00:00 2001 From: Marcel Poul Date: Sun, 26 Feb 2012 14:44:37 +0000 Subject: [PATCH] build canl-proxy-init example --- emi.canl.canl-c/Makefile | 25 ++++++++++++++++++++++--- emi.canl.canl-c/examples/grid-proxy-init.c | 22 +++++++++++----------- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/emi.canl.canl-c/Makefile b/emi.canl.canl-c/Makefile index ece85c0..9189773 100644 --- a/emi.canl.canl-c/Makefile +++ b/emi.canl.canl-c/Makefile @@ -28,6 +28,9 @@ LFLAGS_CLI=-L. -lcanl_c CFLAGS_SER=-Wall -g -I${top_srcdir}/src -I. LFLAGS_SER=-L. -lcanl_c +CFLAGS_PRX=-Wall -g -I${top_srcdir}/src -I. +LFLAGS_PRX=-L. -lcanl_c + HEAD_CANL=canl.h canl_locl.h canl_err.h canl_cred.h canl_ssl.h SRC_CLI=canl_sample_client.c @@ -38,6 +41,10 @@ SRC_SER=canl_sample_server.c HEAD_SER=canl.h OBJ_SER=canl_sample_server.lo +SRC_PRX=grid-proxy-init.c +HEAD_PRX=canl.h canl_cred.h +OBJ_PRX=canl_proxy_init.lo + CFLAGS:=-Wall -g -I${top_srcdir}/src/proxy -I. ${CFLAGS} LIBCANL=libcanl_c.la @@ -56,7 +63,7 @@ version_info:=-version-info ${shell \ major:=${shell \ perl -e '$$,=":"; @F=split "\\.","${module.version}"; print $$F[0]+$$F[1]+${offset}' } -all: ${LIBCANL} server client +all: ${LIBCANL} server client proxy ${LIBCANL}:\ canl.lo canl_err.lo canl_dns.lo canl_ssl.lo canl_cert.lo canl_cred.lo \ @@ -90,6 +97,13 @@ server: ${OBJ_SER} ${OBJ_SER}: ${SRC_SER} ${HEAD_SER} ${LIBCANL} ${COMPILE} -c ${top_srcdir}/examples/${SRC_SER} ${CFLAGS_SER} -o $@ +proxy: ${OBJ_PRX} + ${LINK} $< ${LFLAGS_PRX} -o $@ + +${OBJ_PRX}: ${SRC_PRX} ${HEAD_PRX} ${LIBCANL} + ${COMPILE} -c ${top_srcdir}/examples/${SRC_PRX} ${CFLAGS_PRX} -o $@ + + canl_err.h: canl_error_codes ${top_srcdir}/src/gen_err_codes.pl < $^ > $@ @@ -104,14 +118,19 @@ install: all mkdir -p ${DESTDIR}${PREFIX}${prefix}/include ${INSTALL} -m 755 server ${DESTDIR}${PREFIX}${prefix}/bin/emi-canl-server ${INSTALL} -m 755 client ${DESTDIR}${PREFIX}${prefix}/bin/emi-canl-client + ${INSTALL} -m 755 proxy \ + ${DESTDIR}${PREFIX}${prefix}/bin/emi-canl-proxy-init ${INSTALL} -m 755 ${LIBCANL} ${DESTDIR}${PREFIX}${prefix}/${libdir} - ${INSTALL} -m 644 ${top_srcdir}/src/canl.h ${top_srcdir}/src/canl_ssl.h canl_err.h ${DESTDIR}${PREFIX}${prefix}/include + ${INSTALL} -m 644 ${top_srcdir}/src/canl.h \ + ${top_srcdir}/src/canl_ssl.h canl_err.h \ + ${DESTDIR}${PREFIX}${prefix}/include stage: all $(MAKE) install PREFIX=${stagedir} clean: - rm -rfv *.o *.lo ${LIBCANL} .libs client server ${top_srcdir}/*.c ${top_srcdir}/*.h lex.backup stage + rm -rfv *.o *.lo ${LIBCANL} .libs client server \ + ${top_srcdir}/*.c ${top_srcdir}/*.h lex.backup stage distclean: rm -rvf Makefile.inc config.status project/changelog *.spec debian/ diff --git a/emi.canl.canl-c/examples/grid-proxy-init.c b/emi.canl.canl-c/examples/grid-proxy-init.c index 118e37d..f48c180 100644 --- a/emi.canl.canl-c/examples/grid-proxy-init.c +++ b/emi.canl.canl-c/examples/grid-proxy-init.c @@ -1,12 +1,15 @@ #include #include +#define BITS 1024 +#define LIFETIME 600 +#define USERCERT "$HOME/.globus/usercert.pem" +#define USERKEY "$HOME/.globus/userkey.pem" int main(int argc, char *argv[]) { canl_cred signer = NULL; canl_cred proxy = NULL; - canl_x509_req proxy_req = NULL; canl_ctx ctx = NULL; canl_err_code ret; @@ -17,23 +20,22 @@ main(int argc, char *argv[]) } /* First create a certificate request with a brand-new keypair */ - ret = canl_req_create(ctx, &proxy_req); + ret = canl_cred_new(ctx, &proxy); + ret = canl_cred_new_req(ctx, proxy, BITS); if (ret) { fprintf(stderr, "Failed to create certificate request container: %s\n", canl_get_error_message(ctx)); return 1; } -/* Create a new structure for the proxy certificate to be signed copying the key-pairs just created */ - ret = canl_cred_new(ctx, &proxy); - ret = canl_cred_load_req(ctx, proxy, proxy_req); - ret = canl_cred_set_lifetime(ctx, proxy, 60*10); + /*Create key-pairs implicitly*/ + ret = canl_cred_set_lifetime(ctx, proxy, LIFETIME); ret = canl_cred_set_cert_type(ctx, proxy, CANL_RFC); -/* Load the signing credentials */ + /* Load the signing credentials */ ret = canl_cred_new(ctx, &signer); - ret = canl_cred_load_cert_file(ctx, signer, "$HOME/.globus/usercert.pem"); - ret = canl_cred_load_priv_key_file(ctx, signer, "$HOME/.globus/userkey.pem", NULL, NULL); + ret = canl_cred_load_cert_file(ctx, signer, USERCERT); + ret = canl_cred_load_priv_key_file(ctx, signer, USERKEY, NULL, NULL); /* export lookup routines ?? */ #ifdef VOMS @@ -55,8 +57,6 @@ end: canl_cred_free(ctx, signer); if (proxy) canl_cred_free(ctx, proxy); - if (proxy_req) - canl_req_free(ctx, proxy_req); if (ctx) canl_free_ctx(ctx); -- 1.8.2.3