|
--------------- 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;
|
|
|