日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux為OpenSSL添加自定義加密算法的技巧

Linux系統(tǒng)OpenSSL是一套密碼庫系統(tǒng) , 所以Linux系統(tǒng)使用OpenSSL的過程中 , 就一定會涉及給OpenSSL添加加密算法 , 本文就來介紹一下Linux為OpenSSL添加自定義加密算法的技巧 。
一、簡介
本文以添加自定義算法EVP_ssf33為例 , 介紹在OpenSSL中添加自定義加密算法的方法
二、步驟
1、修改crypto/object/objects.txt , 注冊算法OID , 如下:
rsadsi 3 255: SSF33: ssf33
2、進(jìn)入目錄:crypto/object/ , 執(zhí)行如下命令 , 生成算法的聲明
perl objects.pl objects.txt obj_mac.num obj_mac.h
3、在crypto/evp/下添加e_ssf33.c , 內(nèi)容如下
#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;
}
【Linux為OpenSSL添加自定義加密算法的技巧】 #endif上一頁12下一頁 剩下全文

    推薦閱讀