⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usmkeychange.java

📁 你个snmp的源码
💻 JAVA
字号:
/*_############################################################################
  _## 
  _##  SNMP4J-Agent - UsmKeyChange.java  
  _## 
  _##  Copyright 2005-2006  Frank Fock (SNMP4J.org)
  _##  
  _##  Licensed under the Apache License, Version 2.0 (the "License");
  _##  you may not use this file except in compliance with the License.
  _##  You may obtain a copy of the License at
  _##  
  _##      http://www.apache.org/licenses/LICENSE-2.0
  _##  
  _##  Unless required by applicable law or agreed to in writing, software
  _##  distributed under the License is distributed on an "AS IS" BASIS,
  _##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  _##  See the License for the specific language governing permissions and
  _##  limitations under the License.
  _##  
  _##########################################################################*/

package org.snmp4j.agent.mo.snmp;import org.snmp4j.agent.MOAccess;import org.snmp4j.smi.OctetString;import org.snmp4j.agent.request.SubRequest;import org.snmp4j.agent.mo.MOTableRow;import org.snmp4j.security.AuthenticationProtocol;import org.snmp4j.PDU;import org.snmp4j.security.PrivacyProtocol;public class UsmKeyChange extends KeyChange {  public static final int AUTH_KEY_CHANGE = 0;  public static final int PRIV_KEY_CHANGE = 1;  private int type;  public UsmKeyChange(int columnID,                      MOAccess access, int type) {    super(columnID, access, new OctetString(), true);    this.type = type;  }  public void prepare(SubRequest subRequest, MOTableRow row,                      MOTableRow changeSet, int column) {    super.prepare(subRequest, row, changeSet, column);    if (!subRequest.hasError()) {      UsmMIB.UsmTableRow usmRow = (UsmMIB.UsmTableRow)row;      int digestLength = getDigestLength(usmRow, changeSet);      if (digestLength <= 0) {        subRequest.completed();        return;      }      OctetString v =          (OctetString) subRequest.getVariableBinding().getVariable();      if (v.length() != digestLength) {        subRequest.getStatus().setErrorStatus(PDU.badValue);      }    }  }  protected int getDigestLength(UsmMIB.UsmTableRow row, MOTableRow changeSet) {    switch (type) {      case AUTH_KEY_CHANGE: {        AuthenticationProtocol a = row.getAuthProtocol(changeSet);        if (a != null) {          return a.getDigestLength() * 2;        }        break;      }      case PRIV_KEY_CHANGE: {        PrivacyProtocol p = row.getPrivProtocol(changeSet);        if (p != null) {          return p.getMaxKeyLength() * 2;        }        break;      }    }    return -1;  }  public void commit(SubRequest subRequest, MOTableRow row,                     MOTableRow changeSet, int column) {    int digestLength = getDigestLength((UsmMIB.UsmTableRow)row, changeSet);    if (digestLength > 0) {      super.commit(subRequest, row, changeSet, column);    }    else {      subRequest.completed();    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -