在linux下怎么给openssl添加自定义加密算法
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》
#define EVP_SSF33_KEY_SIZE 16
typedef struct
{
RC4_KEY ks;
} 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更加安全可靠。
u盘修复的这些技巧你可能还不知道
平时好好使用的优盘,在今天拆入电脑后,电脑却提示无法识别的问题,而在优盘上的指示灯一直显示的是红色的状态。优盘里的信息和资料都是非常重要的,丢了会造成很大的麻烦。这可如何是好?其实,如果遇到这种问题,我们可以通过修复优盘的办法来解决哦。
详情2018-01-10 09:59:30责编:dj 来源:驱动管家怎么更改securecrt软件的默认的背景颜色
SecureCRT软件默认的背景颜色是黑色的,有些用户使用起来觉得黑色背景很压抑,但是又无奈自己不知道是否可以更改背景颜色。小编在这边告诉你,SecureCRT的背景颜色是可以改的,除了系统自带的颜色外还可以自定义颜色。
详情2018-01-02 17:04:24责编:dj 来源:驱动管家mac系统找不到蓝牙键盘的驱动程序怎么解决
mac找不到蓝牙设备该怎么办在使用蓝牙键盘鼠标等蓝牙设备的时候,mac系统有时候会找不到这些蓝牙设备,这是怎么回事?下面我们来看看mac找不到蓝牙键盘的解决办法,需要的朋友可以参考下
详情2018-01-06 15:28:08责编:dj 来源:驱动管家win7系统下还能这样查看控制面板命令
在Win7系统中,有很多的命令,可以方便用户使用操作,而自控制面板中,有非常多的应用,用户可以使用命令调出使用,那么这些命令是什么呢?其实这些命令都存储在电脑中,那么该怎么查看这些命令呢?下面和大家分享Win7系统查看控制面板命令的方法。
详情2018-01-02 17:04:13责编:dj 来源:驱动管家电脑在打开视频的时候提示web浏览器阻止activex控件怎么解决
在打开网页浏览的时候系统就会提示您的web浏览器已经阻止此站点不安全的activex安装,导致网页显示不正确无法观看视频,有关此问题的解决方法如下,如果你遇到了,请看看下面的方法
详情2018-01-14 11:16:45责编:dj 来源:驱动管家苹果发布的itunes你知道是什么吗?关于itunes的介绍
iTunes是什么?这估计是很多用户看到iTunes这个名称的第一反应,如果你不是苹果产品产品的使用者,不知道这个iTunes也是很正常的,iTunes是苹果公司推出的一款软件,那具体是什么软件呢?下面看详细介绍。
详情2018-01-05 09:04:48责编:dj 来源:驱动管家斜箭头怎么打?输入法怎么轻松打出斜箭头?
箭头符号怎么打?一些特殊的书写情况下,我们偶尔会用到箭头符号的指示,目前第三方工具是可以打开特殊箭头符号的,Win10系统微软输入法也有这个功能,那在QQ 搜狗输入法怎么打斜箭头符号呢?
详情2018-01-11 14:54:51责编:dj 来源:驱动管家电脑文件夹图标怎么设置成透明文件夹
可能很多伙伴不知道,文件夹其实可以设置成透明的,这样就可以保护自己的隐私啦,想想都觉得很有趣呢!那么,在Win10系统下要如何将文件夹图标变成透明的呢?
详情2018-01-08 16:03:18责编:dj 来源:驱动管家u盘读写速度慢怎么解决?这个妙招帮你提升u盘读写速度
经常看到有网友在各大IT论坛问,U盘传输速度慢怎么办?针对这个问题其实也有不同的解决方法,之前在一些很老的电脑中发现用手机在电脑中拷贝电脑出奇的慢,最后发现是电脑没有开启USB2 0导致的。
详情2018-01-10 15:00:11责编:dj 来源:驱动管家教你在win7系统下用最快捷的办法隐藏图标
电脑安装完软件会在桌面上显示很多图标,虽然这些图标有利于我们快速启动软件,但是有些用户不喜欢,于是就想隐藏图标。那么Win7系统怎么隐藏图标呢?其实很简单,下面就由小编教大家Win7系统隐藏图标的方法吧!
详情2018-01-15 14:44:29责编:dj 来源:驱动管家
- 太吓人了!iPhone6弯曲后会起火?
- 苹果笔记本可以玩qq游戏吗?苹果笔记本qq游戏大厅怎么下载?
- 谈谈csrf的攻击原理 什么是csrf?
- ae模板套用方法是什么?怎么短时间做出好的片头片尾?
- 关于修理打印机电源变压器的一些经验介绍
- win8系统的磁盘修复后无法打开是怎么回事
- 我的电脑不小心中了冰河木马有什么方法解决
- 魅族nfc功能是什么?魅族nfc功能怎么查看?
- iphone5 ios8越狱后会发热?如果出现发热现象怎么办?
- 中国工商银行账户怎么登录?中国工商银行账户登录方法
- 比特币怎么挖?比特币的获取方式是什么?
- 黑客入侵网站的途径及防御方法
- 手机追踪:通过消耗电量速度判断位置
- 无线网络为什么会受限制?无线网络受限制或无连接怎么办?
- 手机搜狗输入法可以用斗图吗?手机搜狗斗图表情怎么收藏?
- 3g无线路由器出现故障开不机怎么办
- 电脑检测到键盘驱动不兼容有哪些方法解决
- 用这个办法教你怎么用笔记本来当无线路由器
- 关于市面上的一些u盘修复工具的对比介绍
- 太奢华!黑钻定制版iphone7价格是多少?