Map auth_class to auth method and IKEv1 proposal attribute
This commit is contained in:
@@ -583,8 +583,12 @@ static u_int16_t get_ikev1_auth(auth_method_t method)
|
|||||||
return IKEV1_AUTH_RSA_SIG;
|
return IKEV1_AUTH_RSA_SIG;
|
||||||
case AUTH_DSS:
|
case AUTH_DSS:
|
||||||
return IKEV1_AUTH_DSS_SIG;
|
return IKEV1_AUTH_DSS_SIG;
|
||||||
|
case AUTH_XAUTH_INIT_PSK:
|
||||||
|
return IKEV1_AUTH_XAUTH_INIT_PSK;
|
||||||
|
case AUTH_XAUTH_INIT_RSA:
|
||||||
|
return IKEV1_AUTH_XAUTH_INIT_RSA;
|
||||||
default:
|
default:
|
||||||
/* TODO-IKEv1: Handle XAUTH methods */
|
/* TODO-IKEv1: Handle other XAUTH methods */
|
||||||
/* TODO-IKEv1: Handle ECDSA methods */
|
/* TODO-IKEv1: Handle ECDSA methods */
|
||||||
case AUTH_PSK:
|
case AUTH_PSK:
|
||||||
return IKEV1_AUTH_PSK;
|
return IKEV1_AUTH_PSK;
|
||||||
@@ -877,8 +881,12 @@ METHOD(proposal_substructure_t, get_auth_method, auth_method_t,
|
|||||||
return AUTH_RSA;
|
return AUTH_RSA;
|
||||||
case IKEV1_AUTH_DSS_SIG:
|
case IKEV1_AUTH_DSS_SIG:
|
||||||
return AUTH_DSS;
|
return AUTH_DSS;
|
||||||
|
case IKEV1_AUTH_XAUTH_INIT_PSK:
|
||||||
|
return AUTH_XAUTH_INIT_PSK;
|
||||||
|
case IKEV1_AUTH_XAUTH_INIT_RSA:
|
||||||
|
return AUTH_XAUTH_INIT_RSA;
|
||||||
default:
|
default:
|
||||||
/* TODO-IKEv1: XAUTH, ECDSA sigs */
|
/* TODO-IKEv1: other XAUTH, ECDSA sigs */
|
||||||
return AUTH_NONE;
|
return AUTH_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -473,6 +473,10 @@ static auth_cfg_t *build_auth_cfg(private_stroke_config_t *this,
|
|||||||
{
|
{
|
||||||
cfg->add(cfg, AUTH_RULE_AUTH_CLASS, AUTH_CLASS_XAUTH_PSK);
|
cfg->add(cfg, AUTH_RULE_AUTH_CLASS, AUTH_CLASS_XAUTH_PSK);
|
||||||
}
|
}
|
||||||
|
else if (streq(auth, "xauthrsasig"))
|
||||||
|
{
|
||||||
|
cfg->add(cfg, AUTH_RULE_AUTH_CLASS, AUTH_CLASS_XAUTH_PUBKEY);
|
||||||
|
}
|
||||||
else if (strneq(auth, "eap", 3))
|
else if (strneq(auth, "eap", 3))
|
||||||
{
|
{
|
||||||
enumerator_t *enumerator;
|
enumerator_t *enumerator;
|
||||||
|
|||||||
@@ -73,6 +73,16 @@ enum auth_method_t {
|
|||||||
* ECDSA with SHA-512 on the P-521 curve as specified in RFC 4754
|
* ECDSA with SHA-512 on the P-521 curve as specified in RFC 4754
|
||||||
*/
|
*/
|
||||||
AUTH_ECDSA_521 = 11,
|
AUTH_ECDSA_521 = 11,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IKEv1 initiator XAUTH with PSK, outside of IANA range
|
||||||
|
*/
|
||||||
|
AUTH_XAUTH_INIT_PSK = 256,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IKEv1 initiator XAUTH with RSA, outside of IANA range
|
||||||
|
*/
|
||||||
|
AUTH_XAUTH_INIT_RSA,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -298,6 +298,10 @@ static auth_method_t get_auth_method(private_main_mode_t *this)
|
|||||||
{
|
{
|
||||||
case AUTH_CLASS_PSK:
|
case AUTH_CLASS_PSK:
|
||||||
return AUTH_PSK;
|
return AUTH_PSK;
|
||||||
|
case AUTH_CLASS_XAUTH_PSK:
|
||||||
|
return AUTH_XAUTH_INIT_PSK;
|
||||||
|
case AUTH_CLASS_XAUTH_PUBKEY:
|
||||||
|
return AUTH_XAUTH_INIT_RSA;
|
||||||
case AUTH_CLASS_PUBKEY:
|
case AUTH_CLASS_PUBKEY:
|
||||||
/* TODO-IKEv1: look for a key, return RSA or ECDSA */
|
/* TODO-IKEv1: look for a key, return RSA or ECDSA */
|
||||||
default:
|
default:
|
||||||
@@ -586,6 +590,7 @@ static bool derive_keys(private_main_mode_t *this, chunk_t nonce_i,
|
|||||||
switch (auth)
|
switch (auth)
|
||||||
{
|
{
|
||||||
case AUTH_CLASS_PSK:
|
case AUTH_CLASS_PSK:
|
||||||
|
case AUTH_CLASS_XAUTH_PSK:
|
||||||
shared_key = lookup_shared_key(this);
|
shared_key = lookup_shared_key(this);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ enum auth_class_t {
|
|||||||
AUTH_CLASS_EAP = 3,
|
AUTH_CLASS_EAP = 3,
|
||||||
/** authentication using pre-shared secrets in combination with XAuth */
|
/** authentication using pre-shared secrets in combination with XAuth */
|
||||||
AUTH_CLASS_XAUTH_PSK = 4,
|
AUTH_CLASS_XAUTH_PSK = 4,
|
||||||
|
/** authentication using public keys in combination with XAuth */
|
||||||
|
AUTH_CLASS_XAUTH_PUBKEY = 5,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user