gSOAP-有没有办法指定soap\u wsse\u add\u UsernameTokenDigest的时间?

gSOAP-有没有办法指定soap\u wsse\u add\u UsernameTokenDigest的时间?,gsoap,onvif,wsse,Gsoap,Onvif,Wsse,我正在尝试使用gSOAP与支持的网络摄像头进行对话,我需要一种方法来指定soap_wsse_add_UsernameTokenDigest在散列密码时使用的时间 目前,我无法确保相机和我的客户都有正确的NTP时间同步。因此,我希望采用类似工具所使用的方法,并简单地对生成UsernameToken所用的时间应用偏移量。相机的日期/时间可以在无需身份验证的情况下检索,因此计算这样的偏移量很简单 我的问题是,除了计算密码哈希的当前时间之外,我看不到任何方法可以让soap\u wsse\u add\u

我正在尝试使用gSOAP与支持的网络摄像头进行对话,我需要一种方法来指定soap_wsse_add_UsernameTokenDigest在散列密码时使用的时间

目前,我无法确保相机和我的客户都有正确的NTP时间同步。因此,我希望采用类似工具所使用的方法,并简单地对生成UsernameToken所用的时间应用偏移量。相机的日期/时间可以在无需身份验证的情况下检索,因此计算这样的偏移量很简单

我的问题是,除了计算密码哈希的当前时间之外,我看不到任何方法可以让soap\u wsse\u add\u UsernameTokenDigest使用任何东西


除了更改系统时钟之外,还有什么方法可以更改soap\u wsse\u add\u usernameTokedigest使用的时间吗?

看看soap\u wsse\u add\u usernameTokedigest的源代码就可以回答这个问题:没有,没有办法指定时间或偏移量,因为它只是直接调用时间(NULL)


因此,我的选择是修改soap\u wsse\u add\u UsernameTokenDigest,自己计算哈希值并调用soap\u wsse\u add\u UsernameTokenText,或者找到某种方法来确保时间同步。

我建议与gSOAP开发人员发布一篇文章。实现一个额外的API调用,将时间作为参数传递,而不是使用当前时间,应该是相当容易的。我这样做了,但事实证明它已经在2.8.49中添加为“soap\u wsse\u add\u UsernameTokenDigest\u at”。我的速度太慢了。阻力最小的途径是在我的代码中创建一个修改过的soap\u wsse\u add\u UsernameTokenDigest副本。