内容 |
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) 40. 时间如轮盘流转,爱情在酒影中烙印分离的宿命;光阴似流星飞逝,伤口在烟雾中凝结痛楚的疤痕。也许下站就是幸福。 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 上一页12下一页 剩下全文 Linux为OpenSSL添加自定义加密算法的技巧积少成多百问道于盲里挑一29. 女儿抬起头望着远方延伸的长路,轻扬着僵硬的嘴角,又望着身边的老母亲,幸福满足的继续挪移着脚步,我应该感到那步子是坚定而轻盈的。40. As a proverb says, /( As is well known to us,) storms make trees take deeper roots.206.天街小雨润如酥,草色遥看近却无。《早春》 郊原初过雨,风数叶零乱,风定犹舞。斜阳挂深树,映浓愁浅黛。遥山媚妩。来时旧路,尚岩花、娇黄半吐。到今日惟有、溪边流水,见人如故。白日登山望烽火,黄昏饮马傍交河。linux加密算法,linuxopenssl使用18.well begun,half done. 好的开始等于成功的一半。 |