Linux Kernel(Android) 加密算法总结(cipher、compress、digest)文章中。介绍了怎样在内核中增加三种不同类型的内核加密算法, 并给出了在内核模块中怎样调用他们的实例。

本文将主要介绍,怎样在应用程序空间中(user space) 调用内核空间(kernel space)加密模块提供的加密算法API。

方法一:通过调用crypto: af_alg - User-space interface for Crypto API, Herbert Xu <herbert@gondor.apana.org.au> 2010年,给内核2.6.X 接口实现

详细情况请參考Linux Kernel(Android) 加密算法总结(二)- A netlink-based user-space crypto API

以下依据以上方法实现应用程序调用内核加密算法接口演示样例:

该方法经过在内核层实现与CPU加密模块。或者硬件加密卡对接,并为上层应用程序提供接口的方式。能够实现硬件加密。

应用程序调用内核 hash

hash.c

<span style="font-size:18px;">#include <stdio.h>
#include <sys/socket.h>
#include <linux/if_alg.h> #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;
}</span>

Andrid.mk

<span style="font-size:18px;">LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) LOCAL_MODULE := testhash LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := \
hash.c include $(BUILD_EXECUTABLE)</span>

编译完毕后在

adb push testhash /system/bin/

adb shell chmod a+x /system/bin/testhash

adb shell testhash

验证输出结果.

版权声明:本文博主原创文章。博客,未经同意不得转载。

Linux Kernel(Android) 加密算法汇总(三)-应用程序调用内核加密算法接口的更多相关文章

  1. Linux Kernel(Android) 加密算法汇总(四)-应用程序调用OpenSSL加密演算法

    Linux Kernel(Android) 加密算法总结(三)-应用程序调用内核加密算法接口 讲到了怎样调用内核中的接口的方法. 本节主要是介绍怎样Android C/C++应用程序调用Openssl ...

  2. 小程序调用wx.chooseLocation接口的时候无法获取权限(ios)

    ios手机小程序调用wx.chooseLocation接口的时候,获取权限的时候报authorize:fail:require permission desc这样子的错误,这是由于苹果的安全机制导致需 ...

  3. Linux Kernel(Android) 加密算法总结(一)(cipher、compress、digest)

    1. Linux内核支持哪些加密算法 ? 内核支持的加密算法非常多,包含: 对称加密算法.如AES,3DES. 对称password体制的发展趋势将以分组password为重点. 分组password ...

  4. 深入理解linux网络技术内幕读书笔记(三)--用户空间与内核的接口

    Table of Contents 1 概论 1.1 procfs (/proc 文件系统) 1.1.1 编程接口 1.2 sysctl (/proc/sys目录) 1.2.1 编程接口 1.3 sy ...

  5. Linux:使用rpcgen实现64位程序调用32位库函数

    摘要:本文介绍使用rpcgent实现64位程序调用32位库函数的方法,并给出样例代码. 我的问题 我的程序运行在64位Linux系统上,需要使用一个从外部获得的共享库中的函数,这个共享库是32位的,无 ...

  6. Android 面试汇总<三>

    1.3 计算机网络 基础 Q:五层协议的体系结构分别是什么?每一层都有哪些协议? 技术点:网络模型.协议 思路:分条解释每层名字以及协议 参考回答: 物理层 数据链路层:逻辑链路控制LLC.媒体接入控 ...

  7. 原创:微信小程序调用PHP后台接口,解析纯html文本

    ---效果图片预览---    1.微信js动态传参:wx.request({        url: 'https://m.****.com/index.php/Home/Xiaoxxf/activ ...

  8. 微信小程序调用微信支付接口

    本文链接:https://blog.csdn.net/u012667477/article/details/80940578前言:应项目要求,需要使用微信小程序做支付,写完后告知手续费太高方案不予通过 ...

  9. 在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6564592 在前一篇文章提到,从源代码树下载下 ...

随机推荐

  1. OCA读书笔记(17) - 移动数据

    Sql*load 1. sql*loader的文件有哪些? 日志文件:概述了作业的成功与失败以及所有相关错误的细节 错误文件(bad file):从输入文件中抽取的行可能会被sqlldr丢弃(原因可能 ...

  2. poj-3791-An Easy Game-记忆化搜索

    dp[i][j]:还有i个不同样的位置,还能走j步,一共同拥有多少种走法. 非常明显 dp[i][j]=sigm(dp[i-k][j-1]*c[i][k]*c[n-i][m-k]); 用记忆化搜索记忆 ...

  3. Activity与Service通信的方式有三种:

    在博客园看到的,看着挺不错的,借来分享下 继承Binder类 这个方式仅仅有当你的Acitivity和Service处于同一个Application和进程时,才干够用,比方你后台有一个播放背景音乐的S ...

  4. Maven安装中的问题

    按照<Maven实战>中的讲述,在安装完Maven后执行mvn -v的时候,出现了问题.在网上搜索到了解决办法: 引用:http://blog.csdn.net/xueyepiaoling ...

  5. Shell split character line by line

    while read line      do            account=`echo "$line"| cut -c1-9`'|'            account ...

  6. ecshop首页调用某分类下的商品|assign_cat_goods()

    ecshop首页调用分类下的商品其实很简单,也有模板设置那里可以设置,不过那个只可以用cat_goods.lib,不方便,所以我想看看怎么能简单的实现ecshop首页调用分类下的商品 只需要在inde ...

  7. android选择和裁剪图像拍摄的图像

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/39994913 近期从曾经的项目中扒下来一个经常使用的模块.在这里有必要记录一下的. ...

  8. mysql按ID排序(转)

    自己建表的时候,把一个字段类型创建为varchar(2) ,其实应该建为int(2)的. 因为我只允许输出数字.这本来也没什么,无非就是占点空间,懒得改了.但是今天在后台发现排序有问题.于是,没办法, ...

  9. 《Effective C++ 》学习笔记——规定10

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  10. hdu 2191 悼念512四川汶川大地震遇难者——如今宝,感恩生活

    悼念512四川汶川大地震遇难者--如今宝,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...