Merge branch 'e2ee' into tizen
[platform/core/security/device-certificate-manager.git] / README.md
1 #Device Certificate Manager
2
3 ##About
4
5 The Device Certificate Manager (DCM) provides cryptography services (digital certificates and keys) for authentication and secure communication with another system.
6 Please visit the following webpage for the details about the prerequsities and the usage: [https://docs.tizen.org/application/native/guides/security/device-certificate-manager](https://docs.tizen.org/application/native/guides/security/device-certificate-manager).
7
8 ##Architecture
9
10 The DCM (tizen.org repository *platform/core/security/device-certificate-manager*) consists of two submodules: the client and the daemon.
11 The client provides the public DCM API, while the daemon its implementation.
12 The implementation is realized with the internal backend API (see the *src/dcm-daemon/dcm-backend-api.h* header file).
13 Example implementation of this backend API may be found in the tizen.org separate repository: *platform/core/security/device-certificate-manager-backend*.
14 The DCM backend repository provides dummy implementation based on the OpenSSL and dedicated mainly for the testing purposes.
15
16 Backend is packed to the rpm device-certificate-manager-backend-dummy package, that provide the *libdcm-backend-api.so* library with the DCM backend API implementation.
17 The library is loaded dynamically by the DCM daemon at runtime.
18 Although the DCM backend is not installed automatically with the DCM, it is required for proper work of the DCM and because of that it must be installed manually.
19 Alternatively, the specific Tizen image may be configured to contain the chosen backend.
20
21 ##Adding a new backend (a new SE device)
22
23 In order to support a new SE device in the DCM, a new backend API implementation must be developed, which means that the plugin developer must provide the implemenation of the plugin header (*src/dcm-daemon/dcm-backend-api.h*).
24 Such an implementation may be based on the dummy implementation from the *platform/core/security/device-certificate-manager-backend* repository.
25 The new implementation may be added to this public repository or provided in the separate git repository.
26 The most important item is to implement the *libdcm-backend-api.so* library and to install it in the system.
27 The DCM daemon does not need to be modified.
28
29 ##Testing
30 There is currently one general testing application:
31 - *device-certificate-manager-tests*
32 Testing application should be executed after implementing changes to the DCM or to the DCM backend repository.