[英]Linux Kernel Crypto API
我正在嘗試使用 Linux Kernel Crypto ZDB974238714CA8DE634ACE.
我有來自https://www.kernel.org/doc/html/v4.17/crypto/api-samples.html的示例(代碼對稱密鑰操作示例)
我的問題是變量“暫存器”(輸入日期)在啟動它之前和之后的值相同。
也從未使用過 bracnh:
if (rc)
pr_info("skcipher encrypt returned with result %d\n", rc);
我確定做錯了什么?
關於問題的第一部分:
我的問題是變量“scratchpad”(輸入日期)在啟動它之前和之后的值相同。
由於您試圖通過將相同的分散/收集列表作為目標傳遞來就地加密,因此這是一個問題。 它們不應該相同。
要調試,您可以:
/proc/crypto
文件中看到您有__cbc-aes-aesni
。 您可能想嘗試其他方法來測試模塊的邏輯。/dev/crypto
)嘗試 cryptodev。 通過使用 cryptodev測試和檢查dmesg
,它使調試變得更加容易。 將enable_stats=1
添加到模塊選項也有幫助。 當您的應用程序在用戶空間上穩定時,go 回到 kernel 取決於您。對於第二部分:
也從未使用過 bracnh:
if (rc) pr_info("skcipher encrypt returned with result %d\n", rc);
我會說這不是問題。
遵循代碼序列(引用相同的 kernel 版本 v4.17 作為您的文檔鏈接):
crypto_wait_req
采用錯誤代碼,在我們的例子中由crypto_skcipher_encrypt()
傳遞。 除非錯誤是-EBUSY
或-EINPROGRESS
,否則此錯誤代碼將返回給rc
,零是完全正常的。crypto_skcipher_encrypt
返回 0; < 0 如果發生錯誤。 由於您已設置密鑰,因此應返回 0。__cbc-aes-aesni
作為驅動程序。 檢查cbc_encrypt()
,您可以看到成功時的返回值為零,如成功 state 中skcipher_walk_done()
的返回值所示。因此,不調用分支是成功操作的預期行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.