SSL/TLS

如果对SSL/TLS不是很熟悉,觉得各种证书很混乱,可以参照这篇文章生成证书

例程:demo/ssl

1. 枚举类型

1.1. SSL_Version_t

SSL/TLS版本

typedef enum{
    SSL_VERSION_SSLv3 = 0,
    SSL_VERSION_TLSv1    ,
    SSL_VERSION_TLSv1_1  ,
    SSL_VERSION_TLSv1_2  ,
    SSL_VERSION_MAX
}SSL_Version_t;

1.2. SSL_Error_t

错误信息

typedef enum{
    SSL_ERROR_NONE       =  0x00 ,
    SSL_ERROR_PARAM      = -0x01 ,
    SSL_ERROR_PARSE      = -0x02 ,
    SSL_ERROR_MALLOC_FAIL= -3    ,
    SSL_ERROR_CONNECTION = -4    ,
    SSL_ERROR_TIMEOUT    = -5    ,
    SSL_ERROR_FAIL       = -6    ,
    SSL_ERROR_INTERNAL           ,
    SSL_ERROR_MAX
} SSL_Error_t;

1.3. SSL_Verify_Mode_t

验证模式

typedef enum{
    SSL_VERIFY_MODE_NONE     = 0,
    SSL_VERIFY_MODE_OPTIONAL = 1,
    SSL_VERIFY_MODE_REQUIRED = 2,
    SSL_VERIFY_MODE_MAX
}SSL_Verify_Mode_t;

2. 结构体类型

2.1. SSL_Config_t

SSL/TLS配置

typedef struct{
    const char*       caCert;
    const char*       caCrl;
    const char*       clientCert;
    const char*       clientKey;
    const char*       clientKeyPasswd;
    const char*       hostName;
    SSL_Version_t     minVersion;
    SSL_Version_t     maxVersion;
    SSL_Verify_Mode_t verifyMode;
    const char*       entropyCustom;     //自定义混淆字符
    //////////////////////////////////
    void* obj;//do not edit it
    //////////////////////////////////
} SSL_Config_t;

3. 功能函数

3.1. SSL_Init

SSL_Error_t SSL_Init(SSL_Config_t* sslConfig);
功能

初始化SSL/TLS

参数
  • sslConfig:初始化配置参数
返回值
  • 返回错误信息

3.2. SSL_Connect

SSL_Error_t SSL_Connect(SSL_Config_t* sslConfig, const char* server, const char* port);
功能

用SSL/TLS协议连接服务器

参数
  • sslConfig:SSL/TLS配置信息
  • server:需要连接的SSL/TLS服务器
  • port:服务器端口
返回值
  • 返回错误信息

3.3. SSL_Write

int SSL_Write(SSL_Config_t* sslConfig, uint8_t* data, int length, int timeoutMs);
功能

SSL/TLS发送数据(阻塞)

参数
  • sslConfig:SSL/TLS配置
  • data:发送给服务器的数据
  • length:发送给服务器的数据的长度
  • timeoutMs:发送超时时间(保留,暂不可用)
返回值
  • 成功发送的数据长度或错误代码

3.4. SSL_Read

int SSL_Read(SSL_Config_t* sslConfig, uint8_t* data, int length, int timeoutMs);
功能

读取数据

参数
  • sslConfig:SSL/TLS配置
  • data:接收到的数据
  • length:接收到的数据的长度
  • timeoutMs:接收超时时间
返回值
  • 成功接收的数据长度或者错误代码

3.5. SSL_Close

SSL_Error_t SSL_Close(SSL_Config_t* sslConfig);
功能

关闭连接

参数
  • sslConfig:SSL/TLS配置
返回值
  • 关闭错误信息

3.6. SSL_Destroy

SSL_Error_t SSL_Destroy(SSL_Config_t* sslConfig);
功能

释放SSL/TLS占用的空间

参数
  • sslConfig:SSL/TLS配置
返回值
  • 释放错误信息

results matching ""

    No results matching ""