/* * Copyright (C) 2013 Tobias Brunner * Copyright (C) 2012 Christoph Buehler * Copyright (C) 2012 Patrick Loetscher * Hochschule fuer Technik Rapperswil * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. */ package org.strongswan.android.logic.imc.attributes; public enum AttributeType { /* IETF standard PA-TNC attribute types defined by RFC 5792 */ IETF_TESTING(PrivateEnterpriseNumber.IETF, 0), IETF_ATTRIBUTE_REQUEST(PrivateEnterpriseNumber.IETF, 1), IETF_PRODUCT_INFORMATION(PrivateEnterpriseNumber.IETF, 2), IETF_NUMERIC_VERSION(PrivateEnterpriseNumber.IETF, 3), IETF_STRING_VERSION(PrivateEnterpriseNumber.IETF, 4), IETF_OPERATIONAL_STATUS(PrivateEnterpriseNumber.IETF, 5), IETF_PORT_FILTER(PrivateEnterpriseNumber.IETF, 6), IETF_INSTALLED_PACKAGES(PrivateEnterpriseNumber.IETF, 7), IETF_PA_TNC_ERROR(PrivateEnterpriseNumber.IETF, 8), IETF_ASSESSMENT_RESULT(PrivateEnterpriseNumber.IETF, 9), IETF_REMEDIATION_INSTRUCTIONS(PrivateEnterpriseNumber.IETF, 10), IETF_FORWARDING_ENABLED(PrivateEnterpriseNumber.IETF, 11), IETF_FACTORY_DEFAULT_PWD_ENABLED(PrivateEnterpriseNumber.IETF, 12), IETF_RESERVED(PrivateEnterpriseNumber.IETF, 0xffffffff), /* ITA attributes */ ITA_SETTINGS(PrivateEnterpriseNumber.ITA, 4), ITA_DEVICE_ID(PrivateEnterpriseNumber.ITA, 8); private PrivateEnterpriseNumber mVendor; private int mType; /** * Enum type for vendor specific attributes (defined in their namespace) * * @param vendor private enterprise number of vendor * @param type vendor specific attribute type */ private AttributeType(PrivateEnterpriseNumber vendor, int type) { mVendor = vendor; mType = type; } /** * Get private enterprise number of vendor * * @return PEN */ public PrivateEnterpriseNumber getVendor() { return mVendor; } /** * Get vendor specific type * * @return type */ public int getType() { return mType; } /** * Get the enum entry from the given numeric values, if defined * * @param vendor vendor id * @param type vendor specific type * @return enum entry or null */ public static AttributeType fromValues(int vendor, int type) { PrivateEnterpriseNumber pen = PrivateEnterpriseNumber.fromValue(vendor); if (pen == null) { return null; } for (AttributeType attr : AttributeType.values()) { if (attr.mVendor == pen && attr.mType == type) { return attr; } } return null; } }