store headers only once, refs #7
This commit is contained in:
131
actlibrary/include/actITokenInitializer.h
Normal file
131
actlibrary/include/actITokenInitializer.h
Normal file
@@ -0,0 +1,131 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// Name: actITokenInitializer.h
|
||||
// Product: cv act library
|
||||
// Purpose: ITokenInitializer interface declares common token profile initialization functionality.
|
||||
//
|
||||
// Copyright: (c) 2009 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
|
||||
// Date: 04/20/2009
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
#ifndef ACT_ITokenInitializer_h
|
||||
#define ACT_ITokenInitializer_h
|
||||
|
||||
#include "actBlob.h"
|
||||
#include "actTokenBase.h"
|
||||
#include "actIRefCounted.h"
|
||||
|
||||
namespace act
|
||||
{
|
||||
extern const byte PIN_PAD_CHAR;
|
||||
|
||||
struct TIData
|
||||
{
|
||||
private:
|
||||
TIData(const TIData&) throw();
|
||||
TIData& operator=(const TIData&) throw();
|
||||
|
||||
public:
|
||||
TIData(const char* _profile_name = 0)
|
||||
: profile_name(_profile_name)
|
||||
, profile_type(PROFILE_UNKNOWN)
|
||||
, retry_counter(3)
|
||||
, pin_pad_byte(PIN_PAD_CHAR)
|
||||
, enable_pin_padding(false)
|
||||
, enable_pin_pce_so(false)
|
||||
, enable_pin_pce_user(false)
|
||||
, enable_minidriver(false)
|
||||
, enable_minidriver_pnp(false)
|
||||
, enable_biometric(false)
|
||||
, enable_biometric_pins(false)
|
||||
, load_only(false)
|
||||
, load_package_MoC(false)
|
||||
, load_package_2048(false)
|
||||
, load_package_ecc(false)
|
||||
{ }
|
||||
|
||||
Blob atr_historical_bytes;
|
||||
Blob atr_historical_bytes_suffix;
|
||||
Blob card_pin;
|
||||
Blob so_pin;
|
||||
Blob user_pin;
|
||||
Blob serial_number;
|
||||
Blob last_update_pin_utc;
|
||||
Blob challenge_response_key;
|
||||
Blob binary_data;
|
||||
|
||||
const char* profile_name;
|
||||
ProfileType profile_type;
|
||||
|
||||
short retry_counter;
|
||||
byte pin_pad_byte;
|
||||
|
||||
bool enable_pin_padding;
|
||||
bool enable_pin_pce_so;
|
||||
bool enable_pin_pce_user;
|
||||
bool enable_minidriver;
|
||||
bool enable_minidriver_pnp;
|
||||
bool enable_biometric;
|
||||
bool enable_biometric_pins;
|
||||
|
||||
bool load_only;
|
||||
bool load_package_MoC;
|
||||
bool load_package_2048;
|
||||
bool load_package_ecc;
|
||||
};
|
||||
|
||||
struct TITokenInfo
|
||||
{
|
||||
TITokenInfo(size_t pin_len_max, size_t pin_len_min, size_t _key_len_cr)
|
||||
: serial_number_len(16)
|
||||
, key_len_cr(_key_len_cr)
|
||||
{
|
||||
pin_len_max_admin = pin_len_max_so = pin_len_max_user = pin_len_max;
|
||||
pin_len_min_admin = pin_len_min_so = pin_len_min_user = pin_len_min;
|
||||
}
|
||||
|
||||
size_t serial_number_len;
|
||||
|
||||
size_t key_len_cr;
|
||||
|
||||
size_t pin_len_max_admin;
|
||||
size_t pin_len_max_so;
|
||||
size_t pin_len_max_user;
|
||||
|
||||
size_t pin_len_min_admin;
|
||||
size_t pin_len_min_so;
|
||||
size_t pin_len_min_user;
|
||||
};
|
||||
|
||||
class ISCardOS;
|
||||
class IProfileGenerator;
|
||||
class ISCardCmdObserver;
|
||||
|
||||
//
|
||||
// ITokenInitializer
|
||||
class ITokenInitializer : public IRefCounted
|
||||
{
|
||||
public:
|
||||
virtual ISCardOS* GetOS() const= 0;
|
||||
virtual const TITokenInfo& GetTokenInfo() const = 0;
|
||||
virtual const ProfileType* GetSupportedProfileList() const = 0;
|
||||
|
||||
virtual bool SupportsProfile(ProfileType profile_type) const = 0;
|
||||
virtual void SetGenerator(IProfileGenerator* generator) = 0;
|
||||
virtual void SetObserver(ISCardCmdObserver* observer) = 0;
|
||||
|
||||
virtual bool EraseProfile(const Blob& card_pin) = 0;
|
||||
virtual bool ExistProfile(bool& is_pkcs15, bool& requires_adminpin) = 0;
|
||||
virtual void CreateProfile(TIData& data, ProfileType profile_type) = 0;
|
||||
virtual void FinalizeProfile(TIData& data) = 0;
|
||||
|
||||
virtual void PinChangeReminder(TIData& data, bool enable) = 0;
|
||||
};
|
||||
|
||||
} // namespace act
|
||||
|
||||
#endif // ACT_ITokenInitializer_h
|
Reference in New Issue
Block a user