
psa_status_t psa_aes_ecb_encrypt(const uint8_t *plaintext, uint8_t *ciphertext)
{
    psa_status_t status;
    size_t out_len = 0;

   
    if (plaintext == NULL || ciphertext == NULL || g_aes128_key_id == PSA_KEY_ID_NULL)
    {
        return PSA_ERROR_INVALID_ARGUMENT;
    }

    status = psa_cipher_encrypt(g_aes128_key_id,
                                PSA_ALG_ECB_NO_PADDING,  
                                plaintext, 16,           
                                ciphertext, 16,          
                                &out_len);               

    if (status != PSA_SUCCESS)
    {
        printf("AES-ECB加密失败: 0x%08X\r\n", status);
        return status;
    }

    if (out_len != 16)
    {
        printf("AES-ECB加密长度异常: %d(预期16)\r\n", out_len);
        return PSA_ERROR_DATA_INVALID;
    }

    printf("AES-ECB加密成功\r\n");
    return PSA_SUCCESS;
}
void aesecb_en_decrypt_operation(void)
{
    psa_status_t status;
    
    uint8_t aes_key[16] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
                           0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};
    
    uint8_t plaintext[16] = {0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
                             0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F};
    
    uint8_t ciphertext[16] = {0};
    uint8_t decrypt_text[16] = {0};

    
    status = psa_aes_ecb_init();
    if (status != PSA_SUCCESS)
        return;

   
    status = psa_aes_ecb_import_key(aes_key);
    if (status != PSA_SUCCESS)
        return;

    
    status = psa_aes_ecb_encrypt(plaintext, ciphertext);
    if (status == PSA_SUCCESS)
    {
        psa_aes_print_hex(ciphertext, 16, "ECB Ciphertext");
    }
}



