17 #include <gwenhywfar/debug.h> 18 #include <gwenhywfar/pathmanager.h> 19 #include <gwenhywfar/cgui.h> 36 # include <gwenhywfar/gui_be.h> 38 # include <openssl/err.h> 39 # include <openssl/ssl.h> 40 # include <openssl/des.h> 47 int getKeyDataFromTextOpenSSL(
GWEN_GUI *gui,
49 unsigned char *buffer,
52 DES_cblock left, right;
59 DES_string_to_2keys(password, &left, &right);
89 I18N(
"The plugin could not be found.\n" 90 "Please make sure that you have the following " 91 "packages installed (at least on Debian/Ubuntu):\n" 92 "- libchipcard-plugins-libgwenhywfar (for chipcards)\n" 93 "- libaqbanking-plugins-libgwenhywfar\n"));
100 DBG_ERROR(0,
"Could not create crypt token");
109 int main(
int argc,
char **argv)
125 "Specify the configuration file",
126 "Specify the configuration file" 137 "force pin entry even if the error counter is not zero" 147 "Show this help screen",
148 "Show this help screen" 154 fprintf(stderr,
"Could not initialize Gwenhywfar.\n");
163 SSL_load_error_strings();
175 #ifdef GCT_IS_EXPERIMENTAL 176 fprintf(stderr,
"\n");
177 fprintf(stderr,
"\n");
178 fprintf(stderr,
"=================== WARNING ===================\n");
179 fprintf(stderr,
"This tool is still EXPERIMENTAL !!!\n");
180 fprintf(stderr,
"Please DON'T USE it with your daily key files !\n");
181 fprintf(stderr,
"===============================================\n");
182 fprintf(stderr,
"\n");
183 fprintf(stderr,
"\n");
193 fprintf(stderr,
"ERROR: Could not parse arguments main\n");
204 I18N(
" [GLOBAL OPTIONS] COMMAND " 205 "[LOCAL OPTIONS]\n"));
207 I18N(
"\nGlobal Options:\n"));
209 fprintf(stderr,
"ERROR: Could not create help string\n");
213 I18N(
"\nCommands:\n\n"));
216 " This command creates a crypt token" 220 " Display user data stored on the " 224 " Display key info stored on the " 228 " Update Crypt Token to newer version (e.g. OpenHBCI key" 231 I18N(
" showpasswords:\n" 232 " Display passwords store in a GWEN_PASSWD_STORE file\n\n"));
245 fprintf(stderr,
"ERROR: Command needed.\n");
249 if (strcasecmp(cmd,
"create")==0) {
252 else if (strcasecmp(cmd,
"showuser")==0) {
255 else if (strcasecmp(cmd,
"showkey")==0) {
258 else if (strcasecmp(cmd,
"genkey")==0) {
259 rv=
genKey(db, argc, argv);
261 else if (strcasecmp(cmd,
"activatekey")==0) {
264 else if (strcasecmp(cmd,
"update")==0) {
267 else if (strcasecmp(cmd,
"setsignseq")==0) {
270 else if (strcasecmp(cmd,
"changepin")==0) {
273 else if (strcasecmp(cmd,
"setkey")==0) {
274 rv=
setKey(db, argc, argv);
276 else if (strcasecmp(cmd,
"hashTree")==0) {
279 else if (strcasecmp(cmd,
"checkTree")==0) {
282 else if (strcasecmp(cmd,
"showpasswords")==0) {
286 fprintf(stderr,
"ERROR: Unknown command \"%s\".\n", cmd);
293 "WARNING: Could not deinitialize Gwenhywfar.\n");
struct GWEN_PLUGIN_MANAGER GWEN_PLUGIN_MANAGER
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
struct GWEN_DB_NODE GWEN_DB_NODE
struct GWEN_PLUGIN GWEN_PLUGIN
void GWEN_Logger_SetLevel(const char *logDomain, GWEN_LOGGER_LEVEL l)
GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN GWEN_Gui_SetKeyDataFromTextOpenSslFn(GWEN_GUI *gui, GWEN_GUI_KEYDATAFROMTEXT_OPENSSL_FN f)
GWEN_PLUGIN * GWEN_PluginManager_GetPlugin(GWEN_PLUGIN_MANAGER *pm, const char *s)
GWEN_CRYPT_TOKEN * GWEN_Crypt_Token_Plugin_CreateToken(GWEN_PLUGIN *pl, const char *name)
#define GWEN_ARGS_FLAGS_HELP
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
GWEN_PLUGIN_MANAGER * GWEN_PluginManager_FindPluginManager(const char *s)
#define GWEN_ARGS_RESULT_HELP
#define GWEN_ARGS_RESULT_ERROR
int activateKey(GWEN_DB_NODE *dbArgs, int argc, char **argv)
#define GWEN_ARGS_MODE_STOP_AT_FREEPARAM
int GWEN_Args_Usage(const GWEN_ARGS *args, GWEN_BUFFER *ubuf, GWEN_ARGS_OUTTYPE ot)
#define GWEN_ARGS_MODE_ALLOW_FREEPARAM
const char * GWEN_DB_GetCharValue(GWEN_DB_NODE *n, const char *path, int idx, const char *defVal)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
struct GWEN_CRYPT_TOKEN GWEN_CRYPT_TOKEN
#define GWEN_ARGS_FLAGS_LAST
int GWEN_Logger_Open(const char *logDomain, const char *ident, const char *file, GWEN_LOGGER_LOGTYPE logtype, GWEN_LOGGER_FACILITY facility)
int changePin(GWEN_DB_NODE *dbArgs, int argc, char **argv)
int genKey(GWEN_DB_NODE *dbArgs, int argc, char **argv)
int main(int argc, char **argv)
#define DBG_ERROR(dbg_logger, format, args...)
int GWEN_Args_Check(int argc, char **argv, int startAt, uint32_t mode, const GWEN_ARGS *args, GWEN_DB_NODE *db)
int checkTree(GWEN_DB_NODE *dbArgs, int argc, char **argv)
GWEN_CRYPT_TOKEN * getCryptToken(const char *ttype, const char *tname)
#define DBG_INFO(dbg_logger, format, args...)
GWEN_DB_NODE * GWEN_DB_Group_new(const char *name)
void GWEN_Gui_SetGui(GWEN_GUI *gui)
GWEN_GUI * GWEN_Gui_CGui_new(void)
#define GWEN_ARGS_FLAGS_HAS_ARGUMENT
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)