易截截图软件、单文件、免安装、纯绿色、仅160KB

linux内核cryto接口的实现以及与openssl的比较

linux内核实现了crypto接口,用于类似IPSec之类要在内核中实现的与操作系统绑定的安全机制,如果不是用于这样的机制,不要使用内核中的crypto接口,总的来说,linux的crypto中最重要的结构体有两个:crypto_tfm和crypto_alg
struct crypto_tfm {
    u32 crt_flags;
    union {
        struct cipher_tfm cipher;
        struct digest_tfm digest;
        struct compress_tfm compress;
    } crt_u; //该联合体指出linux实现了cipher,digest和compress三类算法,每一类中有许多种算法,注意这个联合的每一个都仅仅实现了一大类算法的实现封装,并不是具体的实现。
    struct crypto_alg *__crt_alg;
    char __crt_ctx[] __attribute__ ((__aligned__));
};
下面这个结构体才是具体算法的实现,上面crypto_tfm中的crt_u中一系列函数都是对下面结构体中cra_u中一系列函数的封装:
struct crypto_alg {
    struct list_head cra_list;
    u32 cra_flags;  //这个flags很重要
    unsigned int cra_blocksize;
    unsigned int cra_ctxsize;
    unsigned int cra_alignmask;
    int cra_priority;
    char cra_name[CRYPTO_MAX_ALG_NAME];
    char cra_driver_name[CRYPTO_MAX_ALG_NAME];
    union {
        struct cipher_alg cipher;
        struct digest_alg digest;
        struct compress_alg compress;
    } cra_u;
    int (*cra_init)(struct crypto_tfm *tfm);
    void (*cra_exit)(struct crypto_tfm *tfm);
    struct module *cra_module;
};
上面的两个结构中都有一个联合体,事实上每个联合体字段都是一个完整的算法实现,而且三个算法类型几乎没有任何共同点可言,对于摘要类算法来说,回调函数是init,update,final等,而对于cipher而言,就是encrypt和decrypt等,linux实际上是利用联合


相关文档:

linux 模块中函数的调用(通俗易懂哦)

首先,应用程序是无法直接访问模块中的函数的(即使是你自编自挂的模块--实际上它也是内核模块),用户空间与内核空间之间只有通过一些特定的系统函数来进行通讯(如什么user_to_kernel),而绝对不可能通过“直接调用模块里的函数”这种形式来通讯。
那么,所编写的模块里的函数怎么才能被执行?由谁调用?其 ......

linux arp 命令常用参数详解

linux arp 命令常用参数详解
显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]
 -a            通过询问当前协议数据,显示当前 ARP 项。如果指定 ......

Linux下的定时器:alarm()与 setitimer()

Linux下的定时器有两种,以下分别介绍:
 
1、alarm
 
如果不要求很精确的话,用alarm()和signal()就够了
 
unsigned int alarm(unsigned int seconds)
 
函数说明:
alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds为0,则之前设置的闹钟会被取 ......

linux操作系统安装命令

1 红帽
rpm  -ivh 安装
         -e   删除
         -u  升级
         -q  查询
2 ubuntu
deb dpkg -i 安装
       &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号