/* * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.java.sip.communicator.impl.media.transform.srtp; /** * SRTPPolicy holds the SRTP encryption / authentication policy of a SRTP * session. * * @author Bing SU (nova.su@gmail.com) */ public class SRTPPolicy { /** * Null Cipher, does not change the content of RTP payload */ public final static int NULL_ENCRYPTION = 0; /** * Counter Mode AES Cipher, defined in Section 4.1.1, RFC3711 */ public final static int AESCM_ENCRYPTION = 1; /** * F8 mode AES Cipher, defined in Section 4.1.2, RFC 3711 */ public final static int AESF8_ENCRYPTION = 2; /** * Null Authentication, no authentication */ public final static int NULL_AUTHENTICATION = 0; /** * HMC SHA1 Authentication, defined in Section 4.2.1, RFC3711 */ public final static int HMACSHA1_AUTHENTICATION = 1; /** * SRTP encryption type */ private int encType; /** * SRTP encryption key length */ private int encKeyLength; /** * SRTP authentication type */ private int authType; /** * SRTP authentication key length */ private int authKeyLength; /** * SRTP authentication tag length */ private int authTagLength; /** * SRTP salt key length */ private int saltKeyLength; /** * Construct a SRTPPolicy object based on given parameters. * This class acts as a storage class, so all the parameters are passed in * through this constructor. * * @param encType SRTP encryption type * @param encKeyLength SRTP encryption key length * @param authType SRTP authentication type * @param authKeyLength SRTP authentication key length * @param authTagLength SRTP authentication tag length * @param saltKeyLength SRTP salt key length */ public SRTPPolicy(int encType, int encKeyLength, int authType, int authKeyLength, int authTagLength, int saltKeyLength) { this.encType = encType; this.encKeyLength = encKeyLength; this.authType = authType; this.authKeyLength = authKeyLength; this.authTagLength = authTagLength; this.saltKeyLength = saltKeyLength; } /** * Get the authentication key length * * @return the authentication key length */ public int getAuthKeyLength() { return this.authKeyLength; } /** * Set the authentication key length * * @param authKeyLength the authentication key length */ public void setAuthKeyLength(int authKeyLength) { this.authKeyLength = authKeyLength; } /** * Get the authentication tag length * * @return the authentication tag length */ public int getAuthTagLength() { return this.authTagLength; } /** * Set the authentication tag length * * @param authTagLength the authentication tag length */ public void setAuthTagLength(int authTagLength) { this.authTagLength = authTagLength; } /** * Get the authentication type * * @return the authentication type */ public int getAuthType() { return this.authType; } /** * Set the authentication type * * @param authType the authentication type */ public void setAuthType(int authType) { this.authType = authType; } /** * Get the encryption key length * * @return the encryption key length */ public int getEncKeyLength() { return this.encKeyLength; } /** * Set the encryption key length * * @param encKeyLength the encryption key length */ public void setEncKeyLength(int encKeyLength) { this.encKeyLength = encKeyLength; } /** * Get the encryption type * * @return the encryption type */ public int getEncType() { return this.encType; } /** * Set the encryption type * * @param encType */ public void setEncType(int encType) { this.encType = encType; } /** * Get the salt key length * * @return the salt key length */ public int getSaltKeyLength() { return this.saltKeyLength; } /** * Set the salt key length * * @param keyLength the salt key length */ public void setSaltKeyLength(int keyLength) { this.saltKeyLength = keyLength; } }