2017-04-17 12 views
1

ONVIFをサポートするネットワークカメラと通信するためにgSOAPを使用しようとしています。パスワードをハッシュするときにsoap_wsse_add_UsernameTokenDigestが使用する時間を指定する方法が必要です。gSOAP - soap_wsse_add_UsernameTokenDigestの時刻を指定する方法はありますか?

現時点では、カメラとクライアントの両方に適切なNTPタイムシンクがあることを保証することができません。したがって、私はpython-onvifのようなツールで使用されているアプローチを採用し、UsernameTokenの生成に使用された時間にオフセットを適用するだけです。カメラの日付/時刻は認証なしで取得できるので、そのようなオフセットの計算は簡単です。

私の問題は、パスワードハッシュを計算する際に現在時刻以外のものを使用するような方法はないと私は思っています。

システムクロックを変更することなくsoap_wsse_add_UsernameTokenDigestが使用する時刻を変更する方法はありますか?

+0

gSOAP開発者に[機能リクエスト](https://sourceforge.net/p/gsoap2/feature-requests/)を投稿することをお勧めします。現在の時刻を使用する代わりに、パラメータとして時刻を渡す追加のAPI呼び出しを実装するのはかなり簡単です。 –

+0

私はそれをしましたが、すでに2.8.49で 'soap_wsse_add_UsernameTokenDigest_at'として追加されています。私のところでは遅すぎる。 –

答えて

0

そして、soap_wsse_add_UsernameTokenDigestのソースコードを見ると、いいえ、時刻(NULL)を直接呼び出しているだけなので、時刻やオフセットを指定する方法はありません。

soap_wsse_add_UsernameTokenDigestを変更し、ハッシュを自分で計算し、soap_wsse_add_UsernameTokenTextを呼び出したり、時間同期を保証する方法を探したりすることができます。

+0

最小抵抗のパスが、コード内でsoap_wsse_add_UsernameTokenDigestの変更コピーを作成していることが判明しました。 –

関連する問題