diff --git a/main/strongswan/2001-support-gre-key-in-ikev1.patch b/main/strongswan/2001-support-gre-key-in-ikev1.patch
deleted file mode 100644
index e33d997d4b20b7b4bebf14f848a85fd30db2946b..0000000000000000000000000000000000000000
--- a/main/strongswan/2001-support-gre-key-in-ikev1.patch
+++ /dev/null
@@ -1,507 +0,0 @@
-From 9ebc52171e912a58288c24b74668ffa7af61bee8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Mon, 21 Sep 2015 13:42:18 +0300
-Subject: [PATCH] support gre key in ikev1
-
-this implements gre key negotiation in ikev1 similarly to the
-ipsec-tools patch in alpine.
-
-the from/to port pair is internally used as gre key for gre
-protocol traffic selectors. since from/to pairs 0/0xffff and
-0xffff/0 have special meaning, the gre keys 0xffff and 0xffff0000
-will not work.
-
-this is not standard compliant, and should probably not be upstreamed
-or used widely, but it is applied for interoperability with alpine
-racoon for the time being.
----
- src/libcharon/encoding/payloads/id_payload.c       | 68 +++++++++++++++++-----
- src/libcharon/encoding/payloads/id_payload.h       |  6 +-
- .../plugins/kernel_netlink/kernel_netlink_ipsec.c  | 40 ++++++++++---
- src/libcharon/plugins/stroke/stroke_config.c       |  5 ++
- src/libcharon/plugins/unity/unity_narrow.c         |  2 +-
- src/libcharon/plugins/vici/vici_config.c           |  9 ++-
- src/libcharon/sa/ikev1/tasks/quick_mode.c          | 16 ++---
- src/libstrongswan/selectors/traffic_selector.c     | 33 ++++++++++-
- src/libstrongswan/selectors/traffic_selector.h     | 31 ++++++++++
- 9 files changed, 171 insertions(+), 39 deletions(-)
-
-diff --git a/src/libcharon/encoding/payloads/id_payload.c b/src/libcharon/encoding/payloads/id_payload.c
-index ae0b19a..b8a6500 100644
---- a/src/libcharon/encoding/payloads/id_payload.c
-+++ b/src/libcharon/encoding/payloads/id_payload.c
-@@ -245,18 +245,20 @@ METHOD(id_payload_t, get_identification, identification_t*,
-  * Create a traffic selector from an range ID
-  */
- static traffic_selector_t *get_ts_from_range(private_id_payload_t *this,
--											 ts_type_t type)
-+											 ts_type_t type,
-+											 uint16_t from_port, uint16_t to_port)
- {
- 	return traffic_selector_create_from_bytes(this->protocol_id, type,
--		chunk_create(this->id_data.ptr, this->id_data.len / 2), this->port,
--		chunk_skip(this->id_data, this->id_data.len / 2), this->port ?: 65535);
-+		chunk_create(this->id_data.ptr, this->id_data.len / 2), from_port,
-+		chunk_skip(this->id_data, this->id_data.len / 2), to_port);
- }
- 
- /**
-  * Create a traffic selector from an subnet ID
-  */
- static traffic_selector_t *get_ts_from_subnet(private_id_payload_t *this,
--											  ts_type_t type)
-+											  ts_type_t type,
-+											  uint16_t from_port, uint16_t to_port)
- {
- 	traffic_selector_t *ts;
- 	chunk_t net, netmask;
-@@ -269,7 +271,7 @@ static traffic_selector_t *get_ts_from_subnet(private_id_payload_t *this,
- 		netmask.ptr[i] = (netmask.ptr[i] ^ 0xFF) | net.ptr[i];
- 	}
- 	ts = traffic_selector_create_from_bytes(this->protocol_id, type,
--								net, this->port, netmask, this->port ?: 65535);
-+								net, from_port, netmask, to_port);
- 	chunk_free(&netmask);
- 	return ts;
- }
-@@ -278,51 +280,76 @@ static traffic_selector_t *get_ts_from_subnet(private_id_payload_t *this,
-  * Create a traffic selector from an IP ID
-  */
- static traffic_selector_t *get_ts_from_ip(private_id_payload_t *this,
--										  ts_type_t type)
-+										  ts_type_t type,
-+										  uint16_t from_port, uint16_t to_port)
- {
- 	return traffic_selector_create_from_bytes(this->protocol_id, type,
--				this->id_data, this->port, this->id_data, this->port ?: 65535);
-+				this->id_data, from_port, this->id_data, to_port);
- }
- 
- METHOD(id_payload_t, get_ts, traffic_selector_t*,
--	private_id_payload_t *this)
-+	private_id_payload_t *this, id_payload_t *other_, bool initiator)
- {
-+	private_id_payload_t *other = (private_id_payload_t *) other_;
-+	uint16_t from_port, to_port;
-+
-+	if (other && this->protocol_id == IPPROTO_GRE && other->protocol_id == IPPROTO_GRE)
-+	{
-+		if (initiator)
-+		{
-+			from_port = this->port;
-+			to_port = other->port;
-+		}
-+		else
-+		{
-+			from_port = other->port;
-+			to_port = this->port;
-+		}
-+		if (from_port == 0 && to_port == 0)
-+			to_port = 0xffff;
-+	}
-+	else
-+	{
-+		from_port = this->port;
-+		to_port = this->port ?: 0xffff;
-+	}
-+
- 	switch (this->id_type)
- 	{
- 		case ID_IPV4_ADDR_SUBNET:
- 			if (this->id_data.len == 8)
- 			{
--				return get_ts_from_subnet(this, TS_IPV4_ADDR_RANGE);
-+				return get_ts_from_subnet(this, TS_IPV4_ADDR_RANGE, from_port, to_port);
- 			}
- 			break;
- 		case ID_IPV6_ADDR_SUBNET:
- 			if (this->id_data.len == 32)
- 			{
--				return get_ts_from_subnet(this, TS_IPV6_ADDR_RANGE);
-+				return get_ts_from_subnet(this, TS_IPV6_ADDR_RANGE, from_port, to_port);
- 			}
- 			break;
- 		case ID_IPV4_ADDR_RANGE:
- 			if (this->id_data.len == 8)
- 			{
--				return get_ts_from_range(this, TS_IPV4_ADDR_RANGE);
-+				return get_ts_from_range(this, TS_IPV4_ADDR_RANGE, from_port, to_port);
- 			}
- 			break;
- 		case ID_IPV6_ADDR_RANGE:
- 			if (this->id_data.len == 32)
- 			{
--				return get_ts_from_range(this, TS_IPV6_ADDR_RANGE);
-+				return get_ts_from_range(this, TS_IPV6_ADDR_RANGE, from_port, to_port);
- 			}
- 			break;
- 		case ID_IPV4_ADDR:
- 			if (this->id_data.len == 4)
- 			{
--				return get_ts_from_ip(this, TS_IPV4_ADDR_RANGE);
-+				return get_ts_from_ip(this, TS_IPV4_ADDR_RANGE, from_port, to_port);
- 			}
- 			break;
- 		case ID_IPV6_ADDR:
- 			if (this->id_data.len == 16)
- 			{
--				return get_ts_from_ip(this, TS_IPV6_ADDR_RANGE);
-+				return get_ts_from_ip(this, TS_IPV6_ADDR_RANGE, from_port, to_port);
- 			}
- 			break;
- 		default:
-@@ -397,7 +424,7 @@ id_payload_t *id_payload_create_from_identification(payload_type_t type,
- /*
-  * Described in header.
-  */
--id_payload_t *id_payload_create_from_ts(traffic_selector_t *ts)
-+id_payload_t *id_payload_create_from_ts(traffic_selector_t *ts, bool initiator)
- {
- 	private_id_payload_t *this;
- 	uint8_t mask;
-@@ -460,8 +487,17 @@ id_payload_t *id_payload_create_from_ts(traffic_selector_t *ts)
- 							ts->get_from_address(ts), ts->get_to_address(ts));
- 		net->destroy(net);
- 	}
--	this->port = ts->get_from_port(ts);
- 	this->protocol_id = ts->get_protocol(ts);
-+	if (initiator || this->protocol_id != IPPROTO_GRE)
-+	{
-+		this->port = ts->get_from_port(ts);
-+	}
-+	else
-+	{
-+		this->port = ts->get_to_port(ts);
-+		if (this->port == 0xffff && ts->get_from_port(ts) == 0)
-+			this->port = 0;
-+	}
- 	this->payload_length += this->id_data.len;
- 
- 	return &this->public;
-diff --git a/src/libcharon/encoding/payloads/id_payload.h b/src/libcharon/encoding/payloads/id_payload.h
-index df1d075..7558e91 100644
---- a/src/libcharon/encoding/payloads/id_payload.h
-+++ b/src/libcharon/encoding/payloads/id_payload.h
-@@ -48,11 +48,11 @@ struct id_payload_t {
- 	identification_t *(*get_identification) (id_payload_t *this);
- 
- 	/**
--	 * Creates a traffic selector form a ID_ADDR_SUBNET/RANGE identity.
-+	 * Creates a traffic selector form a ID_ADDR_SUBNET/RANGE identity pair.
- 	 *
- 	 * @return				traffic selector, NULL on failure
- 	 */
--	traffic_selector_t* (*get_ts)(id_payload_t *this);
-+	traffic_selector_t* (*get_ts)(id_payload_t *this, id_payload_t *other, bool initiator);
- 
- 	/**
- 	 * Get encoded payload without fixed payload header (used for IKEv1).
-@@ -91,6 +91,6 @@ id_payload_t *id_payload_create_from_identification(payload_type_t type,
-  * @param ts		traffic selector
-  * @return			PLV1_ID id_paylad_t object.
-  */
--id_payload_t *id_payload_create_from_ts(traffic_selector_t *ts);
-+id_payload_t *id_payload_create_from_ts(traffic_selector_t *ts, bool initiator);
- 
- #endif /** ID_PAYLOAD_H_ @}*/
-diff --git a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c
-index 9c2a7c3..c39db9d 100644
---- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c
-+++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c
-@@ -812,7 +812,18 @@ static struct xfrm_selector ts2selector(traffic_selector_t *src,
- 	ts2subnet(src, &sel.saddr, &sel.prefixlen_s);
- 	ts2ports(dst, &sel.dport, &sel.dport_mask);
- 	ts2ports(src, &sel.sport, &sel.sport_mask);
--	if ((sel.proto == IPPROTO_ICMP || sel.proto == IPPROTO_ICMPV6) &&
-+	if (sel.proto == IPPROTO_GRE)
-+	{
-+		sel.sport = htons(src->get_from_port(src));
-+		sel.dport = htons(src->get_to_port(src));
-+		sel.sport_mask = ~0;
-+		sel.dport_mask = ~0;
-+		if (sel.sport == htons(0) && sel.dport == htons(0xffff))
-+		{
-+			sel.sport = sel.dport = sel.sport_mask = sel.dport_mask = 0;
-+		}
-+	}
-+	else if ((sel.proto == IPPROTO_ICMP || sel.proto == IPPROTO_ICMPV6) &&
- 		(sel.dport || sel.sport))
- 	{
- 		/* the kernel expects the ICMP type and code in the source and
-@@ -836,7 +847,7 @@ static traffic_selector_t* selector2ts(struct xfrm_selector *sel, bool src)
- {
- 	u_char *addr;
- 	uint8_t prefixlen;
--	uint16_t port = 0;
-+	uint16_t from_port = 0, to_port = 65535;
- 	host_t *host = NULL;
- 
- 	if (src)
-@@ -845,7 +856,7 @@ static traffic_selector_t* selector2ts(struct xfrm_selector *sel, bool src)
- 		prefixlen = sel->prefixlen_s;
- 		if (sel->sport_mask)
- 		{
--			port = ntohs(sel->sport);
-+			from_port = to_port = ntohs(sel->sport);
- 		}
- 	}
- 	else
-@@ -854,14 +865,27 @@ static traffic_selector_t* selector2ts(struct xfrm_selector *sel, bool src)
- 		prefixlen = sel->prefixlen_d;
- 		if (sel->dport_mask)
- 		{
--			port = ntohs(sel->dport);
-+			from_port = to_port = ntohs(sel->dport);
-+		}
-+	}
-+	if (sel->proto == IPPROTO_GRE)
-+	{
-+		if (sel->sport_mask)
-+		{
-+			from_port = ntohs(sel->sport);
-+			to_port = ntohs(sel->dport);
-+		}
-+		else
-+		{
-+			from_port = 0;
-+			to_port = 0xffff;
- 		}
- 	}
--	if (sel->proto == IPPROTO_ICMP || sel->proto == IPPROTO_ICMPV6)
-+	else if (sel->proto == IPPROTO_ICMP || sel->proto == IPPROTO_ICMPV6)
- 	{	/* convert ICMP[v6] message type and code as supplied by the kernel in
- 		 * source and destination ports (both in network order) */
--		port = (sel->sport >> 8) | (sel->dport & 0xff00);
--		port = ntohs(port);
-+		from_port = (sel->sport >> 8) | (sel->dport & 0xff00);
-+		from_port = to_port = ntohs(from_port);
- 	}
- 	/* The Linux 2.6 kernel does not set the selector's family field,
- 	 * so as a kludge we additionally test the prefix length.
-@@ -878,7 +902,7 @@ static traffic_selector_t* selector2ts(struct xfrm_selector *sel, bool src)
- 	if (host)
- 	{
- 		return traffic_selector_create_from_subnet(host, prefixlen,
--											sel->proto, port, port ?: 65535);
-+											sel->proto, from_port, to_port);
- 	}
- 	return NULL;
- }
-diff --git a/src/libcharon/plugins/stroke/stroke_config.c b/src/libcharon/plugins/stroke/stroke_config.c
-index f2d1104..9caf12e 100644
---- a/src/libcharon/plugins/stroke/stroke_config.c
-+++ b/src/libcharon/plugins/stroke/stroke_config.c
-@@ -941,6 +941,11 @@ static bool parse_protoport(char *token, uint16_t *from_port,
- 		*from_port = 0xffff;
- 		*to_port = 0;
- 	}
-+	else if (*port && *protocol == IPPROTO_GRE)
-+	{
-+		p = strtol(port, &endptr, 0);
-+		traffic_selector_split_grekey(p, from_port, to_port);
-+	}
- 	else if (*port)
- 	{
- 		svc = getservbyname(port, NULL);
-diff --git a/src/libcharon/plugins/unity/unity_narrow.c b/src/libcharon/plugins/unity/unity_narrow.c
-index 227d24b..7749d8c 100644
---- a/src/libcharon/plugins/unity/unity_narrow.c
-+++ b/src/libcharon/plugins/unity/unity_narrow.c
-@@ -247,7 +247,7 @@ METHOD(listener_t, message, bool,
- 			if (!first)
- 			{
- 				id_payload = (id_payload_t*)payload;
--				tsr = id_payload->get_ts(id_payload);
-+				tsr = id_payload->get_ts(id_payload, NULL, FALSE);
- 				break;
- 			}
- 			first = FALSE;
-diff --git a/src/libcharon/plugins/vici/vici_config.c b/src/libcharon/plugins/vici/vici_config.c
-index 30e3484..553f04c 100644
---- a/src/libcharon/plugins/vici/vici_config.c
-+++ b/src/libcharon/plugins/vici/vici_config.c
-@@ -626,8 +626,13 @@ CALLBACK(parse_ts, bool,
- 		}
- 		else if (*port && !streq(port, "any"))
- 		{
--			svc = getservbyname(port, NULL);
--			if (svc)
-+			if (proto == IPPROTO_GRE)
-+			{
-+				p = strtol(port, &end, 0);
-+				if (*end) return FALSE;
-+				traffic_selector_split_grekey(p, &from, &to);
-+			}
-+			else if ((svc = getservbyname(port, NULL)) != NULL)
- 			{
- 				from = to = ntohs(svc->s_port);
- 			}
-diff --git a/src/libcharon/sa/ikev1/tasks/quick_mode.c b/src/libcharon/sa/ikev1/tasks/quick_mode.c
-index bbd1cb0..fe5d33d 100644
---- a/src/libcharon/sa/ikev1/tasks/quick_mode.c
-+++ b/src/libcharon/sa/ikev1/tasks/quick_mode.c
-@@ -555,9 +555,9 @@ static void add_ts(private_quick_mode_t *this, message_t *message)
- {
- 	id_payload_t *id_payload;
- 
--	id_payload = id_payload_create_from_ts(this->tsi);
-+	id_payload = id_payload_create_from_ts(this->tsi, TRUE);
- 	message->add_payload(message, &id_payload->payload_interface);
--	id_payload = id_payload_create_from_ts(this->tsr);
-+	id_payload = id_payload_create_from_ts(this->tsr, FALSE);
- 	message->add_payload(message, &id_payload->payload_interface);
- }
- 
-@@ -568,7 +568,7 @@ static bool get_ts(private_quick_mode_t *this, message_t *message)
- {
- 	traffic_selector_t *tsi = NULL, *tsr = NULL;
- 	enumerator_t *enumerator;
--	id_payload_t *id_payload;
-+	id_payload_t *idi = NULL, *idr = NULL;
- 	payload_t *payload;
- 	host_t *hsi, *hsr;
- 	bool first = TRUE;
-@@ -578,20 +578,22 @@ static bool get_ts(private_quick_mode_t *this, message_t *message)
- 	{
- 		if (payload->get_type(payload) == PLV1_ID)
- 		{
--			id_payload = (id_payload_t*)payload;
--
- 			if (first)
- 			{
--				tsi = id_payload->get_ts(id_payload);
-+				idi = (id_payload_t*)payload;
- 				first = FALSE;
- 			}
- 			else
- 			{
--				tsr = id_payload->get_ts(id_payload);
-+				idr = (id_payload_t*)payload;
- 				break;
- 			}
- 		}
- 	}
-+	if (idi && idr) {
-+		tsi = idi->get_ts(idi, idr, TRUE);
-+		tsr = idr->get_ts(idr, idi, FALSE);
-+	}
- 	enumerator->destroy(enumerator);
- 
- 	/* create host2host selectors if ID payloads missing */
-diff --git a/src/libstrongswan/selectors/traffic_selector.c b/src/libstrongswan/selectors/traffic_selector.c
-index da3ba97..ee2af19 100644
---- a/src/libstrongswan/selectors/traffic_selector.c
-+++ b/src/libstrongswan/selectors/traffic_selector.c
-@@ -209,6 +209,14 @@ static int print_icmp(printf_hook_data_t *data, uint16_t port)
- }
- 
- /**
-+ * Print GRE key
-+ */
-+static int print_grekey(printf_hook_data_t *data, uint16_t from_port, uint16_t to_port)
-+{
-+	return print_in_hook(data, "%d", traffic_selector_grekey(from_port, to_port));
-+}
-+
-+/**
-  * Described in header.
-  */
- int traffic_selector_printf_hook(printf_hook_data_t *data,
-@@ -312,7 +320,11 @@ int traffic_selector_printf_hook(printf_hook_data_t *data,
- 	/* build port string */
- 	if (has_ports)
- 	{
--		if (this->from_port == this->to_port)
-+		if (this->protocol == IPPROTO_GRE)
-+		{
-+			written += print_grekey(data, this->from_port, this->to_port);
-+		}
-+		else if (this->from_port == this->to_port)
- 		{
- 			struct servent *serv;
- 
-@@ -397,7 +409,24 @@ METHOD(traffic_selector_t, get_subset, traffic_selector_t*,
- 	/* select protocol, which is not zero */
- 	protocol = max(this->protocol, other->protocol);
- 
--	if ((is_opaque(this) && is_opaque(other)) ||
-+	if (this->protocol == IPPROTO_GRE)
-+	{
-+		if (is_any(this))
-+		{
-+			from_port = other->from_port;
-+			to_port = other->to_port;
-+		}
-+		else if (is_any(other) ||
-+			 (this->from_port == other->from_port &&
-+			  this->to_port == other->to_port))
-+		{
-+			from_port = this->from_port;
-+			to_port = this->to_port;
-+		}
-+		else
-+			return NULL;
-+	}
-+	else if ((is_opaque(this) && is_opaque(other)) ||
- 		(is_opaque(this) && is_any(other)) ||
- 		(is_opaque(other) && is_any(this)))
- 	{
-diff --git a/src/libstrongswan/selectors/traffic_selector.h b/src/libstrongswan/selectors/traffic_selector.h
-index cc66c34..a2a95b9 100644
---- a/src/libstrongswan/selectors/traffic_selector.h
-+++ b/src/libstrongswan/selectors/traffic_selector.h
-@@ -120,6 +120,9 @@ struct traffic_selector_t {
- 	 * 8 bits and the code in the least significant 8 bits.  Use the utility
- 	 * functions to extract them.
- 	 *
-+	 * If the protocol is GRE, the high 16-bits of the 32-bit GRE key is stored
-+	 * in the from port. Use the utility function to merge and split them.
-+	 *
- 	 * @return			port
- 	 */
- 	uint16_t (*get_from_port) (traffic_selector_t *this);
-@@ -134,6 +137,9 @@ struct traffic_selector_t {
- 	 * 8 bits and the code in the least significant 8 bits.  Use the utility
- 	 * functions to extract them.
- 	 *
-+	 * If the protocol is GRE, the low 16-bits of the 32-bit GRE key is stored
-+	 * in the to port. Use the utility function to merge and split them.
-+	 *
- 	 * @return			port
- 	 */
- 	uint16_t (*get_to_port) (traffic_selector_t *this);
-@@ -268,6 +274,31 @@ int traffic_selector_cmp(traffic_selector_t *a, traffic_selector_t *b,
- 						 void *opts);
- 
- /**
-+ * Reconstruct the 32-bit GRE KEY in host order from a from/to ports.
-+ *
-+ * @param from_port			port number in host order
-+ * @param to_port			port number in host order
-+ * @return				GRE KEY in host order
-+ */
-+static inline uint32_t traffic_selector_grekey(uint16_t from_port, uint16_t to_port)
-+{
-+	return (from_port << 16) | to_port;
-+}
-+
-+/**
-+ * Split 32-bit GRE KEY in host order to from/to ports.
-+ *
-+ * @param grekey			grekey in host order
-+ * @param from_port			from port in host order
-+ * @param to_port			to port in host order
-+ */
-+static inline void traffic_selector_split_grekey(uint32_t grekey, uint16_t *from_port, uint16_t *to_port)
-+{
-+	*from_port = grekey >> 16;
-+	*to_port = grekey & 0xffff;
-+}
-+
-+/**
-  * Create a new traffic selector using human readable params.
-  *
-  * If protocol is ICMP or ICMPv6 the ports are interpreted as follows:  If they
--- 
-2.9.1
-
diff --git a/main/strongswan/APKBUILD b/main/strongswan/APKBUILD
index a61b2d5755e15c97b6f53a2643841c7ae5f4279f..c2c2d17e349f9c633d182ff2a082dac6deaed5de 100644
--- a/main/strongswan/APKBUILD
+++ b/main/strongswan/APKBUILD
@@ -1,9 +1,9 @@
 # Contributor: Jesse Young <jlyo@jlyo.org>
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=strongswan
-pkgver=5.5.3
+pkgver=5.6.0
 _pkgver=${pkgver//_rc/rc}
-pkgrel=1
+pkgrel=0
 pkgdesc="IPsec-based VPN solution focused on security and ease of use, supporting IKEv1/IKEv2 and MOBIKE"
 url="http://www.strongswan.org/"
 arch="all"
@@ -21,7 +21,6 @@ source="http://download.strongswan.org/$pkgname-$_pkgver.tar.bz2
 	1001-charon-add-optional-source-and-remote-overrides-for-.patch
 	1002-vici-send-certificates-for-ike-sa-events.patch
 	1003-vici-add-support-for-individual-sa-state-changes.patch
-	2001-support-gre-key-in-ikev1.patch
 	libressl.patch
 
 	strongswan.initd
@@ -117,12 +116,11 @@ package() {
 	install -m755 -D "$srcdir/charon.initd" "$pkgdir/etc/init.d/charon"
 }
 
-sha512sums="0b0b25d2102c98cda54300dc8c3c3a49a55e64f7c695dda65a24f2194f19bce0b7aab9e4f7486c243b552f9d1a94867d6a8782ee504aad1c9973809706d599ac  strongswan-5.5.3.tar.bz2
+sha512sums="9362069a01c3642e62864d88fdb409a3c7514bf7c92cbe36e552c6a80915119cf5bb91c39592aab2d15b562684a0628a764e4fa7636d3b5fd2ebaf165c0ce649  strongswan-5.6.0.tar.bz2
 768a144be4c84395bc28b91e509c8319521d68a9eae0a5d5ff96830bf8cf3154bce046d2128d1aba092bb5d3d2dceb35296c13778294f88a14c2267865766db1  0205-ike-Adhere-to-IKE_SA-limit-when-checking-out-by-conf.patch
 df5673107ea15dae28276b1cbc2a0d995d9a210c9c73ee478cb0f4eba0e3ef76856708119a5ebdf59637c2830ca8e30adf294d09e3eeef5514890d8ebc7c47b4  1001-charon-add-optional-source-and-remote-overrides-for-.patch
 0dd637cc6ee89646c05d0345757fbfb26f4c0e2103d8eaafeb248b98bcc972ce5171081b7da7c9b974c92abb3f452180271767fb997171ac08b73880650e566b  1002-vici-send-certificates-for-ike-sa-events.patch
 d92ec44ac03c3eabe7583c01b15c66c9286681f42cf1d6ced3e1096c27c174014e14112610d2e12c8ccf6c2d8c1a5242e10e2520d41995f8aac145bd603facfc  1003-vici-add-support-for-individual-sa-state-changes.patch
-1544a409ad08f46a5dffbe3b4e8cf0e973c58140bf225f7c4e9b29be7fe6178f63d73730d1b2f7a755ed0d5dc09ee9fa0a08ac35761b01c5914d9bde1044ce7a  2001-support-gre-key-in-ikev1.patch
 8cc4e28a07c4f206d7838a20cd1fdab7cd82bc19a3916ed65f1c5acf6acecd7ea54f582f7b2f164aded96e49fdc2db5ace70f426a93fcc08f29d658c79069ad4  libressl.patch
 8b61e3ffbb39b837733e602ec329e626dc519bf7308d3d4192b497d18f38176789d23ef5afec51f8463ee1ddaf4d74546b965c03184132e217cbc27017e886c9  strongswan.initd
 1c44c801f66305c0331f76e580c0d60f1b7d5cd3cc371be55826b06c3899f542664628a912a7fb48626e34d864f72ca5dcd34b2f0d507c4f19c510d0047054c1  charon.initd"