Diff for /embedaddon/ipsec-tools/src/racoon/oakley.c between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 22:39:10 version 1.1.1.2, 2014/06/15 16:37:11
Line 1 Line 1
/*      $NetBSD: oakley.c,v 1.22 2011/03/17 14:42:58 vanhu Exp $  *//*      $NetBSD: oakley.c,v 1.22.2.2 2012/08/29 11:35:09 tteras Exp $  */
   
 /* Id: oakley.c,v 1.32 2006/05/26 12:19:46 manubsd Exp */  /* Id: oakley.c,v 1.32 2006/05/26 12:19:46 manubsd Exp */
   
Line 1288  oakley_validate_auth(iph1) Line 1288  oakley_validate_auth(iph1)
 {  {
         vchar_t *my_hash = NULL;          vchar_t *my_hash = NULL;
         int result;          int result;
           int no_verify_needed = -1;
 #ifdef HAVE_GSSAPI  #ifdef HAVE_GSSAPI
         vchar_t *gsshash = NULL;          vchar_t *gsshash = NULL;
 #endif  #endif
Line 1361  oakley_validate_auth(iph1) Line 1362  oakley_validate_auth(iph1)
                 plog(LLV_DEBUG, LOCATION, NULL, "HASH for PSK validated.\n");                  plog(LLV_DEBUG, LOCATION, NULL, "HASH for PSK validated.\n");
             }              }
                 break;                  break;
         case OAKLEY_ATTR_AUTH_METHOD_DSSSIG:  
         case OAKLEY_ATTR_AUTH_METHOD_RSASIG:  
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
         case OAKLEY_ATTR_AUTH_METHOD_HYBRID_RSA_I:          case OAKLEY_ATTR_AUTH_METHOD_HYBRID_RSA_I:
         case OAKLEY_ATTR_AUTH_METHOD_HYBRID_DSS_I:          case OAKLEY_ATTR_AUTH_METHOD_HYBRID_DSS_I:
Line 1370  oakley_validate_auth(iph1) Line 1369  oakley_validate_auth(iph1)
         case OAKLEY_ATTR_AUTH_METHOD_XAUTH_RSASIG_R:          case OAKLEY_ATTR_AUTH_METHOD_XAUTH_RSASIG_R:
         case OAKLEY_ATTR_AUTH_METHOD_XAUTH_DSSSIG_I:          case OAKLEY_ATTR_AUTH_METHOD_XAUTH_DSSSIG_I:
         case OAKLEY_ATTR_AUTH_METHOD_XAUTH_DSSSIG_R:          case OAKLEY_ATTR_AUTH_METHOD_XAUTH_DSSSIG_R:
                   no_verify_needed = 0;
 #endif  #endif
           case OAKLEY_ATTR_AUTH_METHOD_DSSSIG:
           case OAKLEY_ATTR_AUTH_METHOD_RSASIG:
             {              {
                 int error = 0;                  int error = 0;
                 int certtype;                  int certtype;
Line 1432  oakley_validate_auth(iph1) Line 1434  oakley_validate_auth(iph1)
                         }                          }
   
                         if (error != 0) {                          if (error != 0) {
                                plog(LLV_ERROR, LOCATION, NULL,                                plog(LLV_ERROR, LOCATION, iph1->remote,
                                      "the peer's certificate is not verified.\n");                                       "the peer's certificate is not verified.\n");
                                 return ISAKMP_NTYPE_INVALID_CERT_AUTHORITY;                                  return ISAKMP_NTYPE_INVALID_CERT_AUTHORITY;
                         }                          }
Line 1454  oakley_validate_auth(iph1) Line 1456  oakley_validate_auth(iph1)
                 case ISAKMP_CERT_PLAINRSA:                  case ISAKMP_CERT_PLAINRSA:
                         if (get_plainrsa_fromlocal(iph1, 0))                          if (get_plainrsa_fromlocal(iph1, 0))
                                 return ISAKMP_INTERNAL_ERROR;                                  return ISAKMP_INTERNAL_ERROR;
                           /* suppress CERT validation warning, unless hybrid mode in use */
                           if (no_verify_needed == -1)
                                   no_verify_needed = 1;
                         break;                          break;
                 case ISAKMP_CERT_DNS:                  case ISAKMP_CERT_DNS:
                         /* don't use received cert */                          /* don't use received cert */
Line 1480  oakley_validate_auth(iph1) Line 1485  oakley_validate_auth(iph1)
                 if ((error = oakley_check_certid(iph1)) != 0)                  if ((error = oakley_check_certid(iph1)) != 0)
                         return error;                          return error;
   
                /* Generate a warning if verify_cert */                /* Generate a warning unless verify_cert */
                 if (iph1->rmconf->verify_cert) {                  if (iph1->rmconf->verify_cert) {
                        plog(LLV_DEBUG, LOCATION, NULL,                        plog(LLV_DEBUG, LOCATION, iph1->remote,
                              "CERT validated\n");                               "CERT validated\n");
                } else {                } else if (no_verify_needed != 1) {
                        plog(LLV_WARNING, LOCATION, NULL,                        plog(LLV_WARNING, LOCATION, iph1->remote,
                              "CERT validation disabled by configuration\n");                               "CERT validation disabled by configuration\n");
                 }                  }
   

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>