diff options
Diffstat (limited to 'src/Common/EMVToken.h')
-rw-r--r-- | src/Common/EMVToken.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/Common/EMVToken.h b/src/Common/EMVToken.h new file mode 100644 index 00000000..a1c0a2e1 --- /dev/null +++ b/src/Common/EMVToken.h @@ -0,0 +1,42 @@ +#ifndef TC_HEADER_Common_EMVToken +#define TC_HEADER_Common_EMVToken + +#define TC_EMV_TOKEN_KEYFILE_URL_PREFIX L"emv://" +#define TC_EMV_TOKEN_KEYFILE_URL_SLOT L"slot" + +#define EMV_CARDS_LABEL L"EMV Certificates" + +#include "EMVCard.h" + +namespace VeraCrypt +{ + struct EMVTokenInfo: TokenInfo + { + virtual ~EMVTokenInfo(); + virtual BOOL isEditable() const { return false; } + }; + + struct EMVTokenKeyfile: TokenKeyfile + { + EMVTokenKeyfile(); + EMVTokenKeyfile(const TokenKeyfilePath& path); + virtual ~EMVTokenKeyfile() {}; + + virtual operator TokenKeyfilePath () const; + virtual void GetKeyfileData(vector <byte>& keyfileData) const; + }; + + class EMVToken + { + public: + static bool IsKeyfilePathValid(const wstring& emvTokenKeyfilePath); + static vector<EMVTokenKeyfile> GetAvailableKeyfiles(unsigned long int* slotIdFilter = nullptr, const wstring& keyfileIdFilter = wstring()); + static EMVTokenInfo GetTokenInfo(unsigned long int slotId); + + friend void EMVTokenKeyfile::GetKeyfileData(vector <byte>& keyfileData) const; + + static map <unsigned long int, shared_ptr<EMVCard>> EMVCards; + }; +} + +#endif |