AusweisApp2
eid_applet_service_android.h
gehe zur Dokumentation dieser Datei
1 /*
2  * Copyright (C) 2021 Bundesdruckerei GmbH and Governikus GmbH
3  *
4  */
5 
6 #pragma once
7 
8 #include "eid_applet_interface.h"
9 #include "eid_applet_results.h"
10 #include "eid_applet_utils.h"
11 #include <jni.h>
12 #include <stdexcept>
13 
14 
15 using namespace appletUtils;
16 using namespace jniUtils;
17 
18 
19 template<class JNIEnvironment, class JavaVirtualMachine>
21  public:
22  EidAppletServiceAndroid(JNIEnvironment* env, jobject applicationContext);
24 
25  GenericDataResult initializeService(
26  const std::string& pServiceId,
27  const std::string& pVersionTag,
28  const std::string& pSsdAid);
32  GenericDataResult performAPDUCommand(const std::string& pCommandApdu);
33  InitializeResult initializePersonalization(const std::string& pPin, const std::string& pChallenge);
34  GenericDataResult performPersonalization(const std::string& pCommandPersonalization);
35  PersonalizationResult finalizePersonalization();
38  EidServiceResult releaseAppletConnection();
39  GenericDataResult shutdownService();
40 
41  private:
42  class ThreadGuard {
43  private:
44  JavaVirtualMachine* mJvm;
45  bool mDoDetach;
46 
47  public:
48  explicit ThreadGuard(JavaVirtualMachine* pJvm);
49  ~ThreadGuard();
50 
51  void doDetach();
52  };
53 
54  JNIEnvironment* mEnv;
55  JavaVirtualMachine* mJvm;
56  jclass mJniServiceClz;
57  jobject mJniServiceObj;
58  jobject mApplicationContext;
59 
60  bool getJNIEnvForCurrentThread(JNIEnvironment*& _env, ThreadGuard& guard);
61 };
Definition: eid_applet_service_android.h:20
EidServiceResult deleteSmartEid(const ProgressHandler &pHandler)
Definition: eid_applet_interface_mock.cpp:84
EidUpdateInfo getUpdateInfo()
Definition: eid_applet_interface_mock.cpp:44
GenericDataResult performPersonalization(const std::string &pCommand)
Performs personalization in a generic way controlled by Personalization Service.
Definition: eid_applet_interface_mock.cpp:122
EidServiceResult deletePersonalization()
Delete Personalization from eID Applet.
Definition: eid_applet_interface_mock.cpp:172
GenericDataResult performAPDUCommand(const std::string &pCommandApdu)
Performs APDU command.
Definition: eid_applet_interface_mock.cpp:102
EidStatus getSmartEidStatus()
Provides the current Smart-eID Status. This function does not include an online-check.
Definition: eid_applet_interface_mock.cpp:56
InitializeResult initializePersonalization(const std::string &pChallenge, const std::string &pPin="")
Performs initialization of the Personalization.
Definition: eid_applet_interface_mock.cpp:148
EidServiceResult installSmartEid(const ProgressHandler &pHandler)
Definition: eid_applet_interface_mock.cpp:68
EidServiceResult
Definition: eid_applet_results.h:63
EidUpdateInfo
Definition: eid_applet_results.h:44
EidStatus
Definition: eid_applet_results.h:19
Definition: eid_applet_results.h:75
Definition: eid_applet_results.h:90
Definition: eid_applet_results.h:105