| /* |
| * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. |
| * |
| * Permission to use, copy, modify, and/or distribute this software for |
| * any purpose with or without fee is hereby granted, provided that the |
| * above copyright notice and this permission notice appear in all |
| * copies. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL |
| * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE |
| * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL |
| * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
| * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
| * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
| * PERFORMANCE OF THIS SOFTWARE. |
| */ |
| |
| /** |
| * DOC: Public APIs for crypto service |
| */ |
| #ifndef _WLAN_CRYPTO_GLOBAL_API_H_ |
| #define _WLAN_CRYPTO_GLOBAL_API_H_ |
| |
| #include "wlan_crypto_global_def.h" |
| |
| /** |
| * wlan_crypto_set_vdev_param - called by ucfg to set crypto param |
| * @vdev: vdev |
| * @param: param to be set. |
| * @value: value |
| * |
| * This function gets called from ucfg to set param |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_set_vdev_param(struct wlan_objmgr_vdev *vdev, |
| wlan_crypto_param_type param, |
| uint32_t value); |
| |
| /** |
| * wlan_crypto_set_peer_param - called by ucfg to set crypto param |
| * |
| * @peer: peer |
| * @param: param to be set. |
| * @value: value |
| * |
| * This function gets called from ucfg to set param |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_set_peer_param(struct wlan_objmgr_peer *peer, |
| wlan_crypto_param_type param, |
| uint32_t value); |
| |
| /** |
| * wlan_crypto_get_param - called by ucfg to get crypto param |
| * @vdev: vdev |
| * @param: param to be get. |
| * |
| * This function gets called from ucfg to get param |
| * |
| * Return: value or -1 for failure |
| */ |
| int32_t wlan_crypto_get_param(struct wlan_objmgr_vdev *vdev, |
| wlan_crypto_param_type param); |
| /** |
| * wlan_crypto_get_peer_param - called by ucfg to get crypto peer param |
| * @peer: peer |
| * @param: param to be get. |
| * |
| * This function gets called from ucfg to get peer param |
| * |
| * Return: value or -1 for failure |
| */ |
| int32_t wlan_crypto_get_peer_param(struct wlan_objmgr_peer *peer, |
| wlan_crypto_param_type param); |
| |
| /** |
| * wlan_crypto_is_htallowed - called by ucfg to check if HT rates is allowed |
| * @vdev: Vdev |
| * @peer: Peer |
| * |
| * This function is called to check if HT rates is allowed |
| * |
| * Return: 0 for not allowed and +ve for allowed |
| */ |
| uint8_t wlan_crypto_is_htallowed(struct wlan_objmgr_vdev *vdev, |
| struct wlan_objmgr_peer *peer); |
| /** |
| * wlan_crypto_setkey - called by ucfg to setkey |
| * @vdev: vdev |
| * @req_key: req_key with cipher type, key macaddress |
| * |
| * This function gets called from ucfg to sey key |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_setkey(struct wlan_objmgr_vdev *vdev, |
| struct wlan_crypto_req_key *req_key); |
| |
| /** |
| * wlan_crypto_getkey - called by ucfg to get key |
| * @vdev: vdev |
| * @req_key: key value will be copied in this req_key |
| * @mac_address: mac address of the peer for unicast key |
| * or broadcast address if group key is requested. |
| * |
| * This function gets called from ucfg to get key |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_getkey(struct wlan_objmgr_vdev *vdev, |
| struct wlan_crypto_req_key *req_key, |
| uint8_t *mac_addr); |
| |
| /** |
| * wlan_crypto_delkey - called by ucfg to delete key |
| * @vdev: vdev |
| * @mac_address: mac address of the peer for unicast key |
| * or broadcast address if group key is deleted. |
| * @key_idx: key index to be deleted |
| * |
| * This function gets called from ucfg to delete key |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_delkey(struct wlan_objmgr_vdev *vdev, |
| uint8_t *macaddr, |
| uint8_t key_idx); |
| |
| /** |
| * wlan_crypto_default_key - called by ucfg to set default tx key |
| * @vdev: vdev |
| * @mac_address: mac address of the peer for unicast key |
| * or broadcast address if group key need to made default. |
| * @key_idx: key index to be made as default key |
| * @unicast: is key was unicast or group key. |
| * |
| * This function gets called from ucfg to set default key |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_default_key(struct wlan_objmgr_vdev *vdev, |
| uint8_t *macaddr, |
| uint8_t key_idx, |
| bool unicast); |
| |
| /** |
| * wlan_crypto_encap - called by mgmt for encap the frame based on cipher |
| * @vdev: vdev |
| * @wbuf: wbuf |
| * @macaddr: macaddr |
| * @encapdone: is encapdone already or not. |
| * |
| * This function gets called from mgmt txrx to encap frame. |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_encap(struct wlan_objmgr_vdev *vdev, |
| qdf_nbuf_t wbuf, |
| uint8_t *macaddr, |
| uint8_t encapdone); |
| |
| /** |
| * wlan_crypto_decap - called by mgmt for decap the frame based on cipher |
| * @vdev: vdev |
| * @wbuf: wbuf |
| * @macaddr: macaddr |
| * @tid: tid of the packet. |
| * |
| * This function gets called from mgmt txrx to decap frame. |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_decap(struct wlan_objmgr_vdev *vdev, |
| qdf_nbuf_t wbuf, |
| uint8_t *macaddr, |
| uint8_t tid); |
| |
| /** |
| * wlan_crypto_enmic - called by mgmt for adding mic in frame based on cipher |
| * @vdev: vdev |
| * @wbuf: wbuf |
| * @macaddr: macaddr |
| * @encapdone: is encapdone already or not. |
| * |
| * This function gets called from mgmt txrx to adding mic to the frame. |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_enmic(struct wlan_objmgr_vdev *vdev, |
| qdf_nbuf_t wbuf, |
| uint8_t *macaddr, |
| uint8_t encapdone); |
| |
| /** |
| * wlan_crypto_demic - called by mgmt for remove and check mic for |
| * the frame based on cipher |
| * @vdev: vdev |
| * @wbuf: wbuf |
| * @macaddr: macaddr |
| * @tid: tid of the frame |
| * @keyid: keyid in the received frame |
| * |
| * This function gets called from mgmt txrx to decap frame. |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_demic(struct wlan_objmgr_vdev *vdev, |
| qdf_nbuf_t wbuf, |
| uint8_t *macaddr, |
| uint8_t tid, |
| uint8_t keyid); |
| |
| /** |
| * wlan_crypto_vdev_is_pmf_enabled - called to check is pmf enabled in vdev |
| * @vdev: vdev |
| * |
| * This function gets called to check is pmf enabled or not in vdev. |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_vdev_is_pmf_enabled(struct wlan_objmgr_vdev *vdev); |
| |
| /** |
| * wlan_crypto_is_pmf_enabled - called by mgmt txrx to check is pmf enabled |
| * @vdev: vdev |
| * @peer: peer |
| * |
| * This function gets called by mgmt txrx to check is pmf enabled or not. |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_is_pmf_enabled(struct wlan_objmgr_vdev *vdev, |
| struct wlan_objmgr_peer *peer); |
| |
| /** |
| * wlan_crypto_add_mmie - called by mgmt txrx to add mmie in frame |
| * @vdev: vdev |
| * @frm: frame starting pointer |
| * @len: length of the frame |
| * |
| * This function gets called by mgmt txrx to add mmie in frame |
| * |
| * Return: end of frame or NULL in case failure |
| */ |
| uint8_t *wlan_crypto_add_mmie(struct wlan_objmgr_vdev *vdev, |
| uint8_t *frm, |
| uint32_t len); |
| |
| /** |
| * wlan_crypto_is_mmie_valid - called by mgmt txrx to check mmie of the frame |
| * @vdev: vdev |
| * @frm: frame starting pointer |
| * @efrm: end of frame pointer |
| * |
| * This function gets called by mgmt txrx to check mmie of the frame |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_is_mmie_valid(struct wlan_objmgr_vdev *vdev, |
| uint8_t *frm, |
| uint8_t *efrm); |
| |
| /** |
| * wlan_crypto_wpaie_check - called by mlme to check the wpaie |
| * @crypto params: crypto params |
| * @iebuf: ie buffer |
| * |
| * This function gets called by mlme to check the contents of wpa is |
| * matching with given crypto params |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_wpaie_check(struct wlan_crypto_params *, uint8_t *frm); |
| |
| /** |
| * wlan_crypto_rsnie_check - called by mlme to check the rsnie |
| * @crypto params: crypto params |
| * @iebuf: ie buffer |
| * |
| * This function gets called by mlme to check the contents of rsn is |
| * matching with given crypto params |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_rsnie_check(struct wlan_crypto_params *, uint8_t *frm); |
| /** |
| * wlan_crypto_build_wpaie - called by mlme to build wpaie |
| * @vdev: vdev |
| * @iebuf: ie buffer |
| * |
| * This function gets called by mlme to build wpaie from given vdev |
| * |
| * Return: end of buffer |
| */ |
| uint8_t *wlan_crypto_build_wpaie(struct wlan_objmgr_vdev *vdev, |
| uint8_t *iebuf); |
| /** |
| * wlan_crypto_build_rsnie - called by mlme to build rsnie |
| * @vdev: vdev |
| * @iebuf: ie buffer |
| * |
| * This function gets called by mlme to build rsnie from given vdev |
| * |
| * Return: end of buffer |
| */ |
| uint8_t *wlan_crypto_build_rsnie(struct wlan_objmgr_vdev *vdev, |
| uint8_t *iebuf); |
| |
| /** |
| * wlan_crypto_wapiie_check - called by mlme to check the wapiie |
| * @crypto params: crypto params |
| * @iebuf: ie buffer |
| * |
| * This function gets called by mlme to check the contents of wapi is |
| * matching with given crypto params |
| * |
| * Return: QDF_STATUS_SUCCESS - in case of success |
| */ |
| QDF_STATUS wlan_crypto_wapiie_check(struct wlan_crypto_params *crypto_params, |
| uint8_t *frm); |
| |
| /** |
| * wlan_crypto_build_wapiie - called by mlme to build wapi ie |
| * @vdev: vdev |
| * @iebuf: ie buffer |
| * |
| * This function gets called by mlme to build wapi ie from given vdev |
| * |
| * Return: end of buffer |
| */ |
| uint8_t *wlan_crypto_build_wapiie(struct wlan_objmgr_vdev *vdev, |
| uint8_t *iebuf); |
| /** |
| * wlan_crypto_rsn_info - check is given params matching with vdev params. |
| * @vdev: vdev |
| * @crypto params: crypto params |
| * |
| * This function gets called by mlme to check is given params matching with |
| * vdev params. |
| * |
| * Return: true success or false for failure. |
| */ |
| bool wlan_crypto_rsn_info(struct wlan_objmgr_vdev *vdev, |
| struct wlan_crypto_params *crypto_params); |
| /** |
| * wlan_crypto_pn_check - called by data patch for PN check |
| * @vdev: vdev |
| * @wbuf: wbuf |
| * |
| * This function gets called by data patch for PN check |
| * |
| * Return: QDF_STATUS |
| */ |
| QDF_STATUS wlan_crypto_pn_check(struct wlan_objmgr_vdev *vdev, |
| qdf_nbuf_t wbuf); |
| /** |
| * wlan_crypto_vdev_get_crypto_params - called by mlme to get crypto params |
| * @vdev:vdev |
| * |
| * This function gets called by mlme to get crypto params |
| * |
| * Return: wlan_crypto_params or NULL in case of failure |
| */ |
| struct wlan_crypto_params *wlan_crypto_vdev_get_crypto_params( |
| struct wlan_objmgr_vdev *vdev); |
| /** |
| * wlan_crypto_peer_get_crypto_params - called by mlme to get crypto params |
| * @peer:peer |
| * |
| * This function gets called by mlme to get crypto params |
| * |
| * Return: wlan_crypto_params or NULL in case of failure |
| */ |
| struct wlan_crypto_params *wlan_crypto_peer_get_crypto_params( |
| struct wlan_objmgr_peer *peer); |
| |
| /** |
| * wlan_crypto_set_peer_wep_keys - set wep keys into peer entries |
| * @vdev:vdev |
| * @peer:peer |
| * |
| * This function gets called by mlme, when auth frame is received. |
| * this helps in setting wep keys into peer data structure. |
| * |
| * Return: QDF_STATUS |
| */ |
| QDF_STATUS wlan_crypto_set_peer_wep_keys(struct wlan_objmgr_vdev *vdev, |
| struct wlan_objmgr_peer *peer); |
| |
| /** |
| * wlan_crypto_register_crypto_rx_ops - set crypto_rx_ops |
| * @crypto_rx_ops: crypto_rx_ops |
| * |
| * This function gets called by object manger to register crypto rx ops. |
| * |
| * Return: QDF_STATUS |
| */ |
| QDF_STATUS wlan_crypto_register_crypto_rx_ops( |
| struct wlan_lmac_if_crypto_rx_ops *crypto_rx_ops); |
| |
| /** |
| * wlan_crypto_get_crypto_rx_ops - get crypto_rx_ops from psoc |
| * @psoc: psoc |
| * |
| * This function gets called by umac to get the crypto_rx_ops |
| * |
| * Return: crypto_rx_ops |
| */ |
| struct wlan_lmac_if_crypto_rx_ops *wlan_crypto_get_crypto_rx_ops( |
| struct wlan_objmgr_psoc *psoc); |
| /** |
| * wlan_crypto_vdev_has_auth_mode - check authmode for vdev |
| * @vdev: vdev |
| * @authvalue: authvalue to be checked |
| * |
| * This function check is authvalue passed is set in vdev or not |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_vdev_has_auth_mode(struct wlan_objmgr_vdev *vdev, |
| wlan_crypto_auth_mode authmode); |
| |
| /** |
| * wlan_crypto_peer_has_auth_mode - check authmode for peer |
| * @peer: peer |
| * @authvalue: authvalue to be checked |
| * |
| * This function check is authvalue passed is set in peer or not |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_peer_has_auth_mode(struct wlan_objmgr_peer *peer, |
| wlan_crypto_auth_mode authvalue); |
| |
| /** |
| * wlan_crypto_vdev_has_ucastcipher - check ucastcipher for vdev |
| * @vdev: vdev |
| * @ucastcipher: ucastcipher to be checked |
| * |
| * This function check is ucastcipher passed is set in vdev or not |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_vdev_has_ucastcipher(struct wlan_objmgr_vdev *vdev, |
| wlan_crypto_cipher_type ucastcipher); |
| |
| /** |
| * wlan_crypto_peer_has_ucastcipher - check ucastcipher for peer |
| * @peer: peer |
| * @ucastcipher: ucastcipher to be checked |
| * |
| * This function check is ucastcipher passed is set in peer or not |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_peer_has_ucastcipher(struct wlan_objmgr_peer *peer, |
| wlan_crypto_cipher_type ucastcipher); |
| |
| |
| /** |
| * wlan_crypto_vdev_has_mcastcipher - check mcastcipher for vdev |
| * @vdev: vdev |
| * @mcastcipher: mcastcipher to be checked |
| * |
| * This function check is mcastcipher passed is set in vdev or not |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_vdev_has_mcastcipher(struct wlan_objmgr_vdev *vdev, |
| wlan_crypto_cipher_type mcastcipher); |
| |
| /** |
| * wlan_crypto_peer_has_mcastcipher - check mcastcipher for peer |
| * @peer: peer |
| * @mcastcipher: mcastcipher to be checked |
| * |
| * This function check is mcastcipher passed is set in peer or not |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_peer_has_mcastcipher(struct wlan_objmgr_peer *peer, |
| wlan_crypto_cipher_type mcastcipher); |
| |
| /** |
| * wlan_crypto_get_keytype - get keytype |
| * @key: key |
| * |
| * This function gets keytype from key |
| * |
| * Return: keytype |
| */ |
| wlan_crypto_cipher_type wlan_crypto_get_key_type( |
| struct wlan_crypto_key *key); |
| |
| /** |
| * wlan_crypto_vdev_getkey - get key from vdev |
| * @vdev: vdev |
| * @keyix: keyix |
| * |
| * This function gets key from vdev |
| * |
| * Return: key or NULL |
| */ |
| struct wlan_crypto_key *wlan_crypto_vdev_getkey(struct wlan_objmgr_vdev *vdev, |
| uint16_t keyix); |
| /** |
| * wlan_crypto_peer_getkey - get key from peer |
| * @peer: peer |
| * @keyix: keyix |
| * |
| * This function gets key from peer |
| * |
| * Return: key or NULL |
| */ |
| struct wlan_crypto_key *wlan_crypto_peer_getkey(struct wlan_objmgr_peer *peer, |
| uint16_t keyix); |
| /** |
| * wlan_crypto_get_peer_fils_aead - Get peer fils aead set flag |
| * @peer: Peer object |
| * |
| * This function returns the peer fils aead set flag value. |
| * |
| * Return: 1 for enabled, 0 for disabled |
| */ |
| uint8_t wlan_crypto_get_peer_fils_aead(struct wlan_objmgr_peer *peer); |
| |
| /** |
| * wlan_crypto_set_peer_fils_aead - Set peer fils aead set flag |
| * @peer: Peer object |
| * @value: Value to set the flag |
| * |
| * This function set the peer fils aead set flag once FILS AUTH received. |
| * |
| * Return: None |
| */ |
| void wlan_crypto_set_peer_fils_aead( |
| struct wlan_objmgr_peer *peer, uint8_t value); |
| |
| /** |
| * wlan_crypto_get_key_header - get header length |
| * @key: key |
| * |
| * This function gets header length based on keytype |
| * |
| * Return: header length |
| */ |
| uint8_t wlan_crypto_get_key_header(struct wlan_crypto_key *key); |
| |
| /** |
| * wlan_crypto_get_key_trailer - get cipher trailer length |
| * @key: key |
| * |
| * This function gets cipher trailer length based on keytype |
| * |
| * Return: cipher trailer length |
| */ |
| uint8_t wlan_crypto_get_key_trailer(struct wlan_crypto_key *key); |
| |
| /** |
| * wlan_crypto_get_key_miclen - get cipher miclen length |
| * @key: key |
| * |
| * This function gets cipher miclen length based on keytype |
| * |
| * Return: cipher miclen length |
| */ |
| uint8_t wlan_crypto_get_key_miclen(struct wlan_crypto_key *key); |
| |
| /** |
| * wlan_crypto_get_keyid - get keyid from frame |
| * @data: frame |
| * @hdrlen: 802.11 header length |
| * |
| * This function parse frame and returns keyid |
| * |
| * Return: keyid |
| */ |
| uint16_t wlan_crypto_get_keyid(uint8_t *data, int hdrlen); |
| |
| /** |
| * wlan_crypto_restore_keys - restore crypto keys in hw keycache |
| * @vdev: vdev |
| * |
| * This function restores keys in hw keycache |
| * |
| * Return: void |
| */ |
| void wlan_crypto_restore_keys(struct wlan_objmgr_vdev *vdev); |
| |
| /** |
| * wlan_crypto_check_open_none - called by ucfg to check for open security |
| * @psoc: psoc pointer |
| * @vdev_id: vdev id |
| * |
| * This function gets called from ucfg to check open security. |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_check_open_none(struct wlan_objmgr_psoc *psoc, |
| uint8_t vedv_id); |
| |
| /** |
| * wlan_crypto_check_wep - called by ucfg to check for WEP security |
| * @psoc: psoc pointer |
| * @vdev_id: vdev id |
| * |
| * This function gets called from ucfg to check WEP security. |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_check_wep(struct wlan_objmgr_psoc *psoc, uint8_t vedv_id); |
| |
| /** |
| * wlan_crypto_check_rsn_match - called by ucfg to check for RSN match |
| * @psoc: psoc pointer |
| * @vdev_id: vdev id |
| * @ie_ptr: pointer to IEs |
| * @ie_len: IE length |
| * |
| * This function gets called from ucfg to check RSN match. |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_check_rsn_match(struct wlan_objmgr_psoc *psoc, |
| uint8_t vedv_id, uint8_t *ie_ptr, |
| uint16_t ie_len); |
| |
| /** |
| * wlan_crypto_check_rsn_match - called by ucfg to check for WPA match |
| * @psoc: psoc pointer |
| * @vdev_id: vdev id |
| * @ie_ptr: pointer to IEs |
| * @ie_len: IE length |
| * |
| * This function gets called from ucfg to check WPA match. |
| * |
| * Return: true or false |
| */ |
| bool wlan_crypto_check_wpa_match(struct wlan_objmgr_psoc *psoc, |
| uint8_t vedv_id, uint8_t *ie_ptr, |
| uint16_t ie_len); |
| |
| /** |
| * wlan_set_vdev_crypto_prarams_from_ie - Sets vdev crypto params from IE info |
| * @vdev: vdev pointer |
| * @ie_ptr: pointer to IE |
| * @ie_len: IE length |
| * |
| * This function gets called from ucfg to set crypto params from IE data. |
| * |
| * Return: QDF_STATUS_SUCCESS or error code |
| */ |
| QDF_STATUS wlan_set_vdev_crypto_prarams_from_ie(struct wlan_objmgr_vdev *vdev, |
| uint8_t *ie_ptr, |
| uint16_t ie_len); |
| #ifdef WLAN_CRYPTO_GCM_OS_DERIVATIVE |
| static inline int wlan_crypto_aes_gmac(const uint8_t *key, size_t key_len, |
| const uint8_t *iv, size_t iv_len, |
| const uint8_t *aad, size_t aad_len, |
| uint8_t *tag) |
| { |
| return 0; |
| } |
| #endif |
| #ifdef WLAN_CRYPTO_OMAC1_OS_DERIVATIVE |
| static inline int omac1_aes_128(const uint8_t *key, const uint8_t *data, |
| size_t data_len, uint8_t *mac) |
| { |
| return 0; |
| } |
| |
| static inline int omac1_aes_256(const uint8_t *key, const uint8_t *data, |
| size_t data_len, uint8_t *mac) |
| { |
| return 0; |
| } |
| #endif |
| |
| #endif /* end of _WLAN_CRYPTO_GLOBAL_API_H_ */ |