store headers only once, refs #7
This commit is contained in:
139
actlibrary/include/actITokenAuth.h
Normal file
139
actlibrary/include/actITokenAuth.h
Normal file
@@ -0,0 +1,139 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// Name: actITokenAuth.h
|
||||
// Product: cv act library
|
||||
// Purpose: The ITokenAuth interface represents a IToken authentication state
|
||||
// using one the ITokenPIN objects owned by a token.
|
||||
//
|
||||
// Copyright: (c) 2007 cv cryptovision GmbH
|
||||
// all rights reserved
|
||||
// Licence: The conditions for the use of this software are regulated
|
||||
// in the cv act library licence agreement.
|
||||
//
|
||||
// Autor: Markus Tesche (MTE)
|
||||
// Date: 11/09/2007
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
#ifndef ACT_ITokenAuth_h
|
||||
#define ACT_ITokenAuth_h
|
||||
|
||||
#include "actBlob.h"
|
||||
#include "actBasics.h"
|
||||
#include "actIRefCounted.h"
|
||||
|
||||
namespace act
|
||||
{
|
||||
class AuthInfo;
|
||||
|
||||
class IToken;
|
||||
class ITokenPIN;
|
||||
class ITokenFile;
|
||||
class IAuthIdRef;
|
||||
class IAuthConstrained;
|
||||
|
||||
enum AuthConstrainedType
|
||||
{
|
||||
AUTH_CONSTRAINED_ALWAYS = 0,
|
||||
AUTH_CONSTRAINED_NOT,
|
||||
AUTH_CONSTRAINED_AND,
|
||||
AUTH_CONSTRAINED_OR,
|
||||
};
|
||||
|
||||
//
|
||||
// IAuthFactory
|
||||
class IAuthFactory
|
||||
{
|
||||
public:
|
||||
virtual IAuthIdRef* CreateAuthIdRef(const Blob& authId, ITokenFile* path,
|
||||
byte constrained_mode = AUTH_CONSTRAINED_ALWAYS) = 0;
|
||||
|
||||
virtual ITokenPIN* CreatePin(const AuthInfo& ai, byte objRef, ITokenFile* path,
|
||||
IAuthIdRef* authIdRef, IAuthIdRef* parentAuthIdRef) = 0;
|
||||
|
||||
// TODO: MTE: deprecated, use CreatePin(const AuthInfo&...) instead
|
||||
virtual ITokenPIN* CreatePin(int type, int usage, byte objRef, int minLen,
|
||||
int maxLen, IAuthIdRef* authIdRef, const char* name = 0) = 0;
|
||||
|
||||
protected:
|
||||
virtual ~IAuthFactory() { }
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// IAuthIdRef
|
||||
class IAuthIdRef : public IRefCounted
|
||||
{
|
||||
public:
|
||||
virtual byte GetAuthIdByte() const = 0;
|
||||
virtual const Blob& GetAuthId() const = 0;
|
||||
virtual IAuthConstrained* GetAuthConstrained() = 0;
|
||||
|
||||
virtual bool Equals(const Blob& authId) const = 0;
|
||||
};
|
||||
|
||||
//
|
||||
// IAuthIdRefIterator
|
||||
class IAuthIdRefIterator : public IRefCounted
|
||||
{
|
||||
public:
|
||||
virtual void Reset() = 0;
|
||||
virtual IAuthIdRef* Next() = 0;
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// ITokenAuthIterator
|
||||
class ITokenAuthIterator : public IRefCounted
|
||||
{
|
||||
public:
|
||||
virtual void Reset(ITokenFile* parent = 0) = 0;
|
||||
virtual ITokenPIN* Next() = 0;
|
||||
};
|
||||
|
||||
//
|
||||
// ITokenAuth
|
||||
class ITokenAuth : public IRefCounted
|
||||
{
|
||||
public:
|
||||
virtual bool Login(ITokenPIN* auth_obj, const Blob& pin) = 0;
|
||||
|
||||
virtual bool Logout() = 0;
|
||||
virtual bool Logout(const ITokenPIN* auth_obj) = 0;
|
||||
virtual bool LogoutEx(bool reset_security_state) = 0;
|
||||
|
||||
virtual Blob GetChallenge(const ITokenPIN* auth_obj) = 0;
|
||||
|
||||
virtual IToken* GetToken() const = 0;
|
||||
virtual ITokenPIN* GetAuthenticated() const = 0;
|
||||
virtual ITokenPIN* GetAuthenticated(size_t index) const = 0;
|
||||
|
||||
virtual bool NeedsPINValue() const = 0;
|
||||
virtual bool HasChallenge() const = 0;
|
||||
virtual bool HasChallenge(const ITokenPIN* auth_obj) const = 0;
|
||||
virtual bool IsAuthenticated(const ITokenPIN* auth_obj) const = 0;
|
||||
virtual bool IsAuthenticated(bool verify_security_state = false) const = 0;
|
||||
|
||||
/*!
|
||||
* Clears the internal authentication state for given auth_obj.
|
||||
*
|
||||
* If auth_obj is not authenticated:
|
||||
* - do nothing
|
||||
* - return false
|
||||
*
|
||||
* If auth_obj is authenticated:
|
||||
* - remove auth_obj from authenticated-list.
|
||||
* - return true
|
||||
*
|
||||
* \note does NOT reset the card's authentication state!
|
||||
*
|
||||
* \param auth_obj \ref ITokenPIN
|
||||
* \return true if succeeded, false if not
|
||||
*/
|
||||
virtual bool Invalidate(ITokenPIN* auth_obj) = 0;
|
||||
virtual bool Select(const ITokenPIN* auth_obj, bool force) = 0;
|
||||
|
||||
virtual ITokenAuthIterator* Iterator(int type, const Blob& authId = Blob()) const = 0;
|
||||
};
|
||||
|
||||
} // namespace act
|
||||
|
||||
#endif // ACT_ITokenAuth_h
|
Reference in New Issue
Block a user