-
-void CoreSession::createIdentity(const Identity &id) {
- // find free ID
- int i;
- for(i = 1; i <= _identities.count(); i++) {
- if(!_identities.keys().contains(i)) break;
- }
- //qDebug() << "found free id" << i;
- Identity *newId = new Identity(id, this);
- newId->setId(i);
- _identities[i] = newId;
- signalProxy()->synchronize(newId);
- CoreUserSettings s(user());
- s.storeIdentity(*newId);
- connect(newId, SIGNAL(updated(const QVariantMap &)), this, SLOT(identityUpdated(const QVariantMap &)));
- emit identityCreated(*newId);
+void CoreSession::createIdentity(const Identity &identity, const QVariantMap &additional) {
+ CoreIdentity coreIdentity(identity);
+ if(additional.contains("KeyPem"))
+ coreIdentity.setSslKey(additional["KeyPem"].toByteArray());
+ if(additional.contains("CertPem"))
+ coreIdentity.setSslCert(additional["CertPem"].toByteArray());
+ IdentityId id = Core::createIdentity(user(), coreIdentity);
+ if(!id.isValid())
+ return;
+ else
+ createIdentity(coreIdentity);