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
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
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 \
${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 < $^ > $@
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/
#include <canl.h>
#include <canl_cred.h>
+#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;
}
/* 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
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);