[SNMP4J] Message processing model 3 returned error: 1405 for privacy AES192/AES256

~Kanagavelu~ skanagavelu at gmail.com
Tue Jun 21 14:54:17 CEST 2011


Hi Jochen,

Thanks for your input.

Yes.  The same code is working fine for AES256.
Attaching the code for reference.
Kindly let me know do i need to add any more lines to enable authentication.

import java.io.IOException;
import java.util.ArrayList;
import org.snmp4j.ScopedPDU;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.UserTarget;
import org.snmp4j.mp.MPv3;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.security.AuthMD5;
import org.snmp4j.security.Priv3DES;
import org.snmp4j.security.PrivAES256;
import org.snmp4j.security.SecurityLevel;
import org.snmp4j.security.SecurityModel;
import org.snmp4j.security.SecurityModels;
import org.snmp4j.security.SecurityProtocols;
import org.snmp4j.security.USM;
import org.snmp4j.security.UsmUser;
import org.snmp4j.smi.IpAddress;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.TimeTicks;
import org.snmp4j.smi.UdpAddress;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;
public class TrapSenderVersion3 {
 public static final ArrayList<UsmUser> usmUserList = new
ArrayList<UsmUser>();
 private Snmp snmp;
 private OctetString localEngineID;
 public TrapSenderVersion3() {
  int engineBoots = 0;
  localEngineID = new OctetString(MPv3.createLocalEngineID());
  USM usm = new USM(SecurityProtocols.getInstance(),
localEngineID,engineBoots);
  SecurityModels.getInstance().addSecurityModel(usm);
 }
 /**
  * The method will frame new V3 Trap and forward to Agent running on XP
  * machine
  */
 public void sendTrap_Version3() {
  TransportMapping transport;
  OctetString userName = new OctetString("MD5DES3");
  OctetString pwd = new OctetString("Password123");
  usmUserList.add(new UsmUser(userName, AuthMD5.ID, pwd, Priv3DES.ID, pwd));
  UsmUser usmUserArray[] = usmUserList.toArray(new
UsmUser[usmUserList.size()]);
  try {
   transport = new DefaultUdpTransportMapping();
   snmp = new Snmp(transport);
   snmp.getUSM().setUsers(usmUserArray);
   UserTarget target = new UserTarget();
   target.setAddress(new UdpAddress("10.120.7.107/10112"));
   target.setVersion(SnmpConstants.version3);
   target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
   target.setSecurityName(userName); //the user you want to send the trap
   target.setSecurityModel(SecurityModel.SECURITY_MODEL_USM);

   //Preparing for PDU
   ScopedPDU pdu = new ScopedPDU();
   pdu.add(new VariableBinding(SnmpConstants.sysUpTime, new
TimeTicks(1000)));
   pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID,
SnmpConstants.linkDown));// new OID(".1.3.6.1.2.1.1.8")));
   pdu.add(new VariableBinding(SnmpConstants.snmpTrapAddress, new
IpAddress("10.120.7.108")));

   //Sending the PDU
   pdu.setType(ScopedPDU.TRAP);
   snmp.send(pdu, target);
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 public static void main(String[] args) {
  TrapSenderVersion3 obj = new TrapSenderVersion3();
  obj.sendTrap_Version3();
 }
}



On Tue, Jun 21, 2011 at 5:16 PM, Jochen Katz <katz at agentpp.com> wrote:

> Hi,
>
> > org.snmp4j.MessageException: Message processing model 3 returned error:
> 1403
>
> SNMPv3_USM_UNSUPPORTED_SECURITY_LEVEL  = 1403;
> Are you sure that you used a user with authentication enabled?
>
> Regards
>  Jochen
>  _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> http://lists.agentpp.org/mailman/listinfo/snmp4j
>



More information about the SNMP4J mailing list