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 - jcnen...@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+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to