mirror of
https://github.com/apache/nuttx.git
synced 2026-06-02 01:21:26 +08:00
include/netpacket/netlink.h: Add definitions that will be needed for future NETLINK_CRYPTO support.
This commit is contained in:
@@ -345,6 +345,33 @@
|
|||||||
#define RT_SCOPE_HOST 254 /* Route on local host */
|
#define RT_SCOPE_HOST 254 /* Route on local host */
|
||||||
#define RT_SCOPE_NOWHERE 255 /* Destination does not exist */
|
#define RT_SCOPE_NOWHERE 255 /* Destination does not exist */
|
||||||
|
|
||||||
|
/* NETLINK_CRYPTO protocol message types ************************************/
|
||||||
|
|
||||||
|
#define CRYPTO_MSG_NEWALG 1
|
||||||
|
#define CRYPTO_MSG_DELALG 2
|
||||||
|
#define CRYPTO_MSG_UPDATEALG 3
|
||||||
|
#define CRYPTO_MSG_GETALG 4
|
||||||
|
|
||||||
|
/* Netlink message attributes. */
|
||||||
|
|
||||||
|
#define CRYPTOCFGA_UNSPEC 0
|
||||||
|
#define CRYPTOCFGA_PRIORITY_VAL 1 /* Argument: uint32_t */
|
||||||
|
#define CRYPTOCFGA_REPORT_LARVAL 2 /* Argument: struct crypto_report_larval */
|
||||||
|
#define CRYPTOCFGA_REPORT_HASH 3 /* Argument: struct crypto_report_hash */
|
||||||
|
#define CRYPTOCFGA_REPORT_BLKCIPHER 4 /* Argument: struct crypto_report_blkcipher */
|
||||||
|
#define CRYPTOCFGA_REPORT_AEAD 5 /* Argument: struct crypto_report_aead */
|
||||||
|
#define CRYPTOCFGA_REPORT_COMPRESS 6 /* Argument: struct crypto_report_comp */
|
||||||
|
#define CRYPTOCFGA_REPORT_RNG 7 /* Argument: struct crypto_report_rng */
|
||||||
|
#define CRYPTOCFGA_REPORT_CIPHER 8 /* Argument: struct crypto_report_cipher */
|
||||||
|
|
||||||
|
/* Max size of names. No magic here. These can be extended as necessary. */
|
||||||
|
|
||||||
|
#define CRYPTO_MAX_ALG_NAME 32
|
||||||
|
#define CRYPTO_MAX_NAME 32
|
||||||
|
|
||||||
|
#define CRYPTO_REPORT_MAXSIZE \
|
||||||
|
(sizeof(struct crypto_user_alg) + sizeof(struct crypto_report_blkcipher))
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Type Definitions
|
* Public Type Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@@ -377,6 +404,8 @@ struct nlmsghdr
|
|||||||
/* Data follows */
|
/* Data follows */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* NETLINK_ROUTE Message Structures *****************************************/
|
||||||
|
|
||||||
/* RTM_NEWLINK, RTM_DELLINK, RTM_GETLINK
|
/* RTM_NEWLINK, RTM_DELLINK, RTM_GETLINK
|
||||||
*
|
*
|
||||||
* Create, remove or get information about a specific network interface.
|
* Create, remove or get information about a specific network interface.
|
||||||
@@ -457,6 +486,69 @@ struct rtmsg
|
|||||||
uint32_t rtm_flags;
|
uint32_t rtm_flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* NETLINK_CRYPTO Message Structures ***********\*****************************/
|
||||||
|
|
||||||
|
struct crypto_user_alg
|
||||||
|
{
|
||||||
|
char cru_name[CRYPTO_MAX_ALG_NAME];
|
||||||
|
char cru_driver_name[CRYPTO_MAX_ALG_NAME];
|
||||||
|
char cru_module_name[CRYPTO_MAX_ALG_NAME];
|
||||||
|
uint32_t cru_type;
|
||||||
|
uint32_t cru_mask;
|
||||||
|
uint32_t cru_refcnt;
|
||||||
|
uint32_t cru_flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct crypto_report_larval
|
||||||
|
{
|
||||||
|
char type[CRYPTO_MAX_NAME];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct crypto_report_hash
|
||||||
|
{
|
||||||
|
char type[CRYPTO_MAX_NAME];
|
||||||
|
size_t blocksize;
|
||||||
|
size_t digestsize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct crypto_report_cipher
|
||||||
|
{
|
||||||
|
char type[CRYPTO_MAX_ALG_NAME];
|
||||||
|
size_t blocksize;
|
||||||
|
size_t min_keysize;
|
||||||
|
size_t max_keysize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct crypto_report_blkcipher
|
||||||
|
{
|
||||||
|
char type[CRYPTO_MAX_NAME];
|
||||||
|
char geniv[CRYPTO_MAX_NAME];
|
||||||
|
size_t blocksize;
|
||||||
|
size_t min_keysize;
|
||||||
|
size_t max_keysize;
|
||||||
|
size_t ivsize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct crypto_report_aead
|
||||||
|
{
|
||||||
|
char type[CRYPTO_MAX_NAME];
|
||||||
|
char geniv[CRYPTO_MAX_NAME];
|
||||||
|
size_t blocksize;
|
||||||
|
size_t maxauthsize;
|
||||||
|
size_t ivsize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct crypto_report_comp
|
||||||
|
{
|
||||||
|
char type[CRYPTO_MAX_NAME];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct crypto_report_rng
|
||||||
|
{
|
||||||
|
char type[CRYPTO_MAX_NAME];
|
||||||
|
size_t seedsize;
|
||||||
|
};
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Function Prototypes
|
* Public Function Prototypes
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|||||||
@@ -55,6 +55,17 @@ config NETLINK_DISABLE_GETROUTE
|
|||||||
RTM_GETROUTE is used to retrieve routing tables.
|
RTM_GETROUTE is used to retrieve routing tables.
|
||||||
|
|
||||||
endif # NETLINK_ROUTE
|
endif # NETLINK_ROUTE
|
||||||
|
|
||||||
|
config NETLINK_CRYPTO
|
||||||
|
bool "Netlink Crypto protocol"
|
||||||
|
default n
|
||||||
|
depends on EXPERIMENTAL
|
||||||
|
---help---
|
||||||
|
Support the NETLINK_CRYPTO protocol option.
|
||||||
|
|
||||||
|
if NETLINK_CRYPTO
|
||||||
|
|
||||||
|
endif # NETLINK_CRYPTO
|
||||||
endmenu # Netlink Protocols
|
endmenu # Netlink Protocols
|
||||||
endif # NET_NETLINK
|
endif # NET_NETLINK
|
||||||
endmenu # Netlink Socket Support
|
endmenu # Netlink Socket Support
|
||||||
|
|||||||
Reference in New Issue
Block a user