diff options
Diffstat (limited to 'src/Main/GraphicUserInterface.cpp')
-rw-r--r-- | src/Main/GraphicUserInterface.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp index d15e7375..b302b715 100644 --- a/src/Main/GraphicUserInterface.cpp +++ b/src/Main/GraphicUserInterface.cpp @@ -537,6 +537,13 @@ namespace VeraCrypt { virtual void operator() (string &passwordStr) { + if (CmdLine->ArgTokenPin && CmdLine->ArgTokenPin->IsAllocated ()) + { + passwordStr.clear(); + passwordStr.insert (0, (char*) CmdLine->ArgTokenPin->Ptr (), CmdLine->ArgTokenPin->Size()); + return; + } + if (Gui->GetPreferences().NonInteractive) throw MissingArgument (SRC_POS); @@ -563,6 +570,14 @@ namespace VeraCrypt StringConverter::ToSingle (wPassword, passwordStr); } + + virtual void notifyIncorrectPin () + { + if (CmdLine->ArgTokenPin && CmdLine->ArgTokenPin->IsAllocated ()) + { + CmdLine->ArgTokenPin->Free (); + } + } }; struct WarningHandler : public SendExceptionFunctor |