]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
proposal: Use an additional "default" constructor specific to AEAD algorithms
authorMartin Willi <martin@revosec.ch>
Thu, 24 Apr 2014 12:15:49 +0000 (14:15 +0200)
committerMartin Willi <martin@revosec.ch>
Fri, 16 May 2014 14:01:21 +0000 (16:01 +0200)
This allows a caller to create a separated proposal for supported AEAD
algorithms, as required by RFC 5996.

src/libcharon/config/proposal.c
src/libcharon/config/proposal.h

index fcfaebeb4cb42cd493db87364e21a3d9879ead45..48313b753a94c5c87c4d978961d3905ae6fc9ce3 100644 (file)
@@ -809,6 +809,29 @@ proposal_t *proposal_create_default(protocol_id_t protocol)
        return &this->public;
 }
 
+/*
+ * Describtion in header-file
+ */
+proposal_t *proposal_create_default_aead(protocol_id_t protocol)
+{
+       private_proposal_t *this;
+
+       switch (protocol)
+       {
+               case PROTO_IKE:
+                       this = (private_proposal_t*)proposal_create(protocol, 0);
+                       proposal_add_supported_ike(this, TRUE);
+                       return &this->public;
+               case PROTO_ESP:
+                       /* we currently don't include any AEAD proposal for ESP, as we
+                        * don't know if our kernel backend actually supports it. */
+                       return NULL;
+               case PROTO_AH:
+               default:
+                       return NULL;
+       }
+}
+
 /*
  * Describtion in header-file
  */
index 7733143a8825e59bb8f1d22a18d68ce79c2d30a4..78b8688682febad93e171b88ab2a5be110ab7ec3 100644 (file)
@@ -195,6 +195,14 @@ proposal_t *proposal_create(protocol_id_t protocol, u_int number);
  */
 proposal_t *proposal_create_default(protocol_id_t protocol);
 
+/**
+ * Create a default proposal for supported AEAD algorithms
+ *
+ * @param protocol                     protocol, such as PROTO_ESP
+ * @return                                     proposal_t object, NULL if none supported
+ */
+proposal_t *proposal_create_default_aead(protocol_id_t protocol);
+
 /**
  * Create a proposal from a string identifying the algorithms.
  *