00001 /* Copyright (c) 2008 Telefónica Investigación y Desarrollo SAU. 00002 00003 This file is part of LinuxMD-XOS. LinuxMD-XOS is part of XtreemOS, a Linux-based Grid Operating System, see <http://www.xtreemos.eu> for more details. The XtreemOS project has been developed with the financial support of the European Commission's IST program under contract #FP6-033576. 00004 00005 LinuxMD-XOS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. 00006 00007 LinuxMD-XOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 00008 00009 You should have received a copy of the GNU General Public License along with LinuxMD-XOS. If not, see <http://www.gnu.org/licenses/>. 00010 */ 00011 00022 #ifndef CREDS_STORE_H 00023 #define CREDS_STORE_H 00024 00034 #define XOS_CREDENTIAL_MAXSIZE 10000 00035 00041 struct creds_store_funcs { 00050 int (*store_cred) (char* data_in_pem_format); 00064 char* (*retrieve_cred) (char *config_name); 00073 int (*set_cred_timeout) (int timeout); 00082 int (*delete_cred) (); 00094 char * (*get_current_cred_configname) (); 00107 int (*set_current_cred_configname)(char *config_name); 00123 int (*check_cred_is_available) (char *config_name); 00147 char *(*join_new_session) (); 00161 int (*exit_session) (); 00181 int (*join_default_user_session) (); 00198 int (*protect_credstore) (); 00199 00200 }; 00201 00202 typedef const struct creds_store_funcs * xoscredstore_h; 00212 const struct creds_store_funcs * get_creds_store_funcs(); 00224 const struct creds_store_funcs * get_creds_store_funcs_by_impl(char* impl); 00225 00226 #endif