| # 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 |