DES

头文件

#include "mln_des.h"

模块名

des

函数

mln_des_init

void mln_des_init(mln_des_t *d, mln_u64_t key);

描述:初始化mln_des_t结构。key为8字节密钥。

返回值:无

mln_des_new

mln_des_t *mln_des_new(mln_u64_t key);

描述:创建并初始化mln_des_t结构,该结构由malloc分配而来。key为8字节密钥。

返回值:成功则返回mln_des_t指针,否则返回NULL

mln_des_pool_new

mln_des_t *mln_des_pool_new(mln_alloc_t *pool, mln_u64_t key);

描述:创建并初始化mln_des_t结构,该结构由pool指向的内存池分配而来。key为8字节密钥。

返回值:成功则返回mln_des_t指针,否则返回NULL

mln_des_free

void mln_des_free(mln_des_t *d);

描述:释放mln_des_t结构内存,该结构应由mln_des_new分配而来。

返回值:无

mln_des_pool_free

void mln_des_pool_free(mln_des_t *d);

描述:释放mln_des_t结构内存,该结构应由mln_des_pool_new分配而来。

返回值:无

mln_des

 mln_u64_t mln_des(mln_des_t *d, mln_u64_t msg, mln_u32_t is_encrypt);

描述:对msg进行加密或者解密操作,msg是一个8字节大小数据。is_encrypt用于告知函数执行加密操作(非0)还是解密操作(0)。

返回值:8字节密文/明文

mln_des_buf

void mln_des_buf(mln_des_t *d, mln_u8ptr_t in, mln_uauto_t inlen, mln_u8ptr_t out, mln_uauto_t outlen, mln_u8_t fill, mln_u32_t is_encrypt);

描述:用于对ininlen指代的明文进行加解密操作,并将结果输出到outoutlen指代的内存区(由调用方分配)中。注意ininlen指定的输入数据必须是8字节的整数倍。若输入数据长度不足8字节时需要填充字节。填充的字节内容为fillis_encrypt用于告知函数执行加密操作(非0)还是解密操作(0)。

注意ininlen指定的输入数据必须是8字节的整数倍。

返回值:无

mln_3des_init

void mln_3des_init(mln_3des_t *tdes, mln_u64_t key1, mln_u64_t key2);

描述:初始化mln_3des_t结构。key1key2均为8字节密钥。

返回值:无

mln_3des_new

mln_3des_t *mln_3des_new(mln_u64_t key1, mln_u64_t key2);

描述:创建并初始化mln_3des_t结构,该结构由malloc分配而来。key1key2均为8字节密钥。

返回值:成功则返回mln_3des_t指针,否则返回NULL

mln_3des_pool_new

mln_3des_t *mln_3des_pool_new(mln_alloc_t *pool, mln_u64_t key1, mln_u64_t key2);

描述:创建并初始化mln_3des_t结构,该结构由pool指定的内存池分配而来。key1key2均为8字节密钥。

返回值:成功则返回mln_3des_t指针,否则返回NULL

mln_3des_free

void mln_3des_free(mln_3des_t *tdes);

描述:释放mln_3des_t结构内存,该结构应由mln_des_new分配而来。

返回值:无

mln_3des_pool_free

void mln_3des_pool_free(mln_3des_t *tdes);

描述:释放mln_des_t结构内存,该结构应由mln_des_pool_new分配而来。

返回值:无

mln_3des

mln_u64_t mln_3des(mln_3des_t *tdes, mln_u64_t msg, mln_u32_t is_encrypt);

描述:对msg进行加密或者解密操作,msg是一个8字节大小数据。is_encrypt用于告知函数执行加密操作(非0)还是解密操作(0)。

返回值:8字节密文/明文

mln_3des_buf

void mln_3des_buf(mln_3des_t *tdes, mln_u8ptr_t in, mln_uauto_t inlen, mln_u8ptr_t out, mln_uauto_t outlen, mln_u8_t fill, mln_u32_t is_encrypt);

描述:用于对ininlen指代的明文进行加解密操作,并将结果输出到outoutlen指代的内存区(由调用方分配)中。注意ininlen指定的输入数据必须是8字节的整数倍。若输入数据长度不足8字节时需要填充字节。填充的字节内容为fillis_encrypt用于告知函数执行加密操作(非0)还是解密操作(0)。

返回值:无

示例

#include <stdio.h>
#include "mln_des.h"

int main(int argc, char *argv[])
{
    mln_3des_t d;
    mln_u8_t text[9] = {0};
    mln_u8_t cipher[9] = {0};

    mln_3des_init(&d, 0xffff, 0xff120000);
    mln_3des_buf(&d, (mln_u8ptr_t)"Hi Tom!!", 11, cipher, sizeof(cipher), 0, 1);
    mln_3des_buf(&d, cipher, sizeof(cipher)-1, text, sizeof(text), 0, 0);
    printf("%s\n", text);

    return 0;
}

results matching ""

    No results matching ""