Home | History | Annotate | Download | only in strongbox
      1 /*
      2 **
      3 ** Copyright 2017, The Android Open Source Project
      4 **
      5 ** Licensed under the Apache License, Version 2.0 (the "License");
      6 ** you may not use this file except in compliance with the License.
      7 ** You may obtain a copy of the License at
      8 **
      9 **     http://www.apache.org/licenses/LICENSE-2.0
     10 **
     11 ** Unless required by applicable law or agreed to in writing, software
     12 ** distributed under the License is distributed on an "AS IS" BASIS,
     13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 ** See the License for the specific language governing permissions and
     15 ** limitations under the License.
     16 */
     17 
     18 #include <android-base/logging.h>
     19 #include <android/hardware/keymaster/4.0/IKeymasterDevice.h>
     20 #include <hidl/HidlTransportSupport.h>
     21 
     22 #include <AndroidKeymaster4Device.h>
     23 
     24 
     25 int main() {
     26     ::android::hardware::configureRpcThreadpool(1, true /* willJoinThreadpool */);
     27 
     28     using android::hardware::keymaster::V4_0::SecurityLevel;
     29     using ::keymaster::V4_0::ng::CreateKeymasterDevice;
     30 
     31     /*
     32      * Create two software keymaster devices claiming different security levels for testing
     33      * purposes. They do not have the certificates of real TEE or Strongbox keymaster devices.
     34      */
     35     auto keymaster = CreateKeymasterDevice(SecurityLevel::TRUSTED_ENVIRONMENT);
     36     auto status = keymaster->registerAsService("default");
     37     if (status != android::OK) {
     38         LOG(FATAL) << "Could not register default service for Keymaster 4.0 (" << status << ")";
     39     }
     40 
     41     auto strongbox = CreateKeymasterDevice(SecurityLevel::STRONGBOX);
     42     status = strongbox->registerAsService("strongbox");
     43     if (status != android::OK) {
     44         LOG(FATAL) << "Could not register strongbox service for Keymaster 4.0 (" << status << ")";
     45     }
     46 
     47     android::hardware::joinRpcThreadpool();
     48     return -1;  // Should never get here.
     49 }
     50