2014-03-18 57 views
1

我有一個SNMP v3的服務器上配置2個用戶(Cisco路由器):SharpSNMP:使用SNMP v3進行AES隱私

  1. 使用DES作爲保密方法的用戶(desuser
  2. 用戶使用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: TimeoutException

我可以在其他SNMP代理上同時使用這兩個用戶(aesuserdesuser),而沒有任何問題。使用AES 128時

  1. 什麼需要在命令行參數-x指定:

    請讓我知道?應該只是AESAES128

  2. 當我審查snmpget代碼(在結尾的鏈接),我注意到,分配給該命令行參數-x的值分配給被叫privacy變量。但是,在設置IPrivacyProvider對象時,此變量在代碼中以後不會使用。設置此對象時只有兩個可用的代碼路徑是DESPrivacyProviderDefaultPrivacyProvider。 (請參閱下面的代碼摘錄)不應該像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/

回答