Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 786c2117

Von aquamaniac vor mehr als 21 Jahren hinzugefügt

  • ID 786c211721b1fc902e86e121801d25bff020fe9f
  • Vorgänger 332969a6
  • Nachfolger cd2076d0

- more work on IPC. I think I now have found the best method ;-)

git-svn-id: https://devel.aqbanking.de/svn/gwenhywfar/trunk@96 70169cfe-8b10-0410-8925-dcb4b91034d8

Unterschiede anzeigen:

test/gwentest.c
fprintf(stderr, "Generating key done.\n");
sc=GWEN_IPCXMLSecCtx_new("martin", "martin");
GWEN_IPCXMLSecCtx_AddKey(sc, GWEN_CryptKey_dup(key));
GWEN_SecContext_SetLocalSignSeq(sc, 4554);
GWEN_SecContext_SetRemoteSignSeq(sc, 5555);
GWEN_IPCXMLSecCtx_SetRemoteSignKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetRemoteCryptKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalSignSeq(sc, 4554);
GWEN_IPCXMLSecCtx_SetRemoteSignSeq(sc, 5555);
if (GWEN_SecContextMgr_AddContext(scm, sc)) {
fprintf(stderr, "Could not add context.\n");
return 2;
......
return 2;
}
err=GWEN_CryptKey_FromDb(key, keydb);
if (!GWEN_Error_IsOk(err)) {
DBG_ERROR_ERR(0, err);
key=GWEN_CryptKey_FromDb(keydb);
if (!key) {
fprintf(stderr, "Could not load key\n");
return 2;
}
GWEN_DB_Group_free(keydb);
......
sc=GWEN_IPCXMLSecCtx_new(GWEN_CryptKey_GetOwner(key),
GWEN_CryptKey_GetOwner(key));
GWEN_IPCXMLSecCtx_AddKey(sc, GWEN_CryptKey_dup(key));
GWEN_SecContext_SetLocalSignSeq(sc, 1);
GWEN_SecContext_SetRemoteSignSeq(sc, 0);
GWEN_IPCXMLSecCtx_SetRemoteSignKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetRemoteCryptKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalSignKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalCryptKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalSignSeq(sc, 1);
GWEN_IPCXMLSecCtx_SetRemoteSignSeq(sc, 0);
if (GWEN_SecContextMgr_AddContext(scm, sc)) {
fprintf(stderr, "Could not add context.\n");
return 2;
......
sc=GWEN_IPCXMLSecCtx_new(GWEN_CryptKey_GetOwner(key),
0);
GWEN_IPCXMLSecCtx_AddKey(sc, GWEN_CryptKey_dup(key));
GWEN_SecContext_SetLocalSignSeq(sc, 1);
GWEN_SecContext_SetRemoteSignSeq(sc, 0);
GWEN_IPCXMLSecCtx_SetRemoteSignKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetRemoteCryptKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalSignKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalCryptKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalSignSeq(sc, 1);
GWEN_IPCXMLSecCtx_SetRemoteSignSeq(sc, 0);
if (GWEN_SecContextMgr_AddContext(scm, sc)) {
fprintf(stderr, "Could not add context.\n");
return 2;
......
return 2;
}
err=GWEN_CryptKey_FromDb(key, keydb);
if (!GWEN_Error_IsOk(err)) {
DBG_ERROR_ERR(0, err);
key=GWEN_CryptKey_FromDb(keydb);
if (!key) {
fprintf(stderr, "Could not load key\n");
return 2;
}
GWEN_DB_Group_free(keydb);
......
sc=GWEN_IPCXMLSecCtx_new(GWEN_CryptKey_GetOwner(key),
GWEN_CryptKey_GetOwner(key));
GWEN_IPCXMLSecCtx_AddKey(sc, GWEN_CryptKey_dup(key));
GWEN_SecContext_SetLocalSignSeq(sc, 1);
GWEN_SecContext_SetRemoteSignSeq(sc, 0);
GWEN_IPCXMLSecCtx_SetRemoteSignKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetRemoteCryptKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalSignKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalCryptKey(sc, GWEN_CryptKey_dup(key));
GWEN_IPCXMLSecCtx_SetLocalSignSeq(sc, 1);
GWEN_IPCXMLSecCtx_SetRemoteSignSeq(sc, 0);
if (GWEN_SecContextMgr_AddContext(scm, sc)) {
fprintf(stderr, "Could not add context.\n");
return 2;
}
fprintf(stderr, "Context added.\n");
fprintf(stderr, "Creating service.\n");
......
}
fprintf(stderr, "Creating client: done.\n");
err=GWEN_IPCXMLService_SetSecurityEnv(service,
serverId,
GWEN_CryptKey_GetKeySpec(key),
GWEN_CryptKey_GetKeySpec(key));
if (!GWEN_Error_IsOk(err)) {
DBG_ERROR_ERR(0, err);
return 2;
}
GWEN_IPCXMLService_SetRemoteName(service,
serverId,
"martin");
GWEN_IPCXMLService_SetSecurityFlags(service, serverId,
GWEN_HBCIMSG_FLAGS_SIGN |
GWEN_HBCIMSG_FLAGS_CRYPT);
fprintf(stderr, "Adding request...\n");
requestId=GWEN_IPCXMLService_AddRequest(service,
1,
......
return 2;
}
err=GWEN_CryptKey_FromDb(key, db);
if (!GWEN_Error_IsOk(err)) {
DBG_ERROR_ERR(0, err);
key=GWEN_CryptKey_FromDb(db);
if (!key) {
fprintf(stderr, "Could not load key\n");
return 2;
}
GWEN_DB_Group_free(db);

Auch abrufbar als: Unified diff