diff options
author | Yves-Alexis Perez <corsac@debian.org> | 2013-08-25 15:37:26 +0200 |
---|---|---|
committer | Yves-Alexis Perez <corsac@debian.org> | 2013-08-25 15:37:26 +0200 |
commit | 6b99c8d9cff7b3e8ae8f3204b99e7ea40f791349 (patch) | |
tree | 009fc492961e13860d2a4bc2de8caf2bbe2975e7 /src/libtncif | |
parent | c83921a2b566aa9d55d8ccc7258f04fca6292ee6 (diff) | |
download | vyos-strongswan-6b99c8d9cff7b3e8ae8f3204b99e7ea40f791349.tar.gz vyos-strongswan-6b99c8d9cff7b3e8ae8f3204b99e7ea40f791349.zip |
Imported Upstream version 5.1.0
Diffstat (limited to 'src/libtncif')
-rw-r--r-- | src/libtncif/Android.mk | 3 | ||||
-rw-r--r-- | src/libtncif/Makefile.am | 6 | ||||
-rw-r--r-- | src/libtncif/Makefile.in | 73 | ||||
-rw-r--r-- | src/libtncif/tncif_policy.c | 106 | ||||
-rw-r--r-- | src/libtncif/tncif_policy.h | 53 | ||||
-rw-r--r-- | src/libtncif/tncifimv.h | 6 |
6 files changed, 218 insertions, 29 deletions
diff --git a/src/libtncif/Android.mk b/src/libtncif/Android.mk index 9a9bfa9ad..13ce6e11a 100644 --- a/src/libtncif/Android.mk +++ b/src/libtncif/Android.mk @@ -5,7 +5,8 @@ include $(CLEAR_VARS) libtncif_la_SOURCES := \ tncif.h tncifimc.h tncifimv.h tncif_names.h tncif_names.c \ tncif_identity.h tncif_identity.c \ -tncif_pa_subtypes.h tncif_pa_subtypes.c +tncif_pa_subtypes.h tncif_pa_subtypes.c \ +tncif_policy.h tncif_policy.c LOCAL_SRC_FILES := $(filter %.c,$(libtncif_la_SOURCES)) diff --git a/src/libtncif/Makefile.am b/src/libtncif/Makefile.am index 6da1201f3..3c7cb9ff2 100644 --- a/src/libtncif/Makefile.am +++ b/src/libtncif/Makefile.am @@ -1,10 +1,12 @@ -INCLUDES = -I$(top_srcdir)/src/libstrongswan +AM_CPPFLAGS = \ + -I$(top_srcdir)/src/libstrongswan noinst_LTLIBRARIES = libtncif.la libtncif_la_SOURCES = \ tncif.h tncifimc.h tncifimv.h tncif_names.h tncif_names.c \ tncif_identity.h tncif_identity.c \ -tncif_pa_subtypes.h tncif_pa_subtypes.c +tncif_pa_subtypes.h tncif_pa_subtypes.c \ +tncif_policy.h tncif_policy.c EXTRA_DIST = Android.mk diff --git a/src/libtncif/Makefile.in b/src/libtncif/Makefile.in index 320faf616..8c51dfd5c 100644 --- a/src/libtncif/Makefile.in +++ b/src/libtncif/Makefile.in @@ -62,7 +62,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/config/libtool.m4 \ $(top_srcdir)/m4/macros/with.m4 \ $(top_srcdir)/m4/macros/enable-disable.m4 \ $(top_srcdir)/m4/macros/add-plugin.m4 \ - $(top_srcdir)/configure.in + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -72,21 +72,37 @@ CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libtncif_la_LIBADD = am_libtncif_la_OBJECTS = tncif_names.lo tncif_identity.lo \ - tncif_pa_subtypes.lo + tncif_pa_subtypes.lo tncif_policy.lo libtncif_la_OBJECTS = $(am_libtncif_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libtncif_la_SOURCES) DIST_SOURCES = $(libtncif_la_SOURCES) am__can_run_installinfo = \ @@ -100,6 +116,7 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -112,6 +129,8 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ +COVERAGE_CFLAGS = @COVERAGE_CFLAGS@ +COVERAGE_LDFLAGS = @COVERAGE_LDFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ @@ -127,6 +146,7 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +GENHTML = @GENHTML@ GPERF = @GPERF@ GPRBUILD = @GPRBUILD@ GREP = @GREP@ @@ -135,6 +155,7 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LCOV = @LCOV@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ @@ -181,6 +202,7 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKLIB = @SOCKLIB@ STRIP = @STRIP@ +UNWINDLIB = @UNWINDLIB@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -209,6 +231,7 @@ charon_natt_port = @charon_natt_port@ charon_plugins = @charon_plugins@ charon_udp_port = @charon_udp_port@ clearsilver_LIBS = @clearsilver_LIBS@ +cmd_plugins = @cmd_plugins@ datadir = @datadir@ datarootdir = @datarootdir@ dbusservicedir = @dbusservicedir@ @@ -286,12 +309,15 @@ top_srcdir = @top_srcdir@ urandom_device = @urandom_device@ xml_CFLAGS = @xml_CFLAGS@ xml_LIBS = @xml_LIBS@ -INCLUDES = -I$(top_srcdir)/src/libstrongswan +AM_CPPFLAGS = \ + -I$(top_srcdir)/src/libstrongswan + noinst_LTLIBRARIES = libtncif.la libtncif_la_SOURCES = \ tncif.h tncifimc.h tncifimv.h tncif_names.h tncif_names.c \ tncif_identity.h tncif_identity.c \ -tncif_pa_subtypes.h tncif_pa_subtypes.c +tncif_pa_subtypes.h tncif_pa_subtypes.c \ +tncif_policy.h tncif_policy.c EXTRA_DIST = Android.mk all: all-am @@ -338,7 +364,7 @@ clean-noinstLTLIBRARIES: rm -f "$${dir}/so_locations"; \ done libtncif.la: $(libtncif_la_OBJECTS) $(libtncif_la_DEPENDENCIES) $(EXTRA_libtncif_la_DEPENDENCIES) - $(LINK) $(libtncif_la_OBJECTS) $(libtncif_la_LIBADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(libtncif_la_OBJECTS) $(libtncif_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -349,27 +375,28 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tncif_identity.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tncif_names.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tncif_pa_subtypes.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tncif_policy.Plo@am__quote@ .c.o: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo diff --git a/src/libtncif/tncif_policy.c b/src/libtncif/tncif_policy.c new file mode 100644 index 000000000..1fa88e344 --- /dev/null +++ b/src/libtncif/tncif_policy.c @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2013 Andreas Steffen + * HSR Hochschule fuer Technik Rapperswil + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#include "tncif_policy.h" + +/** + * See header + */ +TNC_IMV_Evaluation_Result tncif_policy_update_evaluation( + TNC_IMV_Evaluation_Result eval, + TNC_IMV_Evaluation_Result eval_add) +{ + switch (eval) + { + case TNC_IMV_EVALUATION_RESULT_COMPLIANT: + switch (eval_add) + { + case TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MINOR: + case TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MAJOR: + case TNC_IMV_EVALUATION_RESULT_ERROR: + eval = eval_add; + break; + default: + break; + } + break; + case TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MINOR: + switch (eval_add) + { + case TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MAJOR: + case TNC_IMV_EVALUATION_RESULT_ERROR: + eval = eval_add; + break; + default: + break; + } + break; + case TNC_IMV_EVALUATION_RESULT_NONCOMPLIANT_MAJOR: + switch (eval_add) + { + case TNC_IMV_EVALUATION_RESULT_ERROR: + eval = eval_add; + break; + default: + break; + } + break; + case TNC_IMV_EVALUATION_RESULT_DONT_KNOW: + eval = eval_add; + break; + default: + break; + } + return eval; +} + +/** + * See header + */ +TNC_IMV_Action_Recommendation tncif_policy_update_recommendation( + TNC_IMV_Action_Recommendation rec, + TNC_IMV_Action_Recommendation rec_add) +{ + switch (rec) + { + case TNC_IMV_ACTION_RECOMMENDATION_ALLOW: + switch (rec_add) + { + case TNC_IMV_ACTION_RECOMMENDATION_NO_ACCESS: + case TNC_IMV_ACTION_RECOMMENDATION_ISOLATE: + rec = rec_add; + break; + default: + break; + } + break; + case TNC_IMV_ACTION_RECOMMENDATION_ISOLATE: + switch (rec_add) + { + case TNC_IMV_ACTION_RECOMMENDATION_NO_ACCESS: + rec = rec_add; + break; + default: + break; + } + break; + case TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION: + rec = rec_add; + break; + default: + break; + } + return rec; +} diff --git a/src/libtncif/tncif_policy.h b/src/libtncif/tncif_policy.h new file mode 100644 index 000000000..d9f553b72 --- /dev/null +++ b/src/libtncif/tncif_policy.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2013 Andreas Steffen + * HSR Hochschule fuer Technik Rapperswil + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +/** + * @defgroup libtncif libtncif + * + * @addtogroup libtncif + * TNC interface definitions + * + * @defgroup tnc_policy tnc_policy + * @{ @ingroup libtncif + */ + +#ifndef TNCIF_POLICY_H_ +#define TNCIF_POLICY_H_ + +#include "tncifimv.h" + +/** + * Create an empty TNC Identity object + * + * @param eval Existing evaluation to be updated + * @param eval_add Partial evaluation to be added + * @return Updated evaluation + */ +TNC_IMV_Evaluation_Result tncif_policy_update_evaluation( + TNC_IMV_Evaluation_Result eval, + TNC_IMV_Evaluation_Result eval_add); + +/** + * Create an empty TNC Identity object + * + * @param rec Existing recommendationto be updated + * @param rec_add Partial recommendation to be added + * @return Updated recommendation + */ +TNC_IMV_Action_Recommendation tncif_policy_update_recommendation( + TNC_IMV_Action_Recommendation rec, + TNC_IMV_Action_Recommendation rec_add); + +#endif /** TNCIF_POLICY_H_ @}*/ diff --git a/src/libtncif/tncifimv.h b/src/libtncif/tncifimv.h index 945012dc0..ecd4fd45b 100644 --- a/src/libtncif/tncifimv.h +++ b/src/libtncif/tncifimv.h @@ -217,9 +217,9 @@ typedef TNC_Result (*TNC_IMV_ProvideBindFunctionPointer)( #define TNC_ID_IPV4_ADDR 1 #define TNC_ID_IPV6_ADDR 2 #define TNC_ID_FQDN 3 -#define TNC_ID_RFC822_ADDR 4 +#define TNC_ID_EMAIL_ADDR 4 #define TNC_ID_USERNAME 5 -#define TNC_ID_ASN1_DN 6 +#define TNC_ID_X500_DN 6 /* TNC Subject Types */ @@ -230,7 +230,7 @@ typedef TNC_Result (*TNC_IMV_ProvideBindFunctionPointer)( /* TNC Authentication Types */ #define TNC_AUTH_UNKNOWN 0 -#define TNC_AUTH_CERT 1 +#define TNC_AUTH_X509_CERT 1 #define TNC_AUTH_PASSWORD 2 #define TNC_AUTH_SIM 3 |