Hello community, here is the log from the commit of package aqbanking for openSUSE:Factory checked in at 2014-02-28 16:22:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/aqbanking (Old) and /work/SRC/openSUSE:Factory/.aqbanking.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "aqbanking" Changes: -------- --- /work/SRC/openSUSE:Factory/aqbanking/aqbanking.changes 2014-02-19 06:51:28.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.aqbanking.new/aqbanking.changes 2014-02-28 16:22:42.000000000 +0100 @@ -1,0 +2,7 @@ +Wed Feb 19 11:26:38 UTC 2014 - jcnengel@gmail.com + +- Update to 5.4.0beta + + Fix problems with SEPA debit orders + + Fix wrong key length for RDH10 + +------------------------------------------------------------------- Old: ---- aqbanking-5.3.6beta.tar.gz New: ---- aqbanking-5.4.0beta.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ aqbanking.spec ++++++ --- /var/tmp/diff_new_pack.QaUik3/_old 2014-02-28 16:22:43.000000000 +0100 +++ /var/tmp/diff_new_pack.QaUik3/_new 2014-02-28 16:22:43.000000000 +0100 @@ -26,9 +26,8 @@ %define q4b_cfgmoddir %{fronts_libdir}/q4banking/cfgmodules Name: aqbanking -Version: 5.3.6beta +Version: 5.4.0beta Release: 0 -# FIXME Still unable to use parallel make. Last checked: 2011-09-25 Summary: Library for Online Banking Functions and Financial Data Import and Export License: GPL-2.0 or GPL-3.0 Group: Productivity/Office/Finance ++++++ aqbanking-5.3.6beta.tar.gz -> aqbanking-5.4.0beta.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/ChangeLog new/aqbanking-5.4.0beta/ChangeLog --- old/aqbanking-5.3.6beta/ChangeLog 2014-01-30 20:32:26.000000000 +0100 +++ new/aqbanking-5.4.0beta/ChangeLog 2014-02-15 15:15:30.000000000 +0100 @@ -1,6 +1,69 @@ ------------------------------------------------------------------ -2014-01-30 20:31:57 +0100 Martin Preuss +2014-02-15 15:14:50 +0100 Martin Preuss +Prepared release 5.4.0beta. + +------------------------------------------------------------------ +2014-02-15 15:14:32 +0100 Martin Preuss +BankInfo: Updated German bank data. + +------------------------------------------------------------------ +2014-02-13 18:54:02 +0000 martin +Added function AB_Value_toHbciString(). +Use that function for challenge strings and for sums. +Maybe we need to use that in other places, too, in case of servers which +really rely on the removal of trailing after-komma zeroes... + +git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2513 5c42a225-8b10-0410-9873-89b7810ad06e + +------------------------------------------------------------------ +2014-02-04 21:22:32 +0000 martin +AqHBCI: Automatically request SEPA information for accounts. +Now we add a GetSepaAccountInfo job to a queue for every account involved +for which no IBAN is currently set. + +This should retrieve SEPA account info automagically, so users should no +longer be required to use the command line tool for that. + +git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2512 5c42a225-8b10-0410-9873-89b7810ad06e + +------------------------------------------------------------------ +2014-02-04 21:21:18 +0000 martin +Added function AB_Account_List2_GetAccountByUniqueId(). +Also exported AB_Account_List2_FreeAll(). + +git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2511 5c42a225-8b10-0410-9873-89b7810ad06e + +------------------------------------------------------------------ +2014-02-03 20:45:49 +0000 martin +Added a flag to AB_Transaction_CheckForSepaConformity(). +If !=0 then the restricted SEPA charset is to be used. + +git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2510 5c42a225-8b10-0410-9873-89b7810ad06e + +------------------------------------------------------------------ +2014-02-03 20:44:30 +0000 martin +AqHBCI: Fixed a merge problem ;-} +git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2509 5c42a225-8b10-0410-9873-89b7810ad06e + +------------------------------------------------------------------ +2014-02-03 19:48:15 +0000 martin +AqHBCI: Fixed RDH10 key size determination. +git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2508 5c42a225-8b10-0410-9873-89b7810ad06e + +------------------------------------------------------------------ +2014-02-03 19:34:53 +0000 christian +When printing the error about invalid character, also print the character itself. +Even though this does not (yet) work for the general case +when e.g. the invalid character is a multibyte utf-8 character, +it at least gives a hint at simple invalid characters such +as '&'. + +git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2507 5c42a225-8b10-0410-9873-89b7810ad06e + +------------------------------------------------------------------ +2014-01-30 19:33:18 +0000 martin Prepared release 5.3.6beta. +git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2506 5c42a225-8b10-0410-9873-89b7810ad06e ------------------------------------------------------------------ 2014-01-30 19:21:45 +0000 martin @@ -587,56 +650,3 @@ 2013-12-28 22:52:28 +0000 martin AqHBCI: Fixed field limits for SEPA transfers. git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2416 5c42a225-8b10-0410-9873-89b7810ad06e - ------------------------------------------------------------------- -2013-12-28 20:56:25 +0000 martin -aqbanking-cli: Added command "sepadebitnote" -git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2415 5c42a225-8b10-0410-9873-89b7810ad06e - ------------------------------------------------------------------- -2013-12-28 20:55:15 +0000 martin -AqHBCI: Implemented job AB_Job_TypeSepaDebitNote -git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2414 5c42a225-8b10-0410-9873-89b7810ad06e - ------------------------------------------------------------------- -2013-12-28 13:45:44 +0000 martin -Added function AB_Banking_MakeGermanIban(). -This function creates an IBAN from German bank code and account number. - -git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2413 5c42a225-8b10-0410-9873-89b7810ad06e - ------------------------------------------------------------------- -2013-12-28 13:44:35 +0000 martin -Improved logging. -git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2412 5c42a225-8b10-0410-9873-89b7810ad06e - ------------------------------------------------------------------- -2013-12-16 22:56:46 +0000 martin -Applied patch by Thomas Baumgart: UI improvement. -git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2411 5c42a225-8b10-0410-9873-89b7810ad06e - ------------------------------------------------------------------- -2013-11-28 13:23:33 +0000 mlenk -Check for EBICS build dependencies only when the EBICS backend is being built -git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2410 5c42a225-8b10-0410-9873-89b7810ad06e - ------------------------------------------------------------------- -2013-11-28 10:20:00 +0000 christian -Fix include paths for out-of-tree build. -(Reason: Using a plain relative path in Makefile.am is always -relative to the $(builddir), not the $(srcdir), i.e. from where -the final "Makefile" is located.) - -git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2409 5c42a225-8b10-0410-9873-89b7810ad06e - ------------------------------------------------------------------- -2013-11-27 00:03:25 +0000 martin -Increased version number. -git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2408 5c42a225-8b10-0410-9873-89b7810ad06e - ------------------------------------------------------------------- -2013-11-27 00:02:18 +0000 martin -HBCI: Introduced flag AH_USER_FLAGS_TLS_ONLY_SAFE_CIPHERS. -This flag makes sure only safe ciphers are used when connecting via HTTPS. - -git-svn-id: https://devel.aqbanking.de/svn/aqbanking/trunk@2407 5c42a225-8b10-0410-9873-89b7810ad06e diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/aqbanking.iss new/aqbanking-5.4.0beta/aqbanking.iss --- old/aqbanking-5.3.6beta/aqbanking.iss 2014-01-30 20:31:38.000000000 +0100 +++ new/aqbanking-5.4.0beta/aqbanking.iss 2014-02-15 15:05:24.000000000 +0100 @@ -8,7 +8,7 @@ [Setup] ; Using the name here directly because we want it capitalized AppName=AqBanking -AppVerName=AqBanking 5.3.6beta +AppVerName=AqBanking 5.4.0beta AppPublisher=AqBanking Development Team AppPublisherURL=http://sourceforge.net/projects/aqbanking AppSupportURL=http://sourceforge.net/support/getsupport.php?group_id=115695 @@ -18,7 +18,7 @@ DirExistsWarning=no InfoAfterFile=README LicenseFile=COPYING -OutputBaseFilename=aqbanking-5.3.6beta-setup +OutputBaseFilename=aqbanking-5.4.0beta-setup OutputDir=. UninstallFilesDir={app}\uninstall\aqbanking @@ -150,8 +150,8 @@ StringChange(FileString, '@'+'aqbanking_plugindir@', plugindir); StringChange(FileString, '@'+'aqbanking_pkgdatadir@', pkgdatadir); StringChange(FileString, '@'+'AQBANKING_VERSION_MAJOR@', '5'); - StringChange(FileString, '@'+'AQBANKING_VERSION_MINOR@', '3'); - StringChange(FileString, '@'+'AQBANKING_VERSION_PATCHLEVEL@', '6'); + StringChange(FileString, '@'+'AQBANKING_VERSION_MINOR@', '4'); + StringChange(FileString, '@'+'AQBANKING_VERSION_PATCHLEVEL@', '0'); StringChange(FileString, '@'+'AQBANKING_VERSION_BUILD@', '0'); StringChange(FileString, '@'+'AQBANKING_VERSION_TAG@', 'beta'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/aqbanking.spec new/aqbanking-5.4.0beta/aqbanking.spec --- old/aqbanking-5.3.6beta/aqbanking.spec 2014-01-30 20:31:38.000000000 +0100 +++ new/aqbanking-5.4.0beta/aqbanking.spec 2014-02-15 15:05:24.000000000 +0100 @@ -2,7 +2,7 @@ # neededforbuild gwenhywfar gwenhywfar-devel ktoblzcheck python python-ctypes pyyxml libchipcard2-devel libchipcard2 pkgconfig gettext-devel libacl-devel libacl libattr-devel libattr %define name aqbanking -%define version 5.3.6beta +%define version 5.4.0beta %define dist %define disttag diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/configure new/aqbanking-5.4.0beta/configure --- old/aqbanking-5.3.6beta/configure 2014-01-30 20:31:32.000000000 +0100 +++ new/aqbanking-5.4.0beta/configure 2014-02-15 15:05:18.000000000 +0100 @@ -2728,8 +2728,8 @@ # AQBANKING_VERSION_MAJOR=5 -AQBANKING_VERSION_MINOR=3 -AQBANKING_VERSION_PATCHLEVEL=6 +AQBANKING_VERSION_MINOR=4 +AQBANKING_VERSION_PATCHLEVEL=0 AQBANKING_VERSION_BUILD=0 AQBANKING_VERSION_TAG="beta" @@ -2744,9 +2744,9 @@ # AqBanking # -AQBANKING_SO_CURRENT=37 -AQBANKING_SO_AGE=3 -AQBANKING_SO_REVISION=6 +AQBANKING_SO_CURRENT=38 +AQBANKING_SO_AGE=4 +AQBANKING_SO_REVISION=0 AQBANKING_SO_EFFECTIVE="`echo \$(($AQBANKING_SO_CURRENT-$AQBANKING_SO_AGE))`" # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/configure.ac new/aqbanking-5.4.0beta/configure.ac --- old/aqbanking-5.3.6beta/configure.ac 2014-01-30 20:31:16.000000000 +0100 +++ new/aqbanking-5.4.0beta/configure.ac 2014-02-15 15:05:02.000000000 +0100 @@ -24,8 +24,8 @@ # AQBANKING_VERSION_MAJOR=5 -AQBANKING_VERSION_MINOR=3 -AQBANKING_VERSION_PATCHLEVEL=6 +AQBANKING_VERSION_MINOR=4 +AQBANKING_VERSION_PATCHLEVEL=0 AQBANKING_VERSION_BUILD=0 dnl "stable", "rcX", "betaX", "svn" AQBANKING_VERSION_TAG="beta" @@ -41,9 +41,9 @@ # AqBanking # -AQBANKING_SO_CURRENT=37 -AQBANKING_SO_AGE=3 -AQBANKING_SO_REVISION=6 +AQBANKING_SO_CURRENT=38 +AQBANKING_SO_AGE=4 +AQBANKING_SO_REVISION=0 AQBANKING_SO_EFFECTIVE="`echo \$(($AQBANKING_SO_CURRENT-$AQBANKING_SO_AGE))`" # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/libs/aqbanking/account.c new/aqbanking-5.4.0beta/src/libs/aqbanking/account.c --- old/aqbanking-5.3.6beta/src/libs/aqbanking/account.c 2013-05-20 18:35:04.000000000 +0200 +++ new/aqbanking-5.4.0beta/src/libs/aqbanking/account.c 2014-02-04 22:04:33.000000000 +0100 @@ -947,6 +947,27 @@ +AB_ACCOUNT *AB_Account_List2_GetAccountByUniqueId(const AB_ACCOUNT_LIST2 *al, uint32_t aid) { + AB_ACCOUNT_LIST2_ITERATOR *ait; + + ait=AB_Account_List2_First(al); + if (ait) { + AB_ACCOUNT *a; + + a=AB_Account_List2Iterator_Data(ait); + assert(a); + while(a) { + if (aid==AB_Account_GetUniqueId(a)) { + AB_Account_List2Iterator_free(ait); + return a; + } + a=AB_Account_List2Iterator_Next(ait); + } + AB_Account_List2Iterator_free(ait); + } + + return NULL; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/libs/aqbanking/account.h new/aqbanking-5.4.0beta/src/libs/aqbanking/account.h --- old/aqbanking-5.3.6beta/src/libs/aqbanking/account.h 2010-08-27 12:05:54.000000000 +0200 +++ new/aqbanking-5.4.0beta/src/libs/aqbanking/account.h 2014-02-04 22:04:15.000000000 +0100 @@ -47,8 +47,14 @@ /* Do not terminate these lines with semicolon because they are macros, not functions, and ISO C89 does not allow a semicolon there. */ + +AQBANKING_API void AB_Account_List2_FreeAll(AB_ACCOUNT_LIST2 *al); +AQBANKING_API +AB_ACCOUNT *AB_Account_List2_GetAccountByUniqueId(const AB_ACCOUNT_LIST2 *al, uint32_t aid); + + typedef enum { AB_AccountType_Unknown=0, AB_AccountType_Bank, @@ -193,6 +199,8 @@ void AB_Account_SetSelectedUser(AB_ACCOUNT *a, const AB_USER *u); + + #ifdef __cplusplus } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/libs/aqbanking/testlib.c new/aqbanking-5.4.0beta/src/libs/aqbanking/testlib.c --- old/aqbanking-5.3.6beta/src/libs/aqbanking/testlib.c 2014-01-26 15:47:49.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/libs/aqbanking/testlib.c 2014-02-13 19:49:04.000000000 +0100 @@ -224,9 +224,80 @@ +int test5(int argc, char **argv) { + AB_VALUE *v1; + GWEN_BUFFER *tbuf; + + tbuf=GWEN_Buffer_new(0, 256, 0, 1); + v1=AB_Value_fromString("11,90"); + if (v1==NULL) { + fprintf(stderr, "ERROR: v1\n"); + return 1; + } + AB_Value_toHbciString(v1, tbuf); + if (strcmp(GWEN_Buffer_GetStart(tbuf), "11,9")!=0) { + fprintf(stderr, "ERROR: Bad HBCI string (%s)\n", GWEN_Buffer_GetStart(tbuf)); + return 2; + } + GWEN_Buffer_free(tbuf); + AB_Value_free(v1); + + + tbuf=GWEN_Buffer_new(0, 256, 0, 1); + v1=AB_Value_fromString("11,91"); + if (v1==NULL) { + fprintf(stderr, "ERROR: v1\n"); + return 1; + } + AB_Value_toHbciString(v1, tbuf); + if (strcmp(GWEN_Buffer_GetStart(tbuf), "11,91")!=0) { + fprintf(stderr, "ERROR: Bad HBCI string (%s)\n", GWEN_Buffer_GetStart(tbuf)); + return 2; + } + GWEN_Buffer_free(tbuf); + AB_Value_free(v1); + + + tbuf=GWEN_Buffer_new(0, 256, 0, 1); + v1=AB_Value_fromString("1190"); + if (v1==NULL) { + fprintf(stderr, "ERROR: v1\n"); + return 1; + } + AB_Value_toHbciString(v1, tbuf); + if (strcmp(GWEN_Buffer_GetStart(tbuf), "1190,")!=0) { + fprintf(stderr, "ERROR: Bad HBCI string (%s)\n", GWEN_Buffer_GetStart(tbuf)); + return 2; + } + GWEN_Buffer_free(tbuf); + AB_Value_free(v1); + + + tbuf=GWEN_Buffer_new(0, 256, 0, 1); + v1=AB_Value_fromString("11,00"); + if (v1==NULL) { + fprintf(stderr, "ERROR: v1\n"); + return 1; + } + AB_Value_toHbciString(v1, tbuf); + if (strcmp(GWEN_Buffer_GetStart(tbuf), "11,")!=0) { + fprintf(stderr, "ERROR: Bad HBCI string (%s)\n", GWEN_Buffer_GetStart(tbuf)); + return 2; + } + GWEN_Buffer_free(tbuf); + AB_Value_free(v1); + + + + fprintf(stderr, "Ok.\n"); + return 0; +} + + + int main(int argc, char *argv[]){ #if 1 - return test4(argc, argv); + return test5(argc, argv); #else AB_BANKING *ab; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/libs/aqbanking/types/transactionfns.c new/aqbanking-5.4.0beta/src/libs/aqbanking/types/transactionfns.c --- old/aqbanking-5.3.6beta/src/libs/aqbanking/types/transactionfns.c 2014-01-18 14:22:51.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/libs/aqbanking/types/transactionfns.c 2014-02-03 21:35:07.000000000 +0100 @@ -627,7 +627,7 @@ (c>='a' && c<='z') || (c>='0' && c<='9') || strchr("':?,-(+.)/ ", c)!=NULL)) { - DBG_ERROR(AQBANKING_LOGDOMAIN, "Invalid character in string"); + DBG_ERROR(AQBANKING_LOGDOMAIN, "Invalid character in string: '%c'", c); return GWEN_ERROR_BAD_DATA; } s++; @@ -650,7 +650,7 @@ if (!((c>='A' && c<='Z') || (c>='a' && c<='z') || (c>='0' && c<='9'))) { - DBG_ERROR(AQBANKING_LOGDOMAIN, "Invalid character in string"); + DBG_ERROR(AQBANKING_LOGDOMAIN, "Invalid character in string: '%c'", c); return GWEN_ERROR_BAD_DATA; } s++; @@ -661,7 +661,7 @@ -int AB_Transaction_CheckForSepaConformity(const AB_TRANSACTION *t) { +int AB_Transaction_CheckForSepaConformity(const AB_TRANSACTION *t, int restricted) { if (t) { const GWEN_STRINGLIST *sl; const char *s; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/libs/aqbanking/types/transactionfns.h new/aqbanking-5.4.0beta/src/libs/aqbanking/types/transactionfns.h --- old/aqbanking-5.3.6beta/src/libs/aqbanking/types/transactionfns.h 2014-01-18 14:22:41.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/libs/aqbanking/types/transactionfns.h 2014-02-03 21:34:52.000000000 +0100 @@ -66,7 +66,7 @@ * BIC and IBAN are present and whether the local and remote names conform to the retricted SEPA character set. */ AQBANKING_API -int AB_Transaction_CheckForSepaConformity(const AB_TRANSACTION *t); +int AB_Transaction_CheckForSepaConformity(const AB_TRANSACTION *t, int restricted); AQBANKING_API diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/libs/aqbanking/types/value.c new/aqbanking-5.4.0beta/src/libs/aqbanking/types/value.c --- old/aqbanking-5.3.6beta/src/libs/aqbanking/types/value.c 2013-08-30 22:25:05.000000000 +0200 +++ new/aqbanking-5.4.0beta/src/libs/aqbanking/types/value.c 2014-02-13 19:41:06.000000000 +0100 @@ -530,16 +530,50 @@ -long int AB_Value_Num(const AB_VALUE *v) -{ +long int AB_Value_Num(const AB_VALUE *v) { assert(v); return mpz_get_si(mpq_numref(v->value)); } -long int AB_Value_Denom(const AB_VALUE *v) -{ + + +long int AB_Value_Denom(const AB_VALUE *v) { assert(v); return mpz_get_si(mpq_denref(v->value)); } + +void AB_Value_toHbciString(const AB_VALUE *v, GWEN_BUFFER *buf) { + GWEN_BUFFER *tbuf; + char *p; + int l; + + tbuf=GWEN_Buffer_new(0, 32, 0, 1); + AB_Value_toHumanReadableString2(v, tbuf, 2, 0); + + /* convert decimal komma */ + p=GWEN_Buffer_GetStart(tbuf); + while(*p) { + if (*p=='.') { + *p=','; + break; + } + p++; + } + + /* remove trailing zeroes */ + p=GWEN_Buffer_GetStart(tbuf); + l=strlen(GWEN_Buffer_GetStart(tbuf)); + if (l>0 && strchr(p, ',')!=NULL) { + l--; + while(l>0 && p[l]=='0') { + p[l]=0; + l--; + } + } + + GWEN_Buffer_AppendString(buf, GWEN_Buffer_GetStart(tbuf)); + GWEN_Buffer_free(tbuf); +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/libs/aqbanking/types/value.h new/aqbanking-5.4.0beta/src/libs/aqbanking/types/value.h --- old/aqbanking-5.3.6beta/src/libs/aqbanking/types/value.h 2011-03-07 22:36:00.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/libs/aqbanking/types/value.h 2014-02-13 19:41:01.000000000 +0100 @@ -139,6 +139,10 @@ AQBANKING_API long int AB_Value_Denom(const AB_VALUE *v); +/** Write value to HBCI string (e.g. "11,90" is written as "11,9") */ +AQBANKING_API void AB_Value_toHbciString(const AB_VALUE *v, GWEN_BUFFER *buf); + + #ifdef __cplusplus } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobsepadebitdatedmulticreate.c new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobsepadebitdatedmulticreate.c --- old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobsepadebitdatedmulticreate.c 2014-01-22 19:49:46.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobsepadebitdatedmulticreate.c 2014-02-13 19:51:46.000000000 +0100 @@ -337,7 +337,7 @@ assert(dbV); nbuf=GWEN_Buffer_new(0, 32, 0, 1); - AH_Job_ValueToChallengeString(aj->sumValues, nbuf); + AB_Value_toHbciString(aj->sumValues, nbuf); if (GWEN_Buffer_GetUsedBytes(nbuf)<1) { DBG_ERROR(AQHBCI_LOGDOMAIN, "Error in conversion"); GWEN_Buffer_free(nbuf); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobsepastandingordercreate.c new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobsepastandingordercreate.c --- old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobsepastandingordercreate.c 2014-01-19 18:02:16.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobsepastandingordercreate.c 2014-02-03 21:41:34.000000000 +0100 @@ -187,12 +187,19 @@ const AB_TRANSACTION *t=NULL; AB_TRANSACTION *tCopy=NULL; int rv; + AB_USER *u; + uint32_t uflags; DBG_INFO(AQHBCI_LOGDOMAIN, "Exchanging args"); ab=AH_Job_GetBankingApi(j); assert(ab); + u=AH_Job_GetUser(j); + assert(u); + + uflags=AH_User_GetFlags(u); + /* get limits and transaction */ lim=AB_Job_GetFieldLimits(bj); t=AB_Job_GetTransaction(bj); @@ -206,7 +213,7 @@ AB_Transaction_FillLocalFromAccount(t, a); */ /* validate transaction */ - rv=AB_Transaction_CheckForSepaConformity(t); + rv=AB_Transaction_CheckForSepaConformity(t, (uflags & AH_USER_FLAGS_USE_STRICT_SEPA_CHARSET)?1:0); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (%d)", rv); return rv; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobtransferbase.c new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobtransferbase.c --- old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobtransferbase.c 2014-01-18 14:23:27.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/accountjobs/jobtransferbase.c 2014-02-03 21:40:32.000000000 +0100 @@ -144,12 +144,19 @@ const AB_TRANSACTION *t=NULL; AB_TRANSACTION *tCopy=NULL; int rv; + AB_USER *u; + uint32_t uflags; DBG_INFO(AQHBCI_LOGDOMAIN, "Exchanging args"); ab=AH_Job_GetBankingApi(j); assert(ab); + u=AH_Job_GetUser(j); + assert(u); + + uflags=AH_User_GetFlags(u); + /* get limits and transaction */ lim=AB_Job_GetFieldLimits(bj); t=AB_Job_GetTransaction(bj); @@ -163,7 +170,7 @@ AB_Transaction_FillLocalFromAccount(t, a); */ /* validate transaction */ - rv=AB_Transaction_CheckForSepaConformity(t); + rv=AB_Transaction_CheckForSepaConformity(t, (uflags & AH_USER_FLAGS_USE_STRICT_SEPA_CHARSET)?1:0); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (%d)", rv); return rv; @@ -204,12 +211,19 @@ const AB_TRANSACTION *t=NULL; AB_TRANSACTION *tCopy=NULL; int rv; + AB_USER *u; + uint32_t uflags; DBG_INFO(AQHBCI_LOGDOMAIN, "Exchanging args"); ab=AH_Job_GetBankingApi(j); assert(ab); + u=AH_Job_GetUser(j); + assert(u); + + uflags=AH_User_GetFlags(u); + /* get limits and transaction */ lim=AB_Job_GetFieldLimits(bj); t=AB_Job_GetTransaction(bj); @@ -223,7 +237,7 @@ AB_Transaction_FillLocalFromAccount(t, a); */ /* validate transaction */ - rv=AB_Transaction_CheckForSepaConformity(t); + rv=AB_Transaction_CheckForSepaConformity(t, (uflags & AH_USER_FLAGS_USE_STRICT_SEPA_CHARSET)?1:0); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (%d)", rv); return rv; @@ -271,12 +285,19 @@ const AB_TRANSACTION *t=NULL; AB_TRANSACTION *tCopy=NULL; int rv; + AB_USER *u; + uint32_t uflags; DBG_INFO(AQHBCI_LOGDOMAIN, "Exchanging args"); ab=AH_Job_GetBankingApi(j); assert(ab); + u=AH_Job_GetUser(j); + assert(u); + + uflags=AH_User_GetFlags(u); + /* get limits and transaction */ lim=AB_Job_GetFieldLimits(bj); t=AB_Job_GetTransaction(bj); @@ -290,7 +311,7 @@ AB_Transaction_FillLocalFromAccount(t, a); */ /* validate transaction */ - rv=AB_Transaction_CheckForSepaConformity(t); + rv=AB_Transaction_CheckForSepaConformity(t, (uflags & AH_USER_FLAGS_USE_STRICT_SEPA_CHARSET)?1:0); if (rv<0) { DBG_INFO(AQHBCI_LOGDOMAIN, "here (%d)", rv); return rv; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/banking/provider.c new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/banking/provider.c --- old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/banking/provider.c 2014-01-30 20:19:34.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/banking/provider.c 2014-02-04 22:18:14.000000000 +0100 @@ -554,7 +554,6 @@ break; case AB_Job_TypeSepaDebitNote: - /* try multi transfer first */ mj=AH_Outbox_FindDatedTransferJob(hp->outbox, mu, ma, "JobSepaDebitDatedMultiCreate", t?(AB_Transaction_GetDate(t)):NULL); break; @@ -761,6 +760,96 @@ +int AH_Provider__AddAccountSepaInfoJobsToOutBox(AB_PROVIDER *pro, AH_OUTBOX *ob) { + AH_PROVIDER *hp; + AB_BANKING *ab; + AB_ACCOUNT_LIST2 *al; + AB_ACCOUNT_LIST2_ITERATOR *ait; + AB_JOB_LIST2_ITERATOR *jit; + + assert(pro); + hp=GWEN_INHERIT_GETDATA(AB_PROVIDER, AH_PROVIDER, pro); + assert(hp); + + ab=AB_Provider_GetBanking(pro); + assert(ab); + + if (hp->bankingJobs==NULL) { + DBG_ERROR(AQHBCI_LOGDOMAIN, "No job list, SNH"); + return GWEN_ERROR_INTERNAL; + } + + /* get list of all accounts used */ + al=AB_Account_List2_new(); + jit=AB_Job_List2_First(hp->bankingJobs); + if (jit) { + AB_JOB *j; + + j=AB_Job_List2Iterator_Data(jit); + while(j) { + AB_ACCOUNT *a; + + a=AB_Job_GetAccount(j); + if (a) { + if (AB_Account_List2_GetAccountByUniqueId(al, AB_Account_GetUniqueId(a))==NULL) + AB_Account_List2_PushBack(al, a); + } + j=AB_Job_List2Iterator_Next(jit); + } + AB_Job_List2Iterator_free(jit); + } + + + /* add jobs */ + ait=AB_Account_List2_First(al); + if (ait) { + AB_ACCOUNT *a; + + a=AB_Account_List2Iterator_Data(ait); + assert(a); + while(a) { + const char *s; + + s=AB_Account_GetIBAN(a); + if (!(s && *s)) { + AB_USER *u; + + DBG_NOTICE(AQHBCI_LOGDOMAIN, "No IBAN for account, requesting SEPA info"); + GWEN_Gui_ProgressLog2(0, + GWEN_LoggerLevel_Info, + I18N("No IBAN for account %llu, requesting SEPA info"), + (unsigned long long int) AB_Account_GetUniqueId(a)); + + u=AB_Account_GetFirstUser(a); + if (!u) { + DBG_ERROR(AQHBCI_LOGDOMAIN, "No user for this account"); + } + else { + AH_JOB *job; + + job=AH_Job_GetAccountSepaInfo_new(u, a); + if (job) { + AH_Job_AddSigner(job, AB_User_GetUserId(u)); + AH_Outbox_AddJob(ob, job); + } + else { + DBG_WARN(AQHBCI_LOGDOMAIN, "Job not supported with this account"); + } + } + } + + a=AB_Account_List2Iterator_Next(ait); + } + AB_Account_List2Iterator_free(ait); + } + + AB_Account_List2_free(al); + + return 0; +} + + + int AH_Provider_Execute(AB_PROVIDER *pro, AB_IMEXPORTER_CONTEXT *ctx){ AH_PROVIDER *hp; int rv; @@ -778,6 +867,11 @@ return 0; } + rv=AH_Provider__AddAccountSepaInfoJobsToOutBox(pro, hp->outbox); + if (rv<0) { + DBG_WARN(AQHBCI_LOGDOMAIN, "Error adding accountSepaInfo jobs to outbox, ignoring."); + } + rv=AH_Outbox_Execute(hp->outbox, ctx, 0, 1, 1); if (rv) { DBG_ERROR(AQHBCI_LOGDOMAIN, "Error executing outbox."); @@ -3712,8 +3806,10 @@ ski=GWEN_Crypt_Token_GetKeyInfo(ct, skeyId, GWEN_CRYPT_TOKEN_KEYFLAGS_HASMODULUS, 0); - if (ski==NULL) { - GWEN_Gui_ProgressLog(0, + /* the fact that a key info exists does not mean that it contains key data (modulus and exp), + * so we need to check for key data explicitly */ + if (!(ski && GWEN_Crypt_Token_KeyInfo_GetModulusData(ski) && GWEN_Crypt_Token_KeyInfo_GetModulusLen(ski))) { + GWEN_Gui_ProgressLog(0, GWEN_LoggerLevel_Notice, I18N("Server has no sign key, using encipher key")); skeyId=GWEN_Crypt_Token_Context_GetEncipherKeyId(ctx); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/banking/provider_p.h new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/banking/provider_p.h --- old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/banking/provider_p.h 2014-01-12 17:56:04.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/banking/provider_p.h 2014-02-04 22:11:06.000000000 +0100 @@ -92,6 +92,9 @@ static int AH_Provider__GetMultiHbciJob(AB_PROVIDER *pro, AB_JOB *j, AH_JOB **pHbciJob); static int AH_Provider__CreateHbciJob(AB_PROVIDER *pro, AB_JOB *j, AH_JOB **pHbciJob); + +static int AH_Provider__AddAccountSepaInfoJobsToOutBox(AB_PROVIDER *pro, AH_OUTBOX *ob); + /*@}*/ #endif /* AH_PROVIDER_P_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/joblayer/job.c new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/joblayer/job.c --- old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/joblayer/job.c 2014-01-14 21:21:50.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/joblayer/job.c 2014-02-13 19:50:01.000000000 +0100 @@ -2490,19 +2490,7 @@ void AH_Job_ValueToChallengeString(const AB_VALUE *v, GWEN_BUFFER *buf) { - char *p; - uint32_t pos; - - pos=GWEN_Buffer_GetPos(buf); - AB_Value_toHumanReadableString2(v, buf, 2, 0); - p=GWEN_Buffer_GetStart(buf)+pos; - while(*p) { - if (*p=='.') { - *p=','; - break; - } - p++; - } + AB_Value_toHbciString(v, buf); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/msglayer/user.h new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/msglayer/user.h --- old/aqbanking-5.3.6beta/src/plugins/backends/aqhbci/plugin/msglayer/user.h 2013-11-27 01:04:12.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/plugins/backends/aqhbci/plugin/msglayer/user.h 2014-02-03 21:37:56.000000000 +0100 @@ -73,6 +73,8 @@ #define AH_USER_FLAGS_TLS_ONLY_SAFE_CIPHERS 0x00000400 +#define AH_USER_FLAGS_USE_STRICT_SEPA_CHARSET 0x00000800 + /*@}*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/plugins/backends/aqofxconnect/version.h new/aqbanking-5.4.0beta/src/plugins/backends/aqofxconnect/version.h --- old/aqbanking-5.3.6beta/src/plugins/backends/aqofxconnect/version.h 2014-01-30 20:31:37.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/plugins/backends/aqofxconnect/version.h 2014-02-15 15:05:23.000000000 +0100 @@ -15,12 +15,12 @@ #define AQOFXCONNECT_VERSION_H #define AQOFXCONNECT_VERSION_MAJOR 5 -#define AQOFXCONNECT_VERSION_MINOR 3 -#define AQOFXCONNECT_VERSION_PATCHLEVEL 6 +#define AQOFXCONNECT_VERSION_MINOR 4 +#define AQOFXCONNECT_VERSION_PATCHLEVEL 0 #define AQOFXCONNECT_VERSION_BUILD 0 #define AQOFXCONNECT_VERSION_TAG "beta" -#define AQOFXCONNECT_VERSION_FULL_STRING "5.3.6.0beta" -#define AQOFXCONNECT_VERSION_STRING "5.3.6" +#define AQOFXCONNECT_VERSION_FULL_STRING "5.4.0.0beta" +#define AQOFXCONNECT_VERSION_STRING "5.4.0" Files old/aqbanking-5.3.6beta/src/plugins/bankinfo/generic/de.tar.bz2 and new/aqbanking-5.4.0beta/src/plugins/bankinfo/generic/de.tar.bz2 differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/src/tools/aqbanking-cli/separecurtransfer.c new/aqbanking-5.4.0beta/src/tools/aqbanking-cli/separecurtransfer.c --- old/aqbanking-5.3.6beta/src/tools/aqbanking-cli/separecurtransfer.c 2014-01-19 17:45:25.000000000 +0100 +++ new/aqbanking-5.4.0beta/src/tools/aqbanking-cli/separecurtransfer.c 2014-02-03 21:43:00.000000000 +0100 @@ -294,7 +294,7 @@ AB_Transaction_SetSubType(t, AB_Transaction_SubTypeStandingOrder); - rv=AB_Transaction_CheckForSepaConformity(t); + rv=AB_Transaction_CheckForSepaConformity(t, 0); /* TODO: determine the flag to use here */ if (rv<0) { DBG_ERROR(0, "Transaction does not conform to SEPA specs (%d)", rv); AB_Banking_OnlineFini(ab); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aqbanking-5.3.6beta/version.h new/aqbanking-5.4.0beta/version.h --- old/aqbanking-5.3.6beta/version.h 2014-01-30 20:31:38.000000000 +0100 +++ new/aqbanking-5.4.0beta/version.h 2014-02-15 15:05:24.000000000 +0100 @@ -12,17 +12,17 @@ #define AQBANKING_VERSION_H #define AQBANKING_VERSION_MAJOR 5 -#define AQBANKING_VERSION_MINOR 3 -#define AQBANKING_VERSION_PATCHLEVEL 6 +#define AQBANKING_VERSION_MINOR 4 +#define AQBANKING_VERSION_PATCHLEVEL 0 #define AQBANKING_VERSION_BUILD 0 #define AQBANKING_VERSION_TAG "beta" -#define AQBANKING_VERSION_FULL_STRING "5.3.6.0beta" -#define AQBANKING_VERSION_STRING "5.3.6" +#define AQBANKING_VERSION_FULL_STRING "5.4.0.0beta" +#define AQBANKING_VERSION_STRING "5.4.0" -#define AQBANKING_SO_CURRENT 37 -#define AQBANKING_SO_REVISION 6 -#define AQBANKING_SO_AGE 3 +#define AQBANKING_SO_CURRENT 38 +#define AQBANKING_SO_REVISION 0 +#define AQBANKING_SO_AGE 4 #define AQBANKING_SO_EFFECTIVE 34 #endif /* AQBANKING_VERSION_H */ -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org