You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
3.3 KiB
89 lines
3.3 KiB
// --------------------------------------------------------------------------- |
|
// Name: actIPKCS15Behavior.h |
|
// Product: cv act library |
|
// Purpose: IPKCS15Behavior interface, encapsulates Manufacturer specific logic |
|
// for PKCS15 to cvProfile mapping. |
|
// |
|
// Copyright: (c) 2002-2008 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: 06/02/2008 |
|
// --------------------------------------------------------------------------- |
|
|
|
#ifndef ACT_IPKCS15Behavior_h |
|
#define ACT_IPKCS15Behavior_h |
|
|
|
#include "actISCardOSBehavior.h" |
|
|
|
#include "cvProfileInfos.h" |
|
|
|
namespace act |
|
{ |
|
class IAuthIdRef; |
|
|
|
class IToken; |
|
class ITokenPIN; |
|
class ITokenKey; |
|
class ITokenFile; |
|
class ITokenFileMap; |
|
class ISecurityManager; |
|
class ITokenBlockCipherKey; |
|
|
|
class PKCS15Container; |
|
struct PKCS15Path; |
|
struct PKCS15Object; |
|
|
|
// |
|
// IPKCS15Behavior |
|
class IPKCS15Behavior : public ISCardOSBehavior |
|
{ |
|
public: |
|
virtual void Init(IToken* token) = 0; |
|
|
|
virtual int GetTokenType(const IToken* token) const throw() = 0; |
|
virtual void GetProfileCapabilities(ITokenConfig* tkcfg) const = 0; |
|
|
|
virtual bool IsReadOnly() const = 0; |
|
virtual const Blob& GetMID() const = 0; |
|
|
|
// Returns a valid instance or throws ! |
|
virtual ITokenFile* GetPath() const = 0; |
|
virtual ITokenFile* GetTokenFile(const Blob& p15path) = 0; |
|
virtual ITokenFile* GetTokenFile(const PKCS15Path& p15path) = 0; |
|
|
|
virtual ITokenPIN* GetPin(IToken* token, const PKCS15Object& p15object, bool use_obj_ref = false) = 0; |
|
|
|
// NOTE: If one of these functions return false, the object gets destroyed |
|
// and is not added to the corresponding collection, therefore not accessable! |
|
virtual bool InitTokenPIN(ITokenPIN* pin, const PKCS15Object& p15object) = 0; |
|
virtual bool InitTokenKey(ITokenKey* key, const FileInfo& fi, int usage, const PKCS15Object& p15object) = 0; |
|
virtual bool InitTokenKey(ITokenBlockCipherKey* key, const FileInfo& fi, const PKCS15Object& p15object) = 0; |
|
|
|
virtual FIDType GetFirstFID(byte obj_type, size_t key_size = 0) const = 0; |
|
virtual void GetObjectInfo(FIDType fid, Blob& object_path, byte* obj_ref, byte obj_type, size_t key_size = 0) const = 0; |
|
|
|
virtual FIDType TransformKeyReference(FIDType id, bool to_on_card_reference = false, bool* bReference = 0) const = 0; |
|
|
|
virtual FIDType GetNativeFID(byte obj_type, const FIDType fid, byte object_reference = 0) const = 0; |
|
|
|
virtual void GetRelativeFilePath(Blob& absolute_filepath) const = 0; |
|
|
|
virtual const Blob& GetACTokenRights() const = 0; |
|
virtual Blob GetAccessRights(const ITokenPIN* pin, byte obj_type) const = 0; |
|
virtual Blob GetAccessRights(IAuthIdRef* authIdRef, IAuthIdRef* parentAuthIdRef, byte obj_type) const = 0; |
|
|
|
virtual ISecurityManager* SecurityManager(IToken* token, int authManagerType) const = 0; |
|
virtual void CreateAuthObj(ITokenPIN* pin, byte obj_type) const = 0; |
|
|
|
virtual bool GetNativePubKeySupport() const = 0; |
|
virtual Blob ReadNativePublicKey(ISCardOS* os, FIDType fid) const = 0; |
|
virtual Blob ReadNativeECPublicKey(ISCardOS* os, FIDType fid) const = 0; |
|
virtual FIDType GetNativePubKeyInfo(FIDType priv_key_fid, const PublicKeyInfo& info, |
|
PKCS15Object& p15object) const = 0; |
|
}; |
|
|
|
} // namespace act |
|
|
|
#endif // ACT_IPKCS15Behavior_h
|
|
|