https://ftp.openssl.org/source/ https://distfiles.macports.org/openssl/
1、openssl源码包下载
2、Ubuntu编译与安装openssl
# openssl库默认安装路径为:/usr/local/ssl/lib tar zxvf openssl-1.0.2q.tar.gz cd openssl-1.0.2q.tar.gz ./config -shared make sudo make install
3、交叉编译
./config no-asm shared no-async --prefix=$(pwd)/install --cross-compile-prefix=arm-linux-
no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程; shared: 生成动态连接库。 no-async: 交叉编译工具链没有提供GNU C的ucontext库 --prefix=: 安装路径 --cross-compile-prefix=: 交叉编译工具
make make install
4、写一个使用rc4加解密的程序测试一下
#ifndef _CRYPTOTEST_H_ #define _CRYPTOTEST_H_ typedef enum { GENERAL = 0, ECB, CBC, CFB, OFB, TRIPLE_ECB, TRIPLE_CBC }CRYPTO_MODE; //string DES_Encrypt(const string cleartext, const string key, CRYPTO_MODE mode); //string DES_Decrypt(const string ciphertext, const string key, CRYPTO_MODE mode); char * RC4_Encrypt(const char *cleartext, const char * key, int cleartextlen, int keylen); char * RC4_Decrypt(const char * ciphertext, const char * key, int cleartextlen, int keylen); #endif //_CRYPTOTEST_H_
#include "cryptotest.h" #include <string.h> #include <stdio.h> int main() { char cleartext[] = "中国北京12345$abcde%ABCDE@!!!"; char *ciphertext; char key[] = "beijingchina1234567890ABCDEFGH!!!"; ciphertext = RC4_Encrypt(cleartext, key, strlen(cleartext), strlen(key)); char * decrypt = RC4_Decrypt(ciphertext, key, strlen(cleartext), strlen(key)); printf("cleartext:%sn", cleartext); printf("genarate ciphertext:%sn", ciphertext); printf("src ciphertext:%sn", ciphertext); printf("genarate ciphertext:%sn", decrypt); if (strcmp(cleartext, decrypt) == 0) printf("RC4 crypto ok!!!n"); else printf("RC4 crypto error!!!n"); return 0; }
#include <stdlib.h> #include <openssl/rc4.h> #include <string.h> #include "cryptotest.h" char * RC4_Encrypt(const char *cleartext, const char * key, int cleartextlen, int keylen) { RC4_KEY rc4key; char* tmp = malloc(cleartextlen + 1); memset(tmp, 0, cleartextlen + 1); RC4_set_key(&rc4key, keylen, (const unsigned char*)key); RC4(&rc4key, cleartextlen, (const unsigned char*)cleartext, tmp); return tmp; } char * RC4_Decrypt(const char * ciphertext, const char * key, int cleartextlen, int keylen) { RC4_KEY rc4key; unsigned char* tmp = malloc(cleartextlen + 1); memset(tmp, 0, cleartextlen + 1); RC4_set_key(&rc4key, keylen, (const unsigned char*)key); RC4(&rc4key, cleartextlen, (const unsigned char*)ciphertext, tmp); return tmp; }
##################################################################### ## file : test makefile for build current dir .c ## ## author : jernymy ## ## date-time : 05/06/2010 ## ##################################################################### CC = gcc CPP = g++ RM = rm -rf ## debug flag DBG_ENABLE = 0 ## source file path SRC_PATH := . ## target exec file name TARGET := openssltest ## get all source files SRCS += $(wildcard $(SRC_PATH)/*.c) ## all .o based on all .c OBJS := $(SRCS:.c=.o) ## need libs, add at here LIBS := ssl crypto ## used headers file path INCLUDE_PATH := /home/linux/opt/openssl/include/ ## used include librarys file path LIBRARY_PATH := /home/linux/opt/openssl/lib/ ## debug for debug info, when use gdb to debug ifeq (1, ${DBG_ENABLE}) CFLAGS += -D_DEBUG -O0 -g -DDEBUG=1 endif ## get all include path CFLAGS += $(foreach dir, $(INCLUDE_PATH), -I$(dir)) ## get all library path LDFLAGS += $(foreach lib, $(LIBRARY_PATH), -L$(lib)) ## get all librarys LDFLAGS += $(foreach lib, $(LIBS), -l$(lib)) all: clean build build: $(CC) -c $(CFLAGS) $(SRCS) $(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(LDFLAGS) $(RM) $(OBJS) clean: $(RM) $(OBJS) $(TARGET)
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算