canl_cred signer = NULL;
canl_cred proxy = NULL;
canl_ctx ctx = NULL;
- canl_err_code ret;
+ canl_err_code ret = 0;
ctx = canl_create_ctx();
if (ctx == NULL) {
- fprintf(stderr, "Failed to create library context\n");
+ fprintf(stderr, "[PROXY-INIT] Failed to create library context\n");
return 1;
}
-/* First create a certificate request with a brand-new keypair */
+ /* First create a certificate request with a brand-new keypair */
ret = canl_cred_new(ctx, &proxy);
+ if (ret){
+ fprintf(stderr, "[PROXY-INIT] Proxy context cannot be created"
+ ": %s\n", canl_get_error_message(ctx));
+ goto end;
+ }
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;
+ fprintf(stderr, "[PROXY-INIT] Failed to create certificate "
+ "request container: %s\n", canl_get_error_message(ctx));
+ goto end;
}
/*Create key-pairs implicitly*/
ret = canl_cred_set_lifetime(ctx, proxy, LIFETIME);
+ if (ret)
+ fprintf(stderr, "[PROXY-INIT] Failed set new cert lifetime"
+ ": %s\n", canl_get_error_message(ctx));
+
ret = canl_cred_set_cert_type(ctx, proxy, CANL_RFC);
-
+ if (ret)
+ fprintf(stderr, "[PROXY-INIT] Failed set new cert type"
+ ": %s\n", canl_get_error_message(ctx));
+
/* Load the signing credentials */
ret = canl_cred_new(ctx, &signer);
+ if (ret){
+ fprintf(stderr, "[PROXY-INIT] Proxy context cannot be created"
+ ": %s\n", canl_get_error_message(ctx));
+ goto end;
+ }
+
ret = canl_cred_load_cert_file(ctx, signer, USERCERT);
+ if (ret){
+ fprintf(stderr, "[PROXY-INIT] Cannot load signer's certificate"
+ ": %s\n", canl_get_error_message(ctx));
+ goto end;
+ }
ret = canl_cred_load_priv_key_file(ctx, signer, USERKEY, NULL, NULL);
- /* export lookup routines ?? */
+ if (ret){
+ fprintf(stderr, "[PROXY-INIT] Cannot access signer's key"
+ ": %s\n", canl_get_error_message(ctx));
+ goto end;
+ }
+ /*TODO? export lookup routines ?? */
#ifdef VOMS
GET_VOMS_EXTS(ctx, signer, STACK_OF(EXTS));
- foreach (EXTS)
- ret = canl_cred_set_ext(ctx, proxy, ext);
+ foreach (EXTS) {
+ ret = canl_cred_set_extension(ctx, proxy, ext);
+ if (ret){
+ fprintf(stderr, "[PROXY-INIT] Cannot set voms extension"
+ ": %s\n", canl_get_error_message(ctx));
+ }
+ }
#endif
/* Create the proxy certificate */
ret = canl_cred_sign_proxy(ctx, signer, proxy);
+ if (ret){
+ fprintf(stderr, "[PROXY-INIT] Cannot sign new proxy"
+ ": %s\n", canl_get_error_message(ctx));
+ goto end;
+ }
/* and store it in a file */
ret = canl_cred_save_proxyfile(ctx, proxy, "/tmp/x509up_u11930");
+ if (ret){
+ fprintf(stderr, "[PROXY-INIT] Cannot save new proxy"
+ ": %s\n", canl_get_error_message(ctx));
+ goto end;
+ }
ret = 0;