tipc: add new AEAD key structure for user API
authorTuong Lien <tuong.t.lien@dektech.com.au>
Fri, 8 Nov 2019 05:05:10 +0000 (12:05 +0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Nov 2019 22:01:59 +0000 (14:01 -0800)
The new structure 'tipc_aead_key' is added to the 'tipc.h' for user to
be able to transfer a key to TIPC in kernel. Netlink will be used for
this purpose in the later commits.

Acked-by: Ying Xue <ying.xue@windreiver.com>
Acked-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: Tuong Lien <tuong.t.lien@dektech.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/tipc.h

index 76421b8..add01db 100644 (file)
@@ -233,6 +233,27 @@ struct tipc_sioc_nodeid_req {
        char node_id[TIPC_NODEID_LEN];
 };
 
+/*
+ * TIPC Crypto, AEAD
+ */
+#define TIPC_AEAD_ALG_NAME             (32)
+
+struct tipc_aead_key {
+       char alg_name[TIPC_AEAD_ALG_NAME];
+       unsigned int keylen;    /* in bytes */
+       char key[];
+};
+
+#define TIPC_AEAD_KEYLEN_MIN           (16 + 4)
+#define TIPC_AEAD_KEYLEN_MAX           (32 + 4)
+#define TIPC_AEAD_KEY_SIZE_MAX         (sizeof(struct tipc_aead_key) + \
+                                                       TIPC_AEAD_KEYLEN_MAX)
+
+static inline int tipc_aead_key_size(struct tipc_aead_key *key)
+{
+       return sizeof(*key) + key->keylen;
+}
+
 /* The macros and functions below are deprecated:
  */