系统小窝欢迎您

当前位置:系统小窝 > 系统教程 > Linux教程 >

Linux为OpenSSL添加自定义加密算法的技巧

时间:2021-04-10    来源:般砖的    人气:

Linux系统OpenSSL是一套密码库系统,所以Linux系统使用OpenSSL的过程中,就一定会涉及给OpenSSL添加加密算法,本文就来介绍一下Linux为OpenSSL添加自定义加密算法的技巧。

一、简介

本文以添加自定义算法EVP_ssf33为例,介绍在OpenSSL中添加自定义加密算法的方法

二、步骤

1、修改crypto/object/objects.txt,注册算法OID,如下:

rsadsi 3 255: SSF33: ssf33

2、进入目录:crypto/object/,执行如下命令,生成算法的声明

perl objects.pl objects.txt obj_mac.num obj_mac.h

3、在crypto/evp/下添加e_ssf33.c,内容如下

#include 《stdio.h》

#include ;cryptlib.h;

#ifndef OPENSSL_NO_RC4

#include 《openssl/evp.h》

#include 《openssl/objects.h》

#include 《openssl/rc4.h》

/* FIXME: surely this is available elsewhere? */

#define EVP_SSF33_KEY_SIZE 16

typedef struct

{

RC4_KEY ks; /* working key */

} EVP_SSF33_KEY;

#define data(ctx) ((EVP_SSF33_KEY *)(ctx)-》cipher_data)

static int ssf33_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv,int enc);

static int ssf33_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, unsigned int inl);

static const EVP_CIPHER ssf33_evp_cipher=

{

NID_ssf33,

1,

EVP_SSF33_KEY_SIZE,

0,

EVP_CIPH_VARIABLE_LENGTH,

ssf33_init_key,

ssf33_cipher,

NULL,

sizeof(EVP_SSF33_KEY),

NULL,

NULL,

NULL,

NULL

};

const EVP_CIPHER *EVP_ssf33(void)

{

return(ssf33_evp_cipher);

}

static int ssf33_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc)

{

RC4_set_key(data(ctx)-》ks,EVP_CIPHER_CTX_key_length(ctx), key);

return 1;

}

static int ssf33_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, unsigned int inl)

{

RC4(data(ctx)-》ks,inl,in,out);

return 1;

}

#endif

4、修改crypto/evp/evp.h,添加对算法的声明,如下

const EVP_CIPHER *EVP_ssf33(void);

5、修改crypto/evp/c_allc.c,在OpenSSL_add_all_ciphers函数中使用EVP_add_cipher注册加密函数,如下

EVP_add_cipher(EVP_ssf33());

6、修改crypto/evp/Makefile,如下

以上就是Linux为OpenSSL添加自定义加密算法的技巧了,就是因为OpenSSL可以自定义加密算法,所以才让OpenSSL更加安全可靠。

相关文章

  • Linux如何使用OpenSSL命令行

    Linux如何使用OpenSSL命令行

    OpenSSL是一款命令行工具,Linux可使用OpenSSL进行一些命令行相关工作,那么Linux要如何使用OpenSSL命令行呢?下面小编将针对OpenSSL命令行的使用给大家做个详...
    2021-04-09 09.04.31

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。