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) 加密算法总结(三)-应用程序调用内核加密算法接口...相关推荐
- linux内核支持我vxlan,Linux内核轻量级隧道
目前内核支持的封装类型由枚举类型lwtunnel_encap_types定义,如下所示支持MPLS.IP.ILA.IP6.SEG6.BPF和SEG6_LOCAL等7种类型.函数lwtunnel_val ...
- windows命令行下访问linux,Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux...
原标题:Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 微软,致力于做最好的Linux发行版. 今天, ...
- windows兼容Linux php,支持windows与linux的php计划任务的实现方法
本文实例讲述了支持windows与linux的php计划任务的实现方法.包括了在winows下利用winodows计划任务来操作,还有在linux中利用linux的方法来实现.分享给大家供大家参考.具 ...
- linux不支持modprobe命令,Linux中的Modprobe命令
Linux内核是Linux操作系统的核心组件. 它管理系统的资源,并且是计算机硬件和软件之间的桥梁. Linux内核具有模块化设计. 内核模块(通常称为驱动程序)是一段扩展内核功能的代码. 模块要么编 ...
- Android系统JNI使用(JAVA调用C语言接口)一
目录 第一篇:Android系统JNI使用(JAVA调用C语言接口)一 什么是JNI JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信主要是 ...
- linux内核支持浮动ip,Linux配置浮动IP
在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability). 本篇文章主要讲实际操作步骤: 可以是双机,也可以是多机,主服务器为10.61.1.22,从服务器为 ...
- linux内核支持浮动ip,Linux配置浮动IP实现WEB高可用
在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability). 浮动IP的概念以及为什么需要浮动IP请参考:浮动IP(FLOAT IP) 本篇文章主要讲实际操作步 ...
- linux系统支持ntfs吗,linux支持NTFS
我的linux系统是redhat的enterprise5,缺省的情况下是不支持NTFS系统的.需要安装相应的模块.我的安装步骤是: 1,到href="" target=_blank ...
- linux不支持modprobe命令,Linux中modprobe命令起什么作用呢?
摘要: 下文讲述Linux中modprobe的功能说明,如下所示: modprobe命令功能: 用于采用智能方式向内核中加载模块 或从内核中移除模块 modprobe命令的原理: modprobe命令 ...
最新文章
- 剑指Offer——平衡二叉树
- 多大、谷歌大脑获ICML 2021杰出论文奖,田渊栋、陆昱成获荣誉提名!
- Axure--Web原型开发工具
- Teradata首席分析官Bill Franks:数据分析变革犹如一场工业革命
- 【机器视觉】 gen_measure_rectangle2算子
- scrapy 搜索关键字_Scrapy 新浪微博搜索爬虫
- WPF 实现 DataGrid/ListView 分页控件
- ojdbc14_g.jar与ojdbc14.jar区别
- Android 蓝牙扫描
- 2022精选最新金融银行面试真题——附带答案
- 万字长文 | 谷歌进入到退出中国市场的前因后果
- 溯光者:超简单,一文读懂显卡型号编码数字、字母怎么看,都是什么意思?
- 使用java实现简单推箱子游戏
- 大话西游中的这些经典元素,注意到没?
- OpenCV 读写图像、读写像素、修改像素值(案例:图像反处理)
- 虚拟打印机驱动开发——ImagePrinter(一)
- java list 交集 并集 差集 去重复并集
- Zookeeper介绍(通俗易懂)
- screen 状态为Attached 连不上
- IT人看《国富论》系列:第一篇之第四章:论货币的起源及其效用。UML是软件行业的货币...
热门文章
- Eclipse查找文件存储路径
- 怎么实现hover_web前端CSS实现一个粒子动效的按钮
- 出现一个黑色框按不动_创意 | 这才是走心的衣架设计,给衣服一个高逼格的家!...
- python带参数的装饰器_Python-----带参数的装饰器以及补充
- java 析构函数_C++虚函数
- sqlite3_setp
- python获取pid并杀死_用python记录运行pid,并在需要时kill掉它们的实例
- python免费学校_清华大学,的python学习路线,免费分享给小白福利
- 第十五节:深入理解async和await的作用及各种适用场景和用法
- 第六节:深入研究Task实例方法ContinueWith的参数TaskContinuationOptions