On Thu, Apr 20, 2017 at 04:03:38PM -0400, Igor V. Gubenko wrote:
> Hello everyone,
> 
> OpenIKED just doesn't seem to like me much.
> 
> I managed to get it working around 5.8 but from upgrade to upgrade I
> encountered different issues.
> 
> I have 3 tunnels using IKEv2. 2 are using a PSK, and 1 is using cert/RSA
> auth.
> 
> They were working fine on 6.0. However the same configuration now fails
> with 6.1 - iked refuses to start.
> 

>         srcid "/C=US/ST=New Jersey/L=Livingston/O=some org/OU=some
> dept/CN=some_cn_fqdn" \
>         dstid "/C=US/ST=New Jersey/L=Princeton/O=some org2/OU=some
> dept2/CN=some_cn_fqdn2"
> 

> set_policy: unknown type = 9

Thanks for the good report!

It seems that using ASN1_DN IDs got broken with parse.y 1.62.
Does the attached diff fix your problem?

Reyk

Index: sbin/iked/parse.y
===================================================================
RCS file: /cvs/src/sbin/iked/parse.y,v
retrieving revision 1.64
diff -u -p -u -p -r1.64 parse.y
--- sbin/iked/parse.y   28 Mar 2017 16:56:39 -0000      1.64
+++ sbin/iked/parse.y   20 Apr 2017 21:40:14 -0000
@@ -1807,7 +1807,7 @@ set_policy(char *idstr, int type, struct
 {
        char             keyfile[PATH_MAX];
        const char      *prefix = NULL;
-       EVP_PKEY        *key;
+       EVP_PKEY        *key = NULL;
 
        switch (type) {
        case IKEV2_ID_IPV4:
@@ -1822,6 +1822,9 @@ set_policy(char *idstr, int type, struct
        case IKEV2_ID_UFQDN:
                prefix = "ufqdn";
                break;
+       case IKEV2_ID_ASN1_DN:
+               /* public key authentication is not supported with ASN.1 IDs */
+               goto done;
        default:
                /* Unspecified ID or public key not supported for this type */
                log_debug("%s: unknown type = %d", __func__, type);
@@ -1841,6 +1844,7 @@ set_policy(char *idstr, int type, struct
                    keyfile);
        }
 
+ done:
        if (set_policy_auth_method(keyfile, key, pol) < 0) {
                EVP_PKEY_free(key);
                log_warnx("%s: failed to set policy auth method for %s",

Reply via email to