aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/socket_netlink_crypto.txt
blob: 0ac4f1c2cfdd71d11ae517056219260c8e92c69d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Copyright 2017 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

# AF_NETLINK/NETLINK_CRYPTO support.

include <linux/net.h>
include <linux/crypto.h>
include <uapi/linux/netlink.h>
include <uapi/linux/cryptouser.h>

resource sock_nl_crypto[sock_netlink]

socket$nl_crypto(domain const[AF_NETLINK], type const[SOCK_RAW], proto const[NETLINK_CRYPTO]) sock_nl_crypto

sendmsg$nl_crypto(fd sock_nl_crypto, msg ptr[in, msghdr_nl_crypto], f flags[send_flags])

type msghdr_nl_crypto msghdr_netlink[netlink_msg_crypto]

netlink_msg_crypto [
	alg	netlink_msg[CRYPTO_MSG_NEWALG, crypto_user_alg, netlink_crypto_attrs]
	del	netlink_msg[CRYPTO_MSG_DELALG, crypto_user_alg, netlink_crypto_attrs]
	upd	netlink_msg[CRYPTO_MSG_UPDATEALG, crypto_user_alg, netlink_crypto_attrs]
	get	netlink_msg[CRYPTO_MSG_GETALG, crypto_user_alg, netlink_crypto_attrs]
	delrng	netlink_msg[CRYPTO_MSG_DELRNG, void, void]
	getstat	netlink_msg[CRYPTO_MSG_GETSTAT, crypto_user_alg, void]
] [varlen]

type netlink_crypto_attrs nlattr[CRYPTOCFGA_PRIORITY_VAL, int32]

crypto_user_alg {
	cru_name	alg_name
# TODO: generate driver names.
	cru_driver_name	array[const[0, int8], CRYPTO_MAX_NAME]
	cru_module_name	array[const[0, int8], CRYPTO_MAX_NAME]
	cru_type	flags[crypto_user_alg_flags, int32]
	cru_mask	flags[crypto_user_alg_flags, int32]
	cru_refcnt	const[0, int32]
	cru_flags	const[0, int32]
}

crypto_user_alg_flags = CRYPTO_ALG_TESTED, CRYPTO_ALG_INTERNAL