本模块是用来建立与TA端的通信,首先从命令行传入用户名和密码,然后传给TA端,TA端返回用来身份认证的信息,client端保存在本地,以用户名作为文件名。
1.调用get_sec_param(&client_info),将用户名密码传递给TA,TA返回信息。
1.1 使用socket通信,第一步建立连接 connect_serv()
1.2 调用creat_params(),该函数调用了Diffman.c里面的两个函数
1.3 然后send里面,先将用户名与密码传递给TA端,然后得到一个 Public value。给TA,收到的应该是证书一类,对安全的只是不是很懂。
1.4 creat_Session_Key_C()这个是创建协商秘钥,TA端用来加密,Client端收到的信息需要调用sessionkey来解密,才能收到正确的数据。
1.5 然后接受到证书。
1.6 调用aes的函数,解密。 将创建的安全参数结构体 sec_param返回给调用处。
这里应该得到了完整的数字证书一类的。
2 调用save_sign_key(user_name,sec_param),这里sec_param就是上面一个函数的结果。
这个函数的作用就是将上面得到的这些数字证书一类的保存起来。文件名就是用户名。创建一个这样的文件。
Get_key.c模块结束。