Merge "Adjust naming convention to API." into tizen
[platform/core/security/yaca.git] / readme.txt
1 YACA - Yet Another Crypto API
2
3 Basic information:
4
5 Code Style:
6         Tizen coding style (doc/coding-rules.txt)
7
8 Project structure:
9         api/yaca/  - Public API (headers)
10         doc/       - Documentation
11         examples/  - Usage examples
12         packaging/ - RPM spec file
13         src/       - Source
14
15 General design:
16         - All memory allocated by API should be freed with yaca_free()
17         - Contexts and keys should be released with yaca_context_destroy()/yaca_key_destroy()
18         - Function names: yaca_<operation/object>_<function>; Ex: yaca_verify_initialize()
19         - Simplified/Simple functions don't have <operation/object> part, but have <simple> prefix
20         - Enums: YACA_<concept>_<value>; Ex: YACA_KEY_LENGTH_256BIT
21         - Objects (context, key) end with _h
22         - Functions returns YACA_ERROR_NONE on success, negative values on error
23
24 Simplified API:
25         - Is located in yaca_simple.h
26         - Currently, to use it - some functions from yaca_crypto.h and yaca_key.h are needed
27         - Symmetric ciphers (except for GCM and CCM),
28           message digests and signatures are only operations that are supported
29         - All operations are single-shot and output is allocated by library
30
31 API:
32         - All contexts are created by appropriate _initialize() functions
33         - Keys are created by generate or import functions
34
35 Examples:
36         - It is possible to compile-check examples with "make" command
37
38 Tests:
39         All tests are developed at security-tests repository from tizen.org, branch yaca.
40         git clone ssh://[USER_ID]@review.tizen.org:29418/platform/core/test/security-tests -b yaca
41         Build all tests with command: cmake -DBUILD_ALL_TESTS=OFF -DBUILD_YACA=ON; make
42         Run all tests with command: yaca-test