Quantcast
Channel: 蓝牙论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 7519

CC2640R2F AES 128bit CBC 加密

$
0
0

如题,CC2640R2F AES 128bit CBC 加密出来的数据和APP、服务器加密出来的数据不同。下面是我的实际代码,请问代码有什么问题?

uint8_t AES_encryptionByCBC(uint8_t *key, uint8_t *dataIn, uint8_t *dataOut)
{
    // Declaration (typically done in a task)
    CryptoCC26XX_Handle             handle;
    int32_t                         keyIndex;
    int32_t                         status;
    CryptoCC26XX_AESCBC_Transaction trans;

    // Initialize Crypto driver
    CryptoCC26XX_init();

    // Attempt to open CryptoCC26XX.
    handle = CryptoCC26XX_open(CC2640R2_LAUNCHXL_CRYPTO0, false, NULL);
    if (!handle) {
        return FAILURE;
    }

    keyIndex = CryptoCC26XX_allocateKey(handle, CRYPTOCC26XX_KEY_ANY, (const uint32_t *) key);
    if (keyIndex == CRYPTOCC26XX_STATUS_ERROR) {
        return FAILURE;
    }

    // Initialize transaction
    CryptoCC26XX_Transac_init((CryptoCC26XX_Transaction *) &trans, CRYPTOCC26XX_OP_AES_CBC_ENCRYPT);

    // Setup transaction
    trans.keyIndex  = keyIndex;
//    trans.nonce     = key;
    trans.msgIn     = (uint32_t *) dataIn;
    trans.msgOut    = (uint32_t *) dataOut;
    trans.msgInLength = 16;

    // Encrypt
    status = CryptoCC26XX_transact(handle, (CryptoCC26XX_Transaction *) &trans);
    if(status != CRYPTOCC26XX_STATUS_SUCCESS){
        return FAILURE;
    }

    CryptoCC26XX_releaseKey(handle, &keyIndex);
    //CryptoCC26XX_close(handle);

    return SUCCESS;
}

Viewing all articles
Browse latest Browse all 7519

Trending Articles