-
SNMP4j et clés locales
Bonjour,
Je viens de passer de la version 1.10 à la version 2.5.0 de snmp4j.
Jusqu'à présent mon appli utilise snmp (v3) de façon "classique" pour l'authentification et le cryptage, à savoir qu'on a une passphase pour auth et priv et que la clé de cryptage est fabriquée avec cette passphase et l'engine id reçu.
J'ai un nouveau besoin, à savoir que je voudrais directement donner la clé de cryptage et non pas qu'elle soit calculée dynamiquement. Un peu comme dans la commande sous linux :
snmpget -u myUser -n myContextName -v 3 -l authPriv -a SHA -3k a3f195ebf9390cca7b5cb193e52134852a287c5d -x AES -3K 03cee8d6123ed92b2aa3fba32152c8de 192.1.1.1 myOid
Mon problème est que je ne vois pas au niveau de quel objet je peux préciser ça.
Est ce que quelqu'un se serait déjà posé la question svp ?
Merci pour votre aide.
-
Bon, je pense avoir trouvé une solution. Je mets ici au cas où quelqu'un aurait le même besoin
AbstractTransportMapping transport;
transport = new DefaultUdpTransportMapping();
transport.setAsyncMsgProcessingSupported(false);
Snmp snmp = new Snmp(transport);
transport.listen();
USM usm = new USM(SecurityProtocols.getInstance(), new OctetString(MPv3.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);
byte[] engineID = snmp.discoverAuthoritativeEngineID(_target.getAddress(), _target.getTimeout());
snmp.getUSM().addLocalizedUser(engineID, securityName, authProtocol, authKey, privProtocol, privKey);
snmp.listen();
snmp.send(_pdu, _target);