Make SW keymaster security level configurable

This CL enables the pure software keymaster implementation to have a
configurable security level, for testing, so we can use it to test
Strongbox features.

Test:  VtsHalKeymasterV4_0TargetTest (on emulator)
Change-Id: I017fd81df3dc14ac5c11943241b63ff3291a92e6
Merged-In: I1b012dcd359e294dad7771c7a91e36270d9a0289
Merged-In: I10515d77310b4d2fd2922e1083df19269f199f33
Merged-In: Ibe86062000373bb71244256c4ebd81ad42bfb0da
diff --git a/ng/AndroidKeymaster4Device.cpp b/ng/AndroidKeymaster4Device.cpp
index 70060d6..b42a19b 100644
--- a/ng/AndroidKeymaster4Device.cpp
+++ b/ng/AndroidKeymaster4Device.cpp
@@ -211,12 +211,14 @@
 
 AndroidKeymaster4Device::AndroidKeymaster4Device(SecurityLevel securityLevel)
     : impl_(new ::keymaster::AndroidKeymaster(
-          []() -> auto {
-              auto context = new PureSoftKeymasterContext();
+          [&]() -> auto {
+              auto context = new PureSoftKeymasterContext(
+                  static_cast<keymaster_security_level_t>(securityLevel));
               context->SetSystemVersion(GetOsVersion(), GetOsPatchlevel());
               return context;
           }(),
-          kOperationTableSize)), securityLevel_(securityLevel) {}
+          kOperationTableSize)),
+      securityLevel_(securityLevel) {}
 
 AndroidKeymaster4Device::~AndroidKeymaster4Device() {}