more openhbci2 work

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@9837 57a11ea4-9604-0410-9ed3-97b8803252fd
zzzoldfeatures/cashutil
Christian Stimming 23 years ago
parent ee7f39ea4f
commit 1a55efe30e

@ -1287,9 +1287,11 @@ on_iniletter_info_next (GnomeDruidPage *gnomedruidpage,
HBCI_Job_setIntProperty(jjob, "open/signkey/key/country", HBCI_Bank_country(HBCI_User_bank(HBCI_Customer_user(info->newcustomer))));
HBCI_Job_setProperty(jjob, "open/signkey/key/bankcode", HBCI_Bank_bankCode(HBCI_User_bank(HBCI_Customer_user(info->newcustomer))));
/*HBCI_Job_setProperty(jjob, "open/signkey/key/userid", "9999999999");*/
HBCI_Job_setIntProperty(jjob, "open/cryptkey/key/country", HBCI_Bank_country(HBCI_User_bank(HBCI_Customer_user(info->newcustomer))));
HBCI_Job_setProperty(jjob, "open/cryptkey/key/bankcode", HBCI_Bank_bankCode(HBCI_User_bank(HBCI_Customer_user(info->newcustomer))));
/*HBCI_Job_setProperty(jjob, "open/cryptkey/key/userid", "9999999999");*/
}
HBCI_Outbox_addJob (info->outbox, job);
@ -1382,6 +1384,7 @@ on_iniletter_info_next (GnomeDruidPage *gnomedruidpage,
g_free (hash);
gnc_html_show_data (info->server_html, res, strlen(res));
gnc_html_reload (info->server_html);
g_free (res);
}
@ -1429,6 +1432,50 @@ on_iniletter_userinfo_next (GnomeDruidPage *gnomedruidpage,
job = HBCI_OutboxJob_new("JobSendKeys",
(HBCI_Customer*)info->newcustomer, "");
{
HBCI_Job *jjob = HBCI_OutboxJob_Job(job);
const HBCI_Customer *customer = info->newcustomer;
const HBCI_User *user = HBCI_Customer_user(customer);
const HBCI_Bank *bank = HBCI_User_bank(user);
const HBCI_Medium *med = HBCI_User_medium (user);
const HBCI_MediumRDHBase *medr = HBCI_Medium_MediumRDHBase ((HBCI_Medium*)med);
const HBCI_RSAKey *signkey = HBCI_MediumRDHBase_userPubSignKey(medr);
const HBCI_RSAKey *cryptkey = HBCI_MediumRDHBase_userPubCryptKey(medr);
#define MY_MAXBUF_SIZE 1024
unsigned tmp_bufsize = MY_MAXBUF_SIZE;
unsigned tmp_actual;
char tmp[MY_MAXBUF_SIZE];
g_assert (medr);
/* Copied from libaqmoney's JobSendKeys::JobSendKeys(Pointer<Customer> c) */
// prepare identification
HBCI_Job_setProperty(jjob, "open/ident/systemid", "0");
HBCI_Job_setIntProperty(jjob, "open/ident/country", HBCI_Bank_country(bank));
HBCI_Job_setProperty(jjob, "open/ident/bankcode", HBCI_Bank_bankCode(bank));
HBCI_Job_setProperty(jjob, "open/ident/customerid", HBCI_Customer_custId(customer));
// prepare sign key
HBCI_Job_setProperty(jjob, "open/signkey/keyname/bankCode", HBCI_Bank_bankCode(bank));
HBCI_Job_setProperty(jjob, "open/signkey/keyname/userid", HBCI_User_userId(user));
HBCI_Job_setIntProperty(jjob, "open/signkey/keyname/keynum", HBCI_RSAKey_number(signkey));
HBCI_Job_setIntProperty(jjob, "open/signkey/keyname/keyversion", HBCI_RSAKey_version(signkey));
tmp_actual = HBCI_RSAKey_getModulusData(signkey, tmp, tmp_bufsize);
HBCI_Job_setBinProperty(jjob, "open/signkey/key/modulus", tmp, tmp_actual);
tmp_actual = HBCI_RSAKey_getExpData(signkey, tmp, tmp_bufsize);
HBCI_Job_setBinProperty(jjob, "open/signkey/key/exponent", tmp, tmp_actual);
// prepare crypt key
HBCI_Job_setProperty(jjob, "open/cryptkey/keyname/bankCode", HBCI_Bank_bankCode(bank));
HBCI_Job_setProperty(jjob, "open/cryptkey/keyname/userid", HBCI_User_userId(user));
HBCI_Job_setIntProperty(jjob, "open/cryptkey/keyname/keynum", HBCI_RSAKey_number(cryptkey));
HBCI_Job_setIntProperty(jjob, "open/cryptkey/keyname/keyversion", HBCI_RSAKey_version(cryptkey));
tmp_actual = HBCI_RSAKey_getModulusData(cryptkey, tmp, tmp_bufsize);
HBCI_Job_setBinProperty(jjob, "open/cryptkey/key/modulus", tmp, tmp_actual);
tmp_actual = HBCI_RSAKey_getExpData(cryptkey, tmp, tmp_bufsize);
HBCI_Job_setBinProperty(jjob, "open/cryptkey/key/exponent", tmp, tmp_actual);
}
HBCI_Outbox_addJob (info->outbox, job);
/* Execute Outbox. */
@ -1505,6 +1552,7 @@ on_iniletter_userinfo_next (GnomeDruidPage *gnomedruidpage,
g_free (hash);
}
gnc_html_show_data (info->user_html, res, strlen(res));
gnc_html_reload (info->user_html);
g_free (res);

@ -431,8 +431,8 @@ gnc_hbci_evaluate_GetKeys(HBCI_Outbox *outbox, HBCI_OutboxJob *job,
return FALSE;
}
printf("JobGetKeys: Complete response:\n");
GWEN_DB_Dump(rsp, stderr, 1);
/*printf("JobGetKeys: Complete response:\n");
GWEN_DB_Dump(rsp, stderr, 1);*/
n=GWEN_DB_GetFirstGroup(rsp);
while(n) {
@ -500,12 +500,18 @@ gnc_hbci_evaluate_GetKeys(HBCI_Outbox *outbox, HBCI_OutboxJob *job,
_cryptKey = HBCI_RSAKey_new(iscrypt, keydb);
else
_signKey = HBCI_RSAKey_new(iscrypt, keydb);
fprintf(stderr, "Created %s key", iscrypt?"crypt":"sign");
fprintf(stderr, "gnc_hbci_evaluate_GetKeys: Created %s key\n", iscrypt?"crypt":"sign");
} // if we have a key response
n=GWEN_DB_GetNextGroup(n);
} // while
// Key creation finished. Now add them to the medium @§%$!!!
if (!_cryptKey) {
printf("gnc_hbci_evaluate_GetKeys: Oops, no cryptKey received.\n");
return FALSE;
}
{
HBCI_MediumRDHBase *mrdh;

@ -467,8 +467,10 @@ gnc_hbci_api_execute (GtkWidget *parent, HBCI_API *api,
GNCInteractor_show (inter);
if (gnc_lookup_boolean_option("_+Advanced",
"HBCI Verbose Debug Messages", FALSE))
"HBCI Verbose Debug Messages", FALSE)) {
GWEN_Logger_SetLevel(0, GWEN_LoggerLevelDebug);
HBCI_Hbci_setDebugLevel (4);
}
else
HBCI_Hbci_setDebugLevel (0);

Loading…
Cancel
Save