diff options
Diffstat (limited to 'src/charon/sa')
-rw-r--r-- | src/charon/sa/authenticators/rsa_authenticator.c | 1 | ||||
-rw-r--r-- | src/charon/sa/tasks/ike_auth.c | 20 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/charon/sa/authenticators/rsa_authenticator.c b/src/charon/sa/authenticators/rsa_authenticator.c index 5a1a3a560..e5c5cd60e 100644 --- a/src/charon/sa/authenticators/rsa_authenticator.c +++ b/src/charon/sa/authenticators/rsa_authenticator.c @@ -80,6 +80,7 @@ static status_t verify(private_rsa_authenticator_t *this, chunk_t ike_sa_init, if (status == SUCCESS) { + this->ike_sa->set_other_ca(this->ike_sa, issuer); DBG1(DBG_IKE, "authentication of '%D' with %N successful", other_id, auth_method_names, AUTH_RSA); } diff --git a/src/charon/sa/tasks/ike_auth.c b/src/charon/sa/tasks/ike_auth.c index 4eaf1b0c6..d0dd49aee 100644 --- a/src/charon/sa/tasks/ike_auth.c +++ b/src/charon/sa/tasks/ike_auth.c @@ -511,15 +511,6 @@ static status_t process_r(private_ike_auth_t *this, message_t *message) return NEED_MORE; } - config = charon->backends->get_peer_cfg(charon->backends, - this->ike_sa->get_my_id(this->ike_sa), - this->ike_sa->get_other_id(this->ike_sa)); - if (config) - { - this->ike_sa->set_peer_cfg(this->ike_sa, config); - config->destroy(config); - } - switch (process_auth(this, message)) { case SUCCESS: @@ -532,6 +523,17 @@ static status_t process_r(private_ike_auth_t *this, message_t *message) default: break; } + + config = charon->backends->get_peer_cfg(charon->backends, + this->ike_sa->get_my_id(this->ike_sa), + this->ike_sa->get_other_id(this->ike_sa), + this->ike_sa->get_other_ca(this->ike_sa)); + if (config) + { + this->ike_sa->set_peer_cfg(this->ike_sa, config); + config->destroy(config); + } + return NEED_MORE; } |