linux内核支持的加密算法,Linux Kernel(Android) 加密算法总结(三)-应用程序调用内核加密算法接口...
本文將主要介紹,如何在應用程序空間中(user space) 調用內核空間(kernel space)加密模塊提供的加密算法API。
方法一:通過調用crypto: af_alg - User-space interface for Crypto API, Herbert Xu 2010年,給內核2.6.X 接口實現
下面根據以上方法實現應用程序調用內核加密算法接口示例:
該方法經過在內核層實現與CPU加密模塊,或者硬件加密卡對接,并為上層應用程序提供接口的方式,可以實現硬件加密。
應用程序調用內核hash
hash.c
#include
#include
#include
#ifndef AF_ALG
#define AF_ALG 38
#define SOL_ALG 279
#endif
int main(void)
{
int opfd;
int tfmfd;
struct sockaddr_alg sa = {
.salg_family = AF_ALG,
.salg_type = "hash",
.salg_name = "sha1"
};
char buf[20];
int i;
tfmfd = socket(AF_ALG, SOCK_SEQPACKET, 0);
bind(tfmfd, (struct sockaddr *)&sa, sizeof(sa));
opfd = accept(tfmfd, NULL, 0);
write(opfd, "abc", 3);
read(opfd, buf, 20);
for (i = 0; i < 20; i++) {
printf("%02x", (unsigned char)buf[i]);
}
printf("\n");
close(opfd);
close(tfmfd);
return 0;
}
Andrid.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := testhash
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := \
hash.c
include $(BUILD_EXECUTABLE)
編譯完成后在
adb push testhash /system/bin/
adb shell chmod a+x /system/bin/testhash
adb shell testhash
驗證輸出結果.
總結
以上是生活随笔為你收集整理的linux内核支持的加密算法,Linux Kernel(Android) 加密算法总结(三)-应用程序调用内核加密算法接口...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓手机性能榜:天玑9000稳了、天玑8
- 下一篇: 罗技推出极光G700系列键鼠:RGB效果