Module org.snmp4j

Class Priv3DES

  • All Implemented Interfaces:
    java.io.Serializable, PrivacyProtocol, SecurityProtocol

    public class Priv3DES
    extends PrivacyGeneric
    Privacy protocol class for Triple DES (DESEDE). This class uses DES-EDE in CBC mode to encrypt the data. The protocol is defined by the Internet Draft 'Extension to the User-Based Security Model (USM) to Support Triple-DES EDE in "Outside" CBC Mode'.
    Since:
    1.9
    Version:
    2.2.2
    Author:
    Frank Fock, Jochen Katz
    See Also:
    Serialized Form
    • Field Detail

      • ID

        public static final OID ID
        Unique ID of this privacy protocol.
      • salt

        protected Salt salt
    • Constructor Detail

      • Priv3DES

        public Priv3DES()
    • Method Detail

      • encrypt

        public byte[] encrypt​(byte[] unencryptedData,
                              int offset,
                              int length,
                              byte[] encryptionKey,
                              long engineBoots,
                              long engineTime,
                              DecryptParams decryptParams)
        Description copied from interface: PrivacyProtocol
        Encrypts a message using a given encryption key, engine boots count, and engine ID.
        Parameters:
        unencryptedData - the unencrypted data. This byte array may contain leading and trailing bytes that will not be encrypted.
        offset - the offset into the unencryptedData where to start encryption.
        length - the length of the substring starting at offset to encrypt.
        encryptionKey - the key to be used for encryption.
        engineBoots - the engine boots counter to use.
        engineTime - the engine time to use.
        decryptParams - returns the decryption parameters needed to decrypt the data that has been encrypted by this method.
        Returns:
        the encrypted copy of unencryptedData.
      • decrypt

        public byte[] decrypt​(byte[] cryptedData,
                              int offset,
                              int length,
                              byte[] decryptionKey,
                              long engineBoots,
                              long engineTime,
                              DecryptParams decryptParams)
        Description copied from interface: PrivacyProtocol
        Decrypts a message using a given decryption key, engine boots count, and engine ID.
        Parameters:
        cryptedData - the crypted data. This byte array may contain leading and trailing bytes that will not be decrypted.
        offset - the offset into the cryptedData where to start encryption.
        length - the length of the substring starting at offset to decrypt.
        decryptionKey - the key to be used for decryption.
        engineBoots - the engine boots counter to use.
        engineTime - the engine time to use.
        decryptParams - contains the decryption parameters.
        Returns:
        the decrypted data, or null if decryption failed.
      • getID

        public OID getID()
        Gets the OID uniquely identifying the privacy protocol.
        Returns:
        an OID instance.
      • getEncryptedLength

        public int getEncryptedLength​(int scopedPDULength)
        Description copied from interface: PrivacyProtocol
        Gets the length of a scoped PDU when encrypted with this security protocol.
        Parameters:
        scopedPDULength - the length of the (unencrypted) scoped PDU.
        Returns:
        the length of the encrypted scoped PDU.
      • getMinKeyLength

        public int getMinKeyLength()
        Description copied from interface: PrivacyProtocol
        Gets the minimum key size for this privacy protocol.
        Returns:
        the minimum key size for this privacy protocol.
      • getDecryptParamsLength

        public int getDecryptParamsLength()
        Description copied from interface: PrivacyProtocol
        Gets the length of the decryption parameters used by this security protocol.
        Returns:
        a positive integer denoting the length of decryption parameters returned by this security protocol.
      • getMaxKeyLength

        public int getMaxKeyLength()
        Description copied from interface: PrivacyProtocol
        Gets the maximum key size for this privacy protocol.
        Returns:
        the minimum key size for this privacy protocol.
      • extendShortKey

        public byte[] extendShortKey​(byte[] shortKey,
                                     OctetString password,
                                     byte[] engineID,
                                     AuthenticationProtocol authProtocol)
        Description copied from interface: PrivacyProtocol
        Extend a localized key that is too short. Some privacy protocols require a key that is longer than the key generated by the password-to-key algorithm of the authentication protocol. This function extends a short key to the required length.
        Parameters:
        shortKey - the short key that was generated using AuthenticationProtocol.passwordToKey(org.snmp4j.smi.OctetString, byte[]) function.
        password - the password to use for key extension.
        engineID - the SNMP engine ID of the authoritative engine.
        authProtocol - the authentication protocol that should be used.
        Returns:
        the extended key or shortKey if no extension is needed.