summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDustin Brown <dustinb@codeaurora.org>2016-10-19 16:25:45 -0700
committerqcabuildsw <qcabuildsw@localhost>2016-10-28 18:09:06 -0700
commitcc1753d2884798ddc84583740a3e56f6178984da (patch)
treec6b8c726b29d5e68c5615ce42cbb97c9a083d7de
parent53c3aa6a2471aa32678456ab01481b94831fd25b (diff)
qcacld-3.0: 4.8 Kernel Migration - Remove ablkcipher
As of version 4.8 of the Linux kernel, the ablkcipher Api is removed. Remove all obsolete crypto functions that reference this Api. Change-Id: Ia82743d048834a67dfce23b91f660beb59b1e94d CRs-Fixed: 1079951 (cherry picked from commit bf349575d765f53f207c7cb2ad6c66a198cf07de)
-rw-r--r--core/cds/inc/cds_crypto.h55
-rw-r--r--core/cds/inc/cds_utils.h66
-rw-r--r--core/cds/src/cds_utils.c529
3 files changed, 1 insertions, 649 deletions
diff --git a/core/cds/inc/cds_crypto.h b/core/cds/inc/cds_crypto.h
index 0f6ff79468fd..c3da63bca211 100644
--- a/core/cds/inc/cds_crypto.h
+++ b/core/cds/inc/cds_crypto.h
@@ -34,28 +34,7 @@
*
*/
-#include <qdf_types.h>
-#include <qdf_status.h>
-#include <qdf_mem.h>
-#include <qdf_list.h>
-#include <qdf_trace.h>
-#include <qdf_event.h>
-#include <qdf_lock.h>
-#include <cds_reg_service.h>
-#include <cds_mq.h>
-#include <cds_packet.h>
-#include <cds_sched.h>
-#include <qdf_threads.h>
-#include <qdf_mc_timer.h>
-#include <cds_pack_align.h>
-#include <crypto/aes.h>
-#include <crypto/hash.h>
-
-static inline struct crypto_ahash *cds_crypto_alloc_ahash(const char *alg_name,
- u32 type, u32 mask)
-{
- return crypto_alloc_ahash(alg_name, type, mask);
-}
+#include <linux/crypto.h>
static inline struct crypto_cipher *
cds_crypto_alloc_cipher(const char *alg_name, u32 type, u32 mask)
@@ -68,36 +47,4 @@ static inline void cds_crypto_free_cipher(struct crypto_cipher *tfm)
crypto_free_cipher(tfm);
}
-static inline void cds_crypto_free_ahash(struct crypto_ahash *tfm)
-{
- crypto_free_ahash(tfm);
-}
-
-static inline int cds_crypto_ahash_setkey(struct crypto_ahash *tfm,
- const u8 *key, unsigned int keylen)
-{
- return crypto_ahash_setkey(tfm, key, keylen);
-}
-
-static inline int cds_crypto_ahash_digest(struct ahash_request *req)
-{
- return crypto_ahash_digest(req);
-}
-
-static inline struct crypto_ablkcipher *
-cds_crypto_alloc_ablkcipher(const char *alg_name, u32 type, u32 mask)
-{
- return crypto_alloc_ablkcipher(alg_name, type, mask);
-}
-
-static inline void cds_ablkcipher_request_free(struct ablkcipher_request *req)
-{
- ablkcipher_request_free(req);
-}
-
-static inline void cds_crypto_free_ablkcipher(struct crypto_ablkcipher *tfm)
-{
- crypto_free_ablkcipher(tfm);
-}
-
#endif /* if !defined __CDS_CRYPTO_H */
diff --git a/core/cds/inc/cds_utils.h b/core/cds/inc/cds_utils.h
index 0a0cef30f7eb..839ef3dcc6af 100644
--- a/core/cds/inc/cds_utils.h
+++ b/core/cds/inc/cds_utils.h
@@ -118,72 +118,6 @@ QDF_STATUS cds_crypto_deinit(uint32_t hCryptProv);
QDF_STATUS cds_rand_get_bytes(uint32_t handle, uint8_t *pbBuf,
uint32_t numBytes);
-/**
- * cds_sha1_hmac_str
- *
- * FUNCTION:
- * Generate the HMAC-SHA1 of a string given a key.
- *
- * LOGIC:
- * Standard HMAC processing from RFC 2104. The code is provided in the
- * appendix of the RFC.
- *
- * ASSUMPTIONS:
- * The RFC is correct.
- *
- * @param text text to be hashed
- * @param textLen length of text
- * @param key key to use for HMAC
- * @param keyLen length of key
- * @param digest holds resultant SHA1 HMAC (20B)
- *
- * @return QDF_STATUS_SUCCSS if the operation succeeds
- *
- */
-QDF_STATUS cds_sha1_hmac_str(uint32_t cryptHandle, /* Handle */
- uint8_t *text, /* pointer to data stream */
- uint32_t textLen, /* length of data stream */
- uint8_t *key, /* pointer to authentication key */
- uint32_t keyLen, /* length of authentication key */
- uint8_t digest[CDS_DIGEST_SHA1_SIZE]); /* caller digest to be filled in */
-
-/**
- * cds_md5_hmac_str
- *
- * FUNCTION:
- * Generate the HMAC-MD5 of a string given a key.
- *
- * LOGIC:
- * Standard HMAC processing from RFC 2104. The code is provided in the
- * appendix of the RFC.
- *
- * ASSUMPTIONS:
- * The RFC is correct.
- *
- * @param text text to be hashed
- * @param textLen length of text
- * @param key key to use for HMAC
- * @param keyLen length of key
- * @param digest holds resultant MD5 HMAC (16B)
- *
- * @return QDF_STATUS_SUCCSS if the operation succeeds
- *
- */
-QDF_STATUS cds_md5_hmac_str(uint32_t cryptHandle, /* Handle */
- uint8_t *text, /* pointer to data stream */
- uint32_t textLen, /* length of data stream */
- uint8_t *key, /* pointer to authentication key */
- uint32_t keyLen, /* length of authentication key */
- uint8_t digest[CDS_DIGEST_MD5_SIZE]); /* caller digest to be filled in */
-
-QDF_STATUS cds_encrypt_aes(uint32_t cryptHandle, /* Handle */
- uint8_t *pText, /* pointer to data stream */
- uint8_t *Encrypted, uint8_t *pKey); /* pointer to authentication key */
-
-QDF_STATUS cds_decrypt_aes(uint32_t cryptHandle, /* Handle */
- uint8_t *pText, /* pointer to data stream */
- uint8_t *pDecrypted, uint8_t *pKey); /* pointer to authentication key */
-
uint32_t cds_chan_to_freq(uint8_t chan);
uint8_t cds_freq_to_chan(uint32_t freq);
enum cds_band_type cds_chan_to_band(uint32_t chan);
diff --git a/core/cds/src/cds_utils.c b/core/cds/src/cds_utils.c
index da331dd8d7ca..8eaa2f501d4a 100644
--- a/core/cds/src/cds_utils.c
+++ b/core/cds/src/cds_utils.c
@@ -38,9 +38,6 @@
cds_crypto_init() - Initializes Crypto module
cds_crypto_deinit() - De-initializes Crypto module
cds_rand_get_bytes() - Generates random byte
- cds_sha1_hmac_str() - Generate the HMAC-SHA1 of a string given a key
- cds_encrypt_aes() - Generate AES Encrypted byte stream
- cds_decrypt_aes() - Decrypts an AES Encrypted byte stream
DEPENDENCIES:
============================================================================*/
@@ -568,532 +565,6 @@ err_tfm:
}
#endif /* WLAN_FEATURE_11W */
-/**
- * cds_sha1_hmac_str
- *
- * FUNCTION:
- * Generate the HMAC-SHA1 of a string given a key.
- *
- * LOGIC:
- * Standard HMAC processing from RFC 2104. The code is provided in the
- * appendix of the RFC.
- *
- * ASSUMPTIONS:
- * The RFC is correct.
- *
- * @param text text to be hashed
- * @param textLen length of text
- * @param key key to use for HMAC
- * @param keyLen length of key
- * @param digest holds resultant SHA1 HMAC (20B)
- *
- * @return QDF_STATUS_SUCCSS if the operation succeeds
- *
- */
-
-struct hmac_sha1_result {
- struct completion completion;
- int err;
-};
-
-static void hmac_sha1_complete(struct crypto_async_request *req, int err)
-{
- struct hmac_sha1_result *r = req->data;
- if (err == -EINPROGRESS)
- return;
- r->err = err;
- complete(&r->completion);
-}
-
-static int
-hmac_sha1(uint8_t *key, uint8_t ksize, char *plaintext, uint8_t psize,
- uint8_t *output, uint8_t outlen)
-{
- int ret = 0;
- struct crypto_ahash *tfm;
- struct scatterlist sg;
- struct ahash_request *req;
- struct hmac_sha1_result tresult;
- void *hash_buff = NULL;
-
- unsigned char hash_result[64];
- int i;
-
- memset(output, 0, outlen);
-
- init_completion(&tresult.completion);
-
- tfm = cds_crypto_alloc_ahash("hmac(sha1)", CRYPTO_ALG_TYPE_AHASH,
- CRYPTO_ALG_TYPE_AHASH_MASK);
- if (IS_ERR(tfm)) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "crypto_alloc_ahash failed");
- ret = PTR_ERR(tfm);
- goto err_tfm;
- }
-
- req = ahash_request_alloc(tfm, GFP_KERNEL);
- if (!req) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "failed to allocate request for hmac(sha1)");
- ret = -ENOMEM;
- goto err_req;
- }
-
- ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
- hmac_sha1_complete, &tresult);
-
- hash_buff = kzalloc(psize, GFP_KERNEL);
- if (!hash_buff) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "failed to kzalloc hash_buff");
- ret = -ENOMEM;
- goto err_hash_buf;
- }
-
- memset(hash_result, 0, 64);
- memcpy(hash_buff, plaintext, psize);
- sg_init_one(&sg, hash_buff, psize);
-
- if (ksize) {
- crypto_ahash_clear_flags(tfm, ~0);
- ret = cds_crypto_ahash_setkey(tfm, key, ksize);
- if (ret) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "crypto_ahash_setkey failed");
- goto err_setkey;
- }
- }
-
- ahash_request_set_crypt(req, &sg, hash_result, psize);
- ret = cds_crypto_ahash_digest(req);
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR, "ret 0x%x", ret);
-
- switch (ret) {
- case 0:
- for (i = 0; i < outlen; i++)
- output[i] = hash_result[i];
- break;
- case -EINPROGRESS:
- case -EBUSY:
- ret = wait_for_completion_interruptible(&tresult.completion);
- if (!ret && !tresult.err) {
- for (i = 0; i < outlen; i++)
- output[i] = hash_result[i];
- INIT_COMPLETION(tresult.completion);
- break;
- } else {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "wait_for_completion_interruptible failed");
- if (!ret)
- ret = tresult.err;
- goto out;
- }
- default:
- goto out;
- }
-
-out:
-err_setkey:
- kfree(hash_buff);
-err_hash_buf:
- ahash_request_free(req);
-err_req:
- cds_crypto_free_ahash(tfm);
-err_tfm:
- return ret;
-}
-
-QDF_STATUS cds_sha1_hmac_str(uint32_t cryptHandle, /* Handle */
- uint8_t *pText, /* pointer to data stream */
- uint32_t textLen, /* length of data stream */
- uint8_t *pKey, /* pointer to authentication key */
- uint32_t keyLen, /* length of authentication key */
- uint8_t digest[CDS_DIGEST_SHA1_SIZE])
-{ /* caller digest to be filled in */
- int ret = 0;
-
- ret = hmac_sha1(pKey, /* uint8_t *key, */
- (uint8_t) keyLen, /* uint8_t ksize, */
- (char *)pText, /* char *plaintext, */
- (uint8_t) textLen, /* uint8_t psize, */
- digest, /* uint8_t *output, */
- CDS_DIGEST_SHA1_SIZE /* uint8_t outlen */
- );
-
- if (ret != 0) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "hmac_sha1() call failed");
- return QDF_STATUS_E_FAULT;
- }
-
- return QDF_STATUS_SUCCESS;
-}
-
-/**
- * cds_md5_hmac_str
- *
- * FUNCTION:
- * Generate the HMAC-MD5 of a string given a key.
- *
- * LOGIC:
- * Standard HMAC processing from RFC 2104. The code is provided in the
- * appendix of the RFC.
- *
- * ASSUMPTIONS:
- * The RFC is correct.
- *
- * @param text text to be hashed
- * @param textLen length of text
- * @param key key to use for HMAC
- * @param keyLen length of key
- * @param digest holds resultant MD5 HMAC (20B)
- *
- * @return QDF_STATUS_SUCCSS if the operation succeeds
- *
- */
-struct hmac_md5_result {
- struct completion completion;
- int err;
-};
-
-static void hmac_md5_complete(struct crypto_async_request *req, int err)
-{
- struct hmac_md5_result *r = req->data;
- if (err == -EINPROGRESS)
- return;
- r->err = err;
- complete(&r->completion);
-}
-
-static int
-hmac_md5(uint8_t *key, uint8_t ksize, char *plaintext, uint8_t psize,
- uint8_t *output, uint8_t outlen)
-{
- int ret = 0;
- struct crypto_ahash *tfm;
- struct scatterlist sg;
- struct ahash_request *req;
- struct hmac_md5_result tresult = {.err = 0 };
- void *hash_buff = NULL;
-
- unsigned char hash_result[64];
- int i;
-
- memset(output, 0, outlen);
-
- init_completion(&tresult.completion);
-
- tfm = cds_crypto_alloc_ahash("hmac(md5)", CRYPTO_ALG_TYPE_AHASH,
- CRYPTO_ALG_TYPE_AHASH_MASK);
- if (IS_ERR(tfm)) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "crypto_alloc_ahash failed");
- ret = PTR_ERR(tfm);
- goto err_tfm;
- }
-
- req = ahash_request_alloc(tfm, GFP_KERNEL);
- if (!req) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "failed to allocate request for hmac(md5)");
- ret = -ENOMEM;
- goto err_req;
- }
-
- ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
- hmac_md5_complete, &tresult);
-
- hash_buff = kzalloc(psize, GFP_KERNEL);
- if (!hash_buff) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "failed to kzalloc hash_buff");
- ret = -ENOMEM;
- goto err_hash_buf;
- }
-
- memset(hash_result, 0, 64);
- memcpy(hash_buff, plaintext, psize);
- sg_init_one(&sg, hash_buff, psize);
-
- if (ksize) {
- crypto_ahash_clear_flags(tfm, ~0);
- ret = cds_crypto_ahash_setkey(tfm, key, ksize);
- if (ret) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "crypto_ahash_setkey failed");
- goto err_setkey;
- }
- }
-
- ahash_request_set_crypt(req, &sg, hash_result, psize);
- ret = cds_crypto_ahash_digest(req);
-
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR, "ret 0x%x", ret);
-
- switch (ret) {
- case 0:
- for (i = 0; i < outlen; i++)
- output[i] = hash_result[i];
- break;
- case -EINPROGRESS:
- case -EBUSY:
- ret = wait_for_completion_interruptible(&tresult.completion);
- if (!ret && !tresult.err) {
- INIT_COMPLETION(tresult.completion);
- break;
- } else {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "wait_for_completion_interruptible failed");
- if (!ret)
- ret = tresult.err;
- goto out;
- }
- default:
- goto out;
- }
-
-out:
-err_setkey:
- kfree(hash_buff);
-err_hash_buf:
- ahash_request_free(req);
-err_req:
- cds_crypto_free_ahash(tfm);
-err_tfm:
- return ret;
-}
-
-QDF_STATUS cds_md5_hmac_str(uint32_t cryptHandle, /* Handle */
- uint8_t *pText, /* pointer to data stream */
- uint32_t textLen, /* length of data stream */
- uint8_t *pKey, /* pointer to authentication key */
- uint32_t keyLen, /* length of authentication key */
- uint8_t digest[CDS_DIGEST_MD5_SIZE])
-{ /* caller digest to be filled in */
- int ret = 0;
-
- ret = hmac_md5(pKey, /* uint8_t *key, */
- (uint8_t) keyLen, /* uint8_t ksize, */
- (char *)pText, /* char *plaintext, */
- (uint8_t) textLen, /* uint8_t psize, */
- digest, /* uint8_t *output, */
- CDS_DIGEST_MD5_SIZE /* uint8_t outlen */
- );
-
- if (ret != 0) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "hmac_md5() call failed");
- return QDF_STATUS_E_FAULT;
- }
-
- return QDF_STATUS_SUCCESS;
-}
-
-struct ecb_aes_result {
- struct completion completion;
- int err;
-};
-
-static void ecb_aes_complete(struct crypto_async_request *req, int err)
-{
- struct ecb_aes_result *r = req->data;
- if (err == -EINPROGRESS)
- return;
- r->err = err;
- complete(&r->completion);
-}
-
-/*--------------------------------------------------------------------------
-
- \brief cds_encrypt_aes() - Generate AES Encrypted byte stream
-
- The cds_encrypt_aes() function generates the encrypted byte stream for given text.
-
- Buffer should be allocated before calling cds_rand_get_bytes().
-
- Attempting to initialize an already initialized lock results in
- a failure.
-
- \param lock - pointer to the opaque lock object to initialize
-
- \return QDF_STATUS_SUCCESS - Successfully generated random memory.
-
- QDF_STATUS_E_FAULT - pbBuf is an invalid pointer.
-
- QDF_STATUS_E_FAILURE - default return value if it fails due to
- unknown reasons
-
- ***QDF_STATUS_E_RESOURCES - System resources (other than memory)
- are unavailable
- \sa
-
- ( *** return value not considered yet )
- --------------------------------------------------------------------------*/
-
-QDF_STATUS cds_encrypt_aes(uint32_t cryptHandle, /* Handle */
- uint8_t *pPlainText, /* pointer to data stream */
- uint8_t *pCiphertext, uint8_t *pKey)
-{ /* pointer to authentication key */
- struct ecb_aes_result result;
- struct ablkcipher_request *req;
- struct crypto_ablkcipher *tfm;
- int ret = 0;
- char iv[IV_SIZE_AES_128];
- struct scatterlist sg_in;
- struct scatterlist sg_out;
-
- init_completion(&result.completion);
-
- tfm = cds_crypto_alloc_ablkcipher("cbc(aes)", 0, 0);
- if (IS_ERR(tfm)) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "crypto_alloc_ablkcipher failed");
- ret = PTR_ERR(tfm);
- goto err_tfm;
- }
-
- req = ablkcipher_request_alloc(tfm, GFP_KERNEL);
- if (!req) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "Failed to allocate request for cbc(aes)");
- ret = -ENOMEM;
- goto err_req;
- }
-
- ablkcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
- ecb_aes_complete, &result);
-
- crypto_ablkcipher_clear_flags(tfm, ~0);
-
- ret = crypto_ablkcipher_setkey(tfm, pKey, AES_KEYSIZE_128);
- if (ret) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "crypto_cipher_setkey failed");
- goto err_setkey;
- }
-
- memset(iv, 0, IV_SIZE_AES_128);
-
- sg_init_one(&sg_in, pPlainText, AES_BLOCK_SIZE);
-
- sg_init_one(&sg_out, pCiphertext, AES_BLOCK_SIZE);
-
- ablkcipher_request_set_crypt(req, &sg_in, &sg_out, AES_BLOCK_SIZE, iv);
-
- crypto_ablkcipher_encrypt(req);
-
-/* ------------------------------------- */
-err_setkey:
- cds_ablkcipher_request_free(req);
-err_req:
- cds_crypto_free_ablkcipher(tfm);
-err_tfm:
- /* return ret; */
- if (ret != 0) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "%s() call failed", __func__);
- return QDF_STATUS_E_FAULT;
- }
-
- return QDF_STATUS_SUCCESS;
-}
-
-/*--------------------------------------------------------------------------
-
- \brief cds_decrypt_aes() - Decrypts an AES Encrypted byte stream
-
- The cds_decrypt_aes() function decrypts the encrypted byte stream.
-
- Buffer should be allocated before calling cds_rand_get_bytes().
-
- Attempting to initialize an already initialized lock results in
- a failure.
-
- \param lock - pointer to the opaque lock object to initialize
-
- \return QDF_STATUS_SUCCESS - Successfully generated random memory.
-
- QDF_STATUS_E_FAULT - pbBuf is an invalid pointer.
-
- QDF_STATUS_E_FAILURE - default return value if it fails due to
- unknown reasons
-
- ***QDF_STATUS_E_RESOURCES - System resources (other than memory)
- are unavailable
- \sa
-
- ( *** return value not considered yet )
- --------------------------------------------------------------------------*/
-
-QDF_STATUS cds_decrypt_aes(uint32_t cryptHandle, /* Handle */
- uint8_t *pText, /* pointer to data stream */
- uint8_t *pDecrypted, uint8_t *pKey)
-{ /* pointer to authentication key */
-/* QDF_STATUS uResult = QDF_STATUS_E_FAILURE; */
- struct ecb_aes_result result;
- struct ablkcipher_request *req;
- struct crypto_ablkcipher *tfm;
- int ret = 0;
- char iv[IV_SIZE_AES_128];
- struct scatterlist sg_in;
- struct scatterlist sg_out;
-
- init_completion(&result.completion);
-
- tfm = cds_crypto_alloc_ablkcipher("cbc(aes)", 0, 0);
- if (IS_ERR(tfm)) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "crypto_alloc_ablkcipher failed");
- ret = PTR_ERR(tfm);
- goto err_tfm;
- }
-
- req = ablkcipher_request_alloc(tfm, GFP_KERNEL);
- if (!req) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "Failed to allocate request for cbc(aes)");
- ret = -ENOMEM;
- goto err_req;
- }
-
- ablkcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
- ecb_aes_complete, &result);
-
- crypto_ablkcipher_clear_flags(tfm, ~0);
-
- ret = crypto_ablkcipher_setkey(tfm, pKey, AES_KEYSIZE_128);
- if (ret) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "crypto_cipher_setkey failed");
- goto err_setkey;
- }
-
- memset(iv, 0, IV_SIZE_AES_128);
-
- sg_init_one(&sg_in, pText, AES_BLOCK_SIZE);
-
- sg_init_one(&sg_out, pDecrypted, AES_BLOCK_SIZE);
-
- ablkcipher_request_set_crypt(req, &sg_in, &sg_out, AES_BLOCK_SIZE, iv);
-
- crypto_ablkcipher_decrypt(req);
-
-/* ------------------------------------- */
-err_setkey:
- cds_ablkcipher_request_free(req);
-err_req:
- cds_crypto_free_ablkcipher(tfm);
-err_tfm:
- /* return ret; */
- if (ret != 0) {
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- "%s() call failed", __func__);
- return QDF_STATUS_E_FAULT;
- }
-
- return QDF_STATUS_SUCCESS;
-}
uint32_t cds_chan_to_freq(uint8_t chan)
{