易截截图软件、单文件、免安装、纯绿色、仅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 下压缩、解压 打包命令

ZZ 自http://dev.firnow.com/course/6_system/linux/Linuxjs/200896/139627.html     
      .tar
  解包: tar xvf FileName.tar
  打包:tar cvf FileName.tar DirName
 
 (注:tar是打包,不是压缩!)
  --------------------------------------------- ......

SVN版本管理笔记(Linux)

一、       
SVN
服务器环境的搭建
我们开发的项目属于基于
ARM9

linux
系统的嵌入式管理软件,整个开发编译环境必须是在
linux
下面。因此,
SVN
服务器的环境也必须是在
linux
系统。
现有的服务器环境:操作系统:
Redhat Linux AS4U4
,内核版本为:
2.6.13
......

linux的触摸屏之五:帧缓冲设备上较准界面的配置

(1)帧缓冲设备跟TTY的关系。需要关注tty跟帧缓冲设备的关系,一般情况下帧缓冲设备是可以独立操作的,但是如果为了保证单独占用不被抢占,似乎还要关联一个tty终端。这里用的是虚终端VT。
      虚终端,也叫虚屏,它的英文名字为virtual terminal,缩写为VT或vt。在Unix系统用户中,虚终端有着 ......

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号