]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
ip/xfrm: Command syntax should not expect a key for compression
authorDavid Ward <david.ward@ll.mit.edu>
Mon, 25 Mar 2013 04:23:17 +0000 (04:23 +0000)
committerStephen Hemminger <stephen@networkplumber.org>
Thu, 28 Mar 2013 21:40:45 +0000 (14:40 -0700)
Compression algorithms do not use a key.

Signed-off-by: David Ward <david.ward@ll.mit.edu>
ip/xfrm_state.c
man/man8/ip-xfrm.8

index 08a4980eb2d6bf178176d384eaa978665afa6a77..9b374ee1f22e0ed4ec202d9a2e7889a879309784 100644 (file)
@@ -78,13 +78,14 @@ static void usage(void)
        fprintf(stderr, "ALGO-LIST := [ ALGO-LIST ] ALGO\n");
        fprintf(stderr, "ALGO := { ");
        fprintf(stderr, "%s | ", strxf_algotype(XFRMA_ALG_CRYPT));
-       fprintf(stderr, "%s | ", strxf_algotype(XFRMA_ALG_AUTH));
-       fprintf(stderr, "%s", strxf_algotype(XFRMA_ALG_COMP));
+       fprintf(stderr, "%s", strxf_algotype(XFRMA_ALG_AUTH));
        fprintf(stderr, " } ALGO-NAME ALGO-KEY |\n");
+       fprintf(stderr, "        %s", strxf_algotype(XFRMA_ALG_AUTH_TRUNC));
+       fprintf(stderr, " ALGO-NAME ALGO-KEY ALGO-TRUNC-LEN |\n");
        fprintf(stderr, "        %s", strxf_algotype(XFRMA_ALG_AEAD));
        fprintf(stderr, " ALGO-NAME ALGO-KEY ALGO-ICV-LEN |\n");
-       fprintf(stderr, "        %s", strxf_algotype(XFRMA_ALG_AUTH_TRUNC));
-       fprintf(stderr, " ALGO-NAME ALGO-KEY ALGO-TRUNC-LEN\n");
+       fprintf(stderr, "        %s", strxf_algotype(XFRMA_ALG_COMP));
+       fprintf(stderr, " ALGO-NAME\n");
        fprintf(stderr, "MODE := transport | tunnel | ro | in_trigger | beet\n");
        fprintf(stderr, "FLAG-LIST := [ FLAG-LIST ] FLAG\n");
        fprintf(stderr, "FLAG := noecn | decap-dscp | nopmtudisc | wildrecv | icmp | af-unspec | align4\n");
@@ -374,7 +375,7 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv)
                                int len;
                                __u32 icvlen, trunclen;
                                char *name;
-                               char *key;
+                               char *key = "";
                                char *buf;
 
                                switch (type) {
@@ -409,10 +410,17 @@ static int xfrm_state_modify(int cmd, unsigned flags, int argc, char **argv)
                                NEXT_ARG();
                                name = *argv;
 
-                               if (!NEXT_ARG_OK())
-                                       missarg("ALGO-KEY");
-                               NEXT_ARG();
-                               key = *argv;
+                               switch (type) {
+                               case XFRMA_ALG_AEAD:
+                               case XFRMA_ALG_CRYPT:
+                               case XFRMA_ALG_AUTH:
+                               case XFRMA_ALG_AUTH_TRUNC:
+                                       if (!NEXT_ARG_OK())
+                                               missarg("ALGO-KEY");
+                                       NEXT_ARG();
+                                       key = *argv;
+                                       break;
+                               }
 
                                buf = alg.u.alg.alg_key;
                                len = sizeof(alg.u.alg);
index f359773f30cb9234bc686701a4c3bd1ed582b24a..6017bc2bbba623761847b135cc2cb730ef0b93d2 100644 (file)
@@ -117,14 +117,17 @@ ip-xfrm \- transform configuration
 
 .ti -8
 .IR ALGO " :="
-.RB "{ " enc " | " auth " | " comp " } " 
+.RB "{ " enc " | " auth " } " 
 .IR ALGO-NAME " " ALGO-KEY " |"
 .br
-.B  aead
-.IR ALGO-NAME " " ALGO-KEY " " ALGO-ICV-LEN  " |"
-.br
 .B auth-trunc
-.IR ALGO-NAME " " ALGO-KEY " " ALGO-TRUNC-LEN
+.IR ALGO-NAME " " ALGO-KEY " " ALGO-TRUNC-LEN " |"
+.br
+.B aead
+.IR ALGO-NAME " " ALGO-KEY " " ALGO-ICV-LEN " |"
+.br
+.B comp
+.IR ALGO-NAME
 
 .ti -8
 .IR MODE " := "