我有一個SNMP v3的服務器上配置2個用戶(Cisco路由器):SharpSNMP:使用SNMP v3進行AES隱私
- 使用DES作爲保密方法的用戶(
desuser
) - 用戶使用AES 128作爲隱私法(
aesuser
)
加密密碼和兩者的使用者設定爲相同的認證密碼:12345678
用於測試目的。
使用下面鏈接中的代碼(問題結束時),我能夠使用DES
作爲隱私方法執行SNMP v3查詢。爲此,我使用以下命令行參數:
-v=3 -l=authPriv -a=MD5 -A=12345678 -x=DES -X=12345678 -u=desuser 10.10.10.1 1.3.6.1.2.1.2.2.1.7.1
以上工作沒有任何問題。
我然後試圖通過改變隱私的方法和在命令行上的用戶使用AES 128
作爲隱私方法如下參數數量:
-v=3 -l=authPriv -a=MD5 -A=12345678 -x=AES -X=12345678 -u=aesuser 10.10.10.1 1.3.6.1.2.1.2.2.1.7.1
這導致一個TimeoutException:
我可以在其他SNMP代理上同時使用這兩個用戶(aesuser
和desuser
),而沒有任何問題。使用AES 128時
什麼需要在命令行參數
-x
指定:請讓我知道?應該只是
AES
或AES128
?當我審查
snmpget
代碼(在結尾的鏈接),我注意到,分配給該命令行參數-x
的值分配給被叫privacy
變量。但是,在設置IPrivacyProvider
對象時,此變量在代碼中以後不會使用。設置此對象時只有兩個可用的代碼路徑是DESPrivacyProvider
和DefaultPrivacyProvider
。 (請參閱下面的代碼摘錄)不應該像AESPrivacyProvider
那樣可以在代碼上啓用AES隱私方法嗎?從snmpget
項目的Program.vb
代碼片段:
Dim priv As IPrivacyProvider
If ((level And Levels.Privacy) = Levels.Privacy) Then
priv = New AESPrivacyProvider(New OctetString(privPhrase), auth)
Else
priv = New DefaultPrivacyProvider(auth)
End If
https://github.com/lextm/sharpsnmplib/blob/master/Samples/VB.NET/snmpget/