static int AH_NewKeyFileDialog_HandleActivatedIniLetter(GWEN_DIALOG *dlg) { AH_NEWKEYFILE_DIALOG *xdlg; int rv; GWEN_BUFFER *tbuf; assert(dlg); xdlg=GWEN_INHERIT_GETDATA(GWEN_DIALOG, AH_NEWKEYFILE_DIALOG, dlg); assert(xdlg); tbuf=GWEN_Buffer_new(0, 1024, 0, 1); /* add HTML version of the INI letter */ GWEN_Buffer_AppendString(tbuf, "<html>"); rv=AH_Provider_GetIniLetterHtml(AB_User_GetProvider(xdlg->user), xdlg->user, 0, 0, tbuf, 1); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (%d)", rv); // TODO: show error message AB_Banking_ClearCryptTokenList(xdlg->banking); GWEN_Buffer_free(tbuf); return GWEN_DialogEvent_ResultHandled; } GWEN_Buffer_AppendString(tbuf, "</html>"); /* add ASCII version of the INI letter for frontends which don't support HTML */ rv=AH_Provider_GetIniLetterTxt(AB_User_GetProvider(xdlg->user), xdlg->user, 0, 0, tbuf, 0); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (%d)", rv); // TODO: show error message AB_Banking_ClearCryptTokenList(xdlg->banking); GWEN_Buffer_free(tbuf); return GWEN_DialogEvent_ResultHandled; } rv=GWEN_Gui_Print(I18N("INI Letter"), "HBCI-INILETTER", I18N("INI Letter for HBCI"), GWEN_Buffer_GetStart(tbuf), 0); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (%d)", rv); // TODO: show error message GWEN_Buffer_free(tbuf); return GWEN_DialogEvent_ResultHandled; } GWEN_Buffer_free(tbuf); return GWEN_DialogEvent_ResultHandled; }
int AB_Banking_UnloadConfig(AB_BANKING *ab) { AB_PROVIDER *pro; int rv; assert(ab); /* clear all active crypt token */ AB_Banking_ClearCryptTokenList(ab); AB_Account_List_Clear(ab->accounts); AB_User_List_Clear(ab->users); /* deinit all providers */ pro=AB_Provider_List_First(ab->providers); while(pro) { while (AB_Provider_IsInit(pro)) { rv=AB_Banking_FiniProvider(ab, pro); if (rv) { DBG_WARN(AQBANKING_LOGDOMAIN, "Error deinitializing backend \"%s\"", AB_Provider_GetName(pro)); break; } } pro=AB_Provider_List_Next(pro); } /* while */ AB_Provider_List_Clear(ab->providers); return 0; }
GWEN_DIALOG *AH_Provider_GetNewCardUserDialog(AB_PROVIDER *pro) { int rv; GWEN_BUFFER *mtypeName; GWEN_BUFFER *mediumName; GWEN_CRYPT_TOKEN *ct; AB_BANKING *ab; assert(pro); ab=AB_Provider_GetBanking(pro); assert(ab); mtypeName=GWEN_Buffer_new(0, 64, 0, 1); mediumName=GWEN_Buffer_new(0, 64, 0, 1); rv=AB_Banking_CheckCryptToken(ab, GWEN_Crypt_Token_Device_Card, mtypeName, mediumName); if (rv<0) { DBG_ERROR(AQHBCI_LOGDOMAIN, "here (%d)", rv); GWEN_Gui_ShowError(I18N("Chipcard Error"), I18N("Error checking chip card (%d).\n" "Maybe libchipcard or its plugins are not installed?")); GWEN_Buffer_free(mediumName); GWEN_Buffer_free(mtypeName); return NULL; } rv=AB_Banking_GetCryptToken(AB_Provider_GetBanking(pro), GWEN_Buffer_GetStart(mtypeName), GWEN_Buffer_GetStart(mediumName), &ct); if (rv<0) { DBG_ERROR(AQHBCI_LOGDOMAIN, "here (%d)", rv); GWEN_Buffer_free(mediumName); GWEN_Buffer_free(mtypeName); return NULL; } if (strcasecmp(GWEN_Buffer_GetStart(mtypeName), "ddvcard")==0) { GWEN_DIALOG *dlg2; DBG_WARN(0, "DDV card"); dlg2=AH_DdvCardDialog_new(pro, ct); if (dlg2==NULL) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (no dialog)"); GWEN_Buffer_free(mediumName); GWEN_Buffer_free(mtypeName); return NULL; } GWEN_Dialog_SetWidgetText(dlg2, "", I18N("Create HBCI/FinTS DDV User")); GWEN_Buffer_free(mediumName); GWEN_Buffer_free(mtypeName); return dlg2; } else if (strcasecmp(GWEN_Buffer_GetStart(mtypeName), "starcoscard")==0) { DBG_ERROR(AQHBCI_LOGDOMAIN, "STARCOS RSA card currently not supported by this dialog"); // TODO } else if (strcasecmp(GWEN_Buffer_GetStart(mtypeName), "zkacard")==0) { GWEN_DIALOG *dlg2; DBG_WARN(0, "ZKA RSA card"); dlg2=AH_ZkaCardDialog_new(pro, ct); if (dlg2==NULL) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (no dialog)"); GWEN_Buffer_free(mediumName); GWEN_Buffer_free(mtypeName); return NULL; } GWEN_Dialog_SetWidgetText(dlg2, "", I18N("Create HBCI/FinTS ZKA RSA User")); GWEN_Buffer_free(mediumName); GWEN_Buffer_free(mtypeName); return dlg2; } else { DBG_ERROR(AQHBCI_LOGDOMAIN, "Card type \"%s\" not yet supported", GWEN_Buffer_GetStart(mtypeName)); } GWEN_Buffer_free(mediumName); GWEN_Buffer_free(mtypeName); AB_Banking_ClearCryptTokenList(AB_Provider_GetBanking(pro)); return NULL; }