/*
 * This software is Copyright (C) 2006-2010
 * Fachhochschule Hannover (University of Applied Sciences and Arts)
 * Use is subject to license conditions.
 *
 * The main licensing options available are:
 *
 * Open Source Licensing. This is the appropriate option if you want to
 * share the source code of your application with everyone you
 * distribute it to, and you also want to give them the right to share
 * who uses it. If you wish to use TNC@FHH under Open Source Licensing,
 * you must contribute all your source code to the open source
 * community in accordance with the GPL Version 2 when your application
 * is distributed. See http://www.gnu.org/licenses/gpl-2.0.html/ or gpl-2.0.txt
 *
 * Commercial Licensing. This is the appropriate option if you are
 * creating proprietary applications and you are not prepared to
 * distribute and share the source code of your application.
 * Contact trust@f4-i.fh-hannover.de for details.
 *
 * http://trust.inform.fh-hannover.de/
 */

/**
 * AttestationIMVLibrary
 *
 * <h3>Changelog:</h3>
 * <ul>
 *   <li>08.03.2010 - create class skeleton (ib)</li>
 *   <li>24.03.2010 - renamed to AttestationIMVLibrary (awe)</li>
 * </ul>
 *
 * @date 08.03.10
 * @author Ingo Bente(ib)
 */

#ifndef ATTESTATIONIMVLIBRARY_H_
#define ATTESTATIONIMVLIBRARY_H_

#include "tcg/tnc/tncifimc.h"
#include "imunit/imv/IMVLibrary.h"
#include "imunit/imv/AbstractIMV.h"

#include "AttestationIMVPolicyManager.h"
#include "attestationimvConfig.h"

#include <string>
#include <trousers/tss.h>


#define TNC_VENDORID_FHH 		((TNC_VendorID) 0x0080ab)
#define TNC_SUBTYPE_FHH_ATTESTATION	((TNC_MessageSubtype) 0x34)
#define TNC_MESSAGETYPE_FHH_ATTESTATION ((TNC_VENDORID_FHH << 8) | (TNC_SUBTYPE_FHH_ATTESTATION & 0xff))


using namespace tncfhh::iml;


class AttestationIMVLibrary : public tncfhh::iml::IMVLibrary
{
public:
	AttestationIMVLibrary();

	~AttestationIMVLibrary();


	AbstractIMV *createNewImvInstance(TNC_ConnectionID connid);


private:
	/* our policy manager */
	AttestationIMVPolicyManager *policyManager;

};

#endif // ATTESTATIONIMVLIBRARY_H_
