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

📄 usmsecurityparameters.java

📁 snmp hibernate 源码, 类似hibernate的映射.
💻 JAVA
字号:
/*_############################################################################  _##   _##  SNMP4J - UsmSecurityParameters.java    _##   _##  Copyright 2003-2006  Frank Fock and Jochen Katz (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.security;import java.io.*;import org.snmp4j.asn1.*;import org.snmp4j.asn1.BER.*;import org.snmp4j.smi.*;import org.snmp4j.security.SecurityLevel;public class UsmSecurityParameters implements SecurityParameters {  private static final int MAX_BER_LENGTH_WITHOU_SEC_PARAMS =      32+2+ 6 + 6 + 32+2;  private OctetString authoritativeEngineID = new OctetString();  private Integer32 authoritativeEngineBoots = new Integer32();  private Integer32 authoritativeEngineTime = new Integer32();  private OctetString userName = new OctetString();  private AuthenticationProtocol authenticationProtocol = null;  private PrivacyProtocol privacyProtocol = null;  private byte[] authenticationKey;  private byte[] privacyKey;  private OctetString privacyParameters = new OctetString();  private OctetString authenticationParameters = new OctetString();  private int securityParametersPosition = -1;  private int authParametersPosition = -1;  private int decodedLength = -1;  public UsmSecurityParameters() {  }  public UsmSecurityParameters(OctetString authoritativeEngineID,                               Integer32 authoritativeEngineBoots,                               Integer32 authoritativeEngineTime,                               OctetString userName,                               AuthenticationProtocol authenticationProtocol,                               PrivacyProtocol privacyProtocol) {    this.authoritativeEngineID = authoritativeEngineID;    this.authoritativeEngineBoots = authoritativeEngineBoots;    this.authoritativeEngineTime = authoritativeEngineTime;    this.privacyProtocol = privacyProtocol;    this.userName = userName;    this.authenticationProtocol = authenticationProtocol;  }  public byte[] getAuthoritativeEngineID() {    return authoritativeEngineID.getValue();  }  public void setAuthoritativeEngineID(byte[] authoritativeEngineID) {    if (authoritativeEngineID == null) {      throw new NullPointerException("Authoritative engine ID must not be null");    }    this.authoritativeEngineID.setValue(authoritativeEngineID);  }  public void setAuthoritativeEngineBoots(int authoritativeEngineBoots) {    this.authoritativeEngineBoots.setValue(authoritativeEngineBoots);  }  public int getAuthoritativeEngineBoots() {    return authoritativeEngineBoots.getValue();  }  public void setAuthoritativeEngineTime(int authoritativeEngineTime) {    this.authoritativeEngineTime.setValue(authoritativeEngineTime);  }  public int getAuthoritativeEngineTime() {    return authoritativeEngineTime.getValue();  }  public void setUserName(org.snmp4j.smi.OctetString userName) {    this.userName = userName;  }  public org.snmp4j.smi.OctetString getUserName() {    return userName;  }  public void setAuthenticationProtocol(AuthenticationProtocol authenticationProtocol) {    this.authenticationProtocol = authenticationProtocol;  }  public AuthenticationProtocol getAuthenticationProtocol() {    return authenticationProtocol;  }  public void setPrivacyProtocol(PrivacyProtocol privacyProtocol) {    this.privacyProtocol = privacyProtocol;  }  public PrivacyProtocol getPrivacyProtocol() {    return privacyProtocol;  }  public int getBERLength() {    int length = getBERPayloadLength();    return length + BER.getBERLengthOfLength(length) + 1;  }  public int getBERPayloadLength() {    int length = getBERUsmPayloadLength();    length += BER.getBERLengthOfLength(length)+1;    return length;  }  public void decodeBER(BERInputStream inputStream) throws IOException {    int pos = (int)inputStream.getPosition();    this.decodedLength = pos;    MutableByte mutableByte = new MutableByte();    int octetLength = BER.decodeHeader(inputStream, mutableByte);    long startPos = inputStream.getPosition();    if (mutableByte.getValue() != BER.OCTETSTRING) {      /**@todo logging */      throw new IOException("Expected BER OCTETSTRING but found: "+mutableByte.getValue());    }    int length = BER.decodeHeader(inputStream, mutableByte);    if (mutableByte.getValue() != BER.SEQUENCE) {      /**@todo logging */      throw new IOException("Expected BER SEQUENCE but found: "+mutableByte.getValue());    }    authoritativeEngineID.decodeBER(inputStream);    authoritativeEngineBoots.decodeBER(inputStream);    authoritativeEngineTime.decodeBER(inputStream);    userName.decodeBER(inputStream);    this.authParametersPosition = (int)(inputStream.getPosition() - pos);    pos = (int)inputStream.getPosition();    authenticationParameters.decodeBER(inputStream);    this.authParametersPosition +=        (inputStream.getPosition() - pos) -        authenticationParameters.getBERPayloadLength();    privacyParameters.decodeBER(inputStream);    this.decodedLength = (int) (inputStream.getPosition() - decodedLength);    if (BER.isCheckSequenceLength()) {      // check length      BER.checkSequenceLength(octetLength,                              (int) (inputStream.getPosition() - startPos),                              this);    }  }  private int getBEREncodedAuthParamsPosition() {    int length = getBERLength()-        (authenticationParameters.getBERPayloadLength() +         privacyParameters.getBERLength());    return length;  }  public void encodeBER(OutputStream outputStream) throws IOException {    BER.encodeHeader(outputStream, BER.OCTETSTRING, getBERPayloadLength());    BER.encodeHeader(outputStream, BER.SEQUENCE, getBERUsmPayloadLength());    authoritativeEngineID.encodeBER(outputStream);    authoritativeEngineBoots.encodeBER(outputStream);    authoritativeEngineTime.encodeBER(outputStream);    userName.encodeBER(outputStream);    authenticationParameters.encodeBER(outputStream);    privacyParameters.encodeBER(outputStream);  }  /**   * getBERUsmPayloadLength   *   * @return int   */  public int getBERUsmPayloadLength() {    int length = authoritativeEngineID.getBERLength();    length += authoritativeEngineBoots.getBERLength();    length += authoritativeEngineTime.getBERLength();    length += userName.getBERLength();    length += authenticationParameters.getBERLength();    length += privacyParameters.getBERLength();    return length;  }  public int getBERMaxLength(int securityLevel) {    SecurityProtocols secProtocol = SecurityProtocols.getInstance();    int securityParamsLength = 2;    if (securityLevel > SecurityLevel.NOAUTH_NOPRIV) {      securityParamsLength = secProtocol.getMaxAuthDigestLength() +          BER.getBERLengthOfLength(secProtocol.getMaxAuthDigestLength()) + 1;      if (securityLevel == SecurityLevel.AUTH_PRIV) {        securityParamsLength += secProtocol.getMaxPrivDecryptParamsLength() +            BER.getBERLengthOfLength(secProtocol.getMaxPrivDecryptParamsLength())            + 1;      }    }    return MAX_BER_LENGTH_WITHOU_SEC_PARAMS + securityParamsLength +        BER.getBERLengthOfLength(MAX_BER_LENGTH_WITHOU_SEC_PARAMS +                                 securityParamsLength) + 1;  }  public byte[] getAuthenticationKey() {    return authenticationKey;  }  public void setAuthenticationKey(byte[] authenticationKey) {    this.authenticationKey = authenticationKey;  }  public byte[] getPrivacyKey() {    return privacyKey;  }  public void setPrivacyKey(byte[] privacyKey) {    this.privacyKey = privacyKey;  }  public org.snmp4j.smi.OctetString getPrivacyParameters() {    return privacyParameters;  }  public void setPrivacyParameters(org.snmp4j.smi.OctetString privacyParameters) {    this.privacyParameters = privacyParameters;  }  public org.snmp4j.smi.OctetString getAuthenticationParameters() {    return authenticationParameters;  }  public void setAuthenticationParameters(org.snmp4j.smi.OctetString authenticationParameters) {    this.authenticationParameters = authenticationParameters;  }  public int getSecurityParametersPosition() {    return securityParametersPosition;  }  public void setSecurityParametersPosition(int securityParametersPosition) {    this.securityParametersPosition = securityParametersPosition;  }  public int getAuthParametersPosition() {    if (authParametersPosition >= 0) {      return authParametersPosition;    }    else {      return getBEREncodedAuthParamsPosition();    }  }  /**   * getScopedPduPosition   *   * @return int   */  public int getScopedPduPosition() {    if (decodedLength >= 0) {      return decodedLength + getSecurityParametersPosition();    }    else {      return getSecurityParametersPosition()+getBERLength();    }  }}

⌨️ 快捷键说明

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