微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > http client demo启用安全连接问题

http client demo启用安全连接问题

时间:10-02 整理:3721RD 点击:

以下代码都怎么嵌入到程序呢?

SlDateTime_t dt;
struct HTTPCli_SecureParams sparams; //  这两个是函数声明?

/* Set current Date to validate certificate */
dt.sl_tm_day = DATE;
dt.sl_tm_mon = MONTH;
dt.sl_tm_year = YEAR;
dt.sl_tm_hour = HOUR;
dt.sl_tm_min = MINUTE;
dt.sl_tm_sec = SECOND;
sl_DevSet(SL_DEVICE_GENERAL_CONFIGURATION,
SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME,
sizeof(SlDateTime_t), (unsigned char *)(&dt));   



/* Security parameters */
sparams.method.secureMethod = SL_SO_SEC_METHOD_TLSV1_2;
sparams.mask.secureMask = SL_SEC_MASK_TLS_RSA_WITH_AES_256_CBC_SHA;
strncpy(sparams.cafile, SL_SSL_CA_CERT, sizeof(SL_SSL_CA_CERT));
sparams.privkey[0] = 0;
sparams.cert[0] = 0;
sparams.dhkey[0] = 0;
HTTPCli_setSecureParams(&sparams);

struct是结构体,这两个不是函数声明,你查一下,这个结构体初始定义在哪里,然后找一下,推荐你看一下http://blog.csdn.net/snlying/article/details/2887778

看一下c语言课本 typedef 和 struct 的使用就可以了,移植起来非常简单

C 原则是 先定义 再使用   

这个是关于时钟的变量的定义,具体怎么移植需要看你程序中用的函数

根据C语言的函数语法规则使用

SlDateTime_t dt; /*是表示记录时间的数据结构,包括年、月、日、时、分、秒以及占用的存储空间大小等!可以在软件中查找SlDateTime_t数据的详细定义!*/

 dt.sl_tm_day = DATE;

 dt.sl_tm_mon = MONTH;

dt.sl_tm_year = YEAR;

dt.sl_tm_hour = HOUR;

dt.sl_tm_min = MINUTE;

dt.sl_tm_sec = SECOND;  

struct HTTPCli_SecureParams sparams; ///是个明显的结构体变量参数定义

 

谢谢各位

 ,换成这个传输通道后  SL_SSL_CA_CERT没有定义? 怎么写  谢谢

建议下载官方的完整软件库然后安装在默认路径的目录下。

SlDateTime_t dt;
struct HTTPCli_SecureParams sparams; //  

以上两句是定义dt 和sparams分别为SlDateTime_t 、HTTPCli_SecureParams 这样的结构体变量。这两个结构体变量在下面的函数中使用了。前者是时间日期的变量,后者是HTTP的相关参数变量。比如下文程序中 dt.***   和sparams。****

/* Set current Date to validate certificate */
dt.sl_tm_day = DATE;
dt.sl_tm_mon = MONTH;
dt.sl_tm_year = YEAR;
dt.sl_tm_hour = HOUR;
dt.sl_tm_min = MINUTE;
dt.sl_tm_sec = SECOND;
sl_DevSet(SL_DEVICE_GENERAL_CONFIGURATION,
SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME,
sizeof(SlDateTime_t), (unsigned char *)(&dt));   



/* Security parameters */
sparams.method.secureMethod = SL_SO_SEC_METHOD_TLSV1_2;
sparams.mask.secureMask = SL_SEC_MASK_TLS_RSA_WITH_AES_256_CBC_SHA;
strncpy(sparams.cafile, SL_SSL_CA_CERT, sizeof(SL_SSL_CA_CERT));
sparams.privkey[0] = 0;
sparams.cert[0] = 0;
sparams.dhkey[0] = 0;
HTTPCli_setSecureParams(&sparams);

建议楼主还是下载对应版本的Lwip协议例程。这样看懂怎么接受和发送数据即可。不必细究每个函数体,因为这个协议比较复杂 的

struct 属于结构体类名,相当于是将一整个数据打包,这样方便操作啊,typdef是对数据类型的重命名,楼主百度一下,这些用法都是有的!

第一个应该是typedef struct定义过的类型,从头文件里找,肯定有它的定义,,看名字是时间格式结构体类型。第一句在这儿是一个结构体类型变量定义,放在需要的地方就好啊,,就相当于一个普通的电量定义。

第二个同理只不过没有用typedef定义过,在头文件中。

我使用的是官方的SDK和官方给的安全通道代码,为什么会显示没定义的呢?

建议还是先搞明白关于结构体和函数的定义与声明,函数声明定义了,就可以在你的程序里面调用了

调用子程序要在主程序前面先定义

应该是结构体定义,或者说结构体进行实例化吧。 要嵌入到程序里面的话,前面的可以放在头文件。后面的可以使用一个化函数进行调用。如下,然后你就在你的程序里面调用这个init函数就可以了

SlDateTime_t dt;
struct HTTPCli_SecureParams sparams; // 这两个是函数声明?

/* Set current Date to validate certificate */
void init(void)
{
dt.sl_tm_day = DATE;
dt.sl_tm_mon = MONTH;
dt.sl_tm_year = YEAR;
dt.sl_tm_hour = HOUR;
dt.sl_tm_min = MINUTE;
dt.sl_tm_sec = SECOND;
sl_DevSet(SL_DEVICE_GENERAL_CONFIGURATION,
SL_DEVICE_GENERAL_CONFIGURATION_DATE_TIME,
sizeof(SlDateTime_t), (unsigned char *)(&dt));

/* Security parameters */
sparams.method.secureMethod = SL_SO_SEC_METHOD_TLSV1_2;
sparams.mask.secureMask = SL_SEC_MASK_TLS_RSA_WITH_AES_256_CBC_SHA;
strncpy(sparams.cafile, SL_SSL_CA_CERT, sizeof(SL_SSL_CA_CERT));
sparams.privkey[0] = 0;
sparams.cert[0] = 0;
sparams.dhkey[0] = 0;
HTTPCli_setSecureParams(&sparams);
}

struct是C中的结构体,这里这个函数是包括了“年,月,日,时,分秒,星期”,要想调用,得先声明,定义。可以把这两段加在包含文件中。

先定义,再使用!

c中的使用规则无论变量或函数都是先定义再使用。

一般在.h文件中定义相关构造类型,如结构体。共用体等类型

在.c文件中定义相关的变量或功能函数。

若1.c文件中定义的变量或函数需要在2.c文件中使用的话,那么在1.h中声明相对应的变量和函数,

然后在2.c中使用#include  “1.h”即可。

 

 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top