openssl移植arm开发板

时间:2024-03-20 08:55:26

openssl移植arm开发板

一 准备

openssl压缩包

mini244开发板

二 移植步骤

step1 解压缩

# tar zvcf openssl-1.0.0s.tar.gz

# cd openssl-1.0.0s

step2 配置

# mkdir _install

# .config no-asm shared --prefix=/home/S4-DRIVER/project/part2/openssl-1.0.0s/_install/

(根据个人设置不同目录,最好用全路径)

step3 编译

# vim Makefile  修改配置文件(gcc->arm-linux-gcc等)

#make

#make install

openssl移植arm开发板

step4 链接库复制到开发板

openssl移植arm开发板


三 服务器、客户端编写

先编写不加密的tcp程序。

 1. 客户端

step1. SSL库初始化

放在socket创建之前

     SSL_library_init();
    OpenSSL_add_all_algorithms();
    SSL_load_error_strings();
    ctx = SSL_CTX_new(SSLv23_client_method());

step2. 创建、连接SSL

放在connect之后

     ssl = SSL_new(ctx);
     SSL_set_fd(ssl, sockclient);

     SSL_connect(ssl);

step3. 进行数据传输

write()/read()改为SSL_write()/SSL_read()

sockclient改为ssl

step4. 关闭连接

        SSL_shutdown(ssl);
    SSL_free(ssl);
    close(sockclient);//关闭socket

    SSL_CTX_free(ctx);

 2.  服务器

step1. SSL库初始化

放在socket创建之前

        SSL_library_init();  
        OpenSSL_add_all_algorithms();  

        SSL_load_error_strings();  

step2. 公钥、私钥以及数字证书的载入

放在SSL库初始化后

        SSL_CTX_use_certificate_file(ctx,"./ca.pem",SSL_FILETYPE_PEM);//载入数字证书
        SSL_CTX_use_PrivateKey_file(ctx,"./private.pem",SSL_FILETYPE_PEM);//载入私钥
        SSL_CTX_check_private_key(ctx);//检测私钥

step2. 创建、连接SSL

放在accept之后 

            ssl = SSL_new(ctx);
    SSL_set_fd(ssl,new_fd); //将SSL于scoket关联

    SSL_accept(ssl);

step3. 进行数据传输

write()/read()改为SSL_write()/SSL_read()

new_fd改为ssl

step4. 关闭连接

        SSL_shutdown(ssl);
     SSL_free(ssl);
     close(new_fd);//关闭socket