Projekt

Allgemein

Profil

Bug #35 » aqbanking-rah-mode.txt

thbe, 07.08.2019 07:39

 
--------------- src/libs/plugins/backends/aqhbci/banking/user.c ---------------
index 1b6b04c4..2e1c5d18 100644
@@ -2135,6 +2135,7 @@ int AH_User_VerifyInitialKey(GWEN_CRYPT_TOKEN *ct,
uint32_t keyHashLen;
char hashString[1024];
int rv;
+ int i;


/* check if NOTEPAD contained a key hash */
@@ -2227,9 +2228,14 @@ int AH_User_VerifyInitialKey(GWEN_CRYPT_TOKEN *ct,
GWEN_Buffer_free(keyBuffer);
}

+ memset(hashString, 0, 1024);
+ for (i=0; i<GWEN_MDigest_GetDigestSize(md); i++)
+ sprintf(hashString+3*i, "%02x ", *(mdPtr+i));
+ DBG_INFO(AQHBCI_LOGDOMAIN, "Key Hash from the Bank Public %s key: Hash Length: %d, Hash: %s", keyName, keyHashLen,
+ hashString);
+
if (canVerifyWithHash) {

- int i;
uint16_t matchingBytes=keySize;

char cardHashString[1024];
@@ -2239,13 +2245,8 @@ int AH_User_VerifyInitialKey(GWEN_CRYPT_TOKEN *ct,
memset(cardHashString, 0, 1024);
for (i=0; i<keyHashLen; i++)
sprintf(cardHashString+3*i, "%02x ", keyHash[i]);
- DBG_INFO(AQHBCI_LOGDOMAIN, "Key Hash on the Card: Hash Length: %d, Hash: %s", keyHashLen, hashString);
+ DBG_INFO(AQHBCI_LOGDOMAIN, "Key Hash on the Card: Hash Length: %d, Hash: %s", keyHashLen, cardHashString);

- memset(hashString, 0, 1024);
- for (i=0; i<GWEN_MDigest_GetDigestSize(md); i++)
- sprintf(hashString+3*i, "%02x ", *(mdPtr+i));
- DBG_INFO(AQHBCI_LOGDOMAIN, "Key Hash from the Bank Public %s key: Hash Length: %d, Hash: %s", keyName, keyHashLen,
- hashString);

if (keyHashLen==mdSize) {
for (i = 0; i < mdSize; i++) {
@@ -2367,7 +2368,7 @@ int AH_User_VerifyInitialKey(GWEN_CRYPT_TOKEN *ct,
snprintf(numBuf, sizeof(numBuf), "%d",
keyNum);
GWEN_Buffer_AppendString(msgBuffer, numBuf);
- GWEN_Buffer_AppendString(msgBuffer, "Key Version: ");
+ GWEN_Buffer_AppendString(msgBuffer, "\nKey Version: ");
snprintf(numBuf, sizeof(numBuf), "%d",
keyNum);
GWEN_Buffer_AppendString(msgBuffer, numBuf);
@@ -2375,7 +2376,7 @@ int AH_User_VerifyInitialKey(GWEN_CRYPT_TOKEN *ct,
snprintf(numBuf, sizeof(numBuf), "%d",
mdSize);
GWEN_Buffer_AppendString(msgBuffer, numBuf);
- GWEN_Buffer_AppendString(msgBuffer, "Hash Value ");
+ GWEN_Buffer_AppendString(msgBuffer, ", value ");
if (keyHashAlgo==GWEN_Crypt_HashAlgoId_Sha256) {
/*SHA256*/
GWEN_Buffer_AppendString(msgBuffer, "(SHA256):\n");

---------- src/libs/plugins/backends/aqhbci/dialogs/dlg_newkeyfile.c ----------
index e7dcd931..b55240f8 100644
@@ -97,6 +97,7 @@ GWEN_DIALOG *AH_NewKeyFileDialog_new(AB_PROVIDER *pro)
/* preset */
xdlg->hbciVersion=210;
xdlg->rdhVersion=0;
+ xdlg->cryptMode = AH_CryptMode_Rdh;

/* done */
return dlg;
@@ -873,7 +874,8 @@ int AH_NewKeyFileDialog_DoIt(GWEN_DIALOG *dlg)
AH_User_SetTokenType(u, "ohbci");
AH_User_SetTokenName(u, AH_NewKeyFileDialog_GetFileName(dlg));
AH_User_SetTokenContextId(u, 1);
- AH_User_SetCryptMode(u, AH_CryptMode_Rdh);
+ //AH_User_SetCryptMode(u, AH_CryptMode_Rdh);
+ AH_User_SetCryptMode(u, xdlg->cryptMode);
AH_User_SetStatus(u, AH_UserStatusPending);
AH_User_SetHbciVersion(u, xdlg->hbciVersion);
AH_User_SetRdhType(u, xdlg->rdhVersion);
@@ -1301,6 +1303,7 @@ int AH_NewKeyFileDialog_HandleActivatedSpecial(GWEN_DIALOG *dlg)
else {
xdlg->hbciVersion=AH_RdhSpecialDialog_GetHbciVersion(dlg2);
xdlg->rdhVersion=AH_RdhSpecialDialog_GetRdhVersion(dlg2);
+ xdlg->cryptMode=AH_RdhSpecialDialog_GetCryptMode(dlg2);
xdlg->flags=AH_RdhSpecialDialog_GetFlags(dlg2);
}


--------- src/libs/plugins/backends/aqhbci/dialogs/dlg_newkeyfile_p.h ---------
index 4827d076..18e7f6da 100644
@@ -33,6 +33,7 @@ struct AH_NEWKEYFILE_DIALOG {

int hbciVersion;
int rdhVersion;
+ int cryptMode;

uint32_t flags;

(1-1/7)