我尝试使用gSOAP与支持ONVIF的网络摄像头对话,我需要一种方法来指定soap_wsse_add_UsernameTokenDigest在哈希密码时使用的时间。
目前我无法确保相机和我的客户端都有正确的NTP时间同步。因此,我想采用像python-onvif这样的工具使用的方法,并简单地将偏移应用于生成UsernameToken的时间。无需验证即可检索相机的日期/时间,因此计算这样的偏移量是微不足道的。
我的问题是我无法找到任何方法让soap_wsse_add_UsernameTokenDigest使用除计算密码哈希值之外的当前时间。
有没有办法改变soap_wsse_add_UsernameTokenDigest使用的时间,而不是更改系统时钟?
答案 0 :(得分:0)
看看soap_wsse_add_UsernameTokenDigest的源代码回答了这个问题:不,没有办法指定那个时间或偏移量,因为它只是直接调用时间(NULL)。
所以我的选择是修改soap_wsse_add_UsernameTokenDigest,自己计算哈希值并调用soap_wsse_add_UsernameTokenText,或找到一些方法来确保时间同步。