1e41f4b71Sopenharmony_ci# Introduction to Crypto Architecture Kit
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciCrypto Architecture Kit provides cryptographic functionalities, such as encryption and decryption, signing and signature verification, message authentication code (MAC) generation, hash computation, random number generation, and key derivation.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ciCrypto Architecture Kit shields the implementation differences of third-party cryptographic algorithm libraries to elevate your app experience.
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci## Constraints
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci- Crypto Architecture Kit does not support multi-thread concurrent operations.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci- Currently, Crypto Architecture Kit supports only OpenSSL.
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci- Crypto Architecture Kit provides common algorithms. Some algorithms and specifications, such as MD5, do not apply to scenarios with high security requirements. You need to select the proper algorithms based on service requirements.
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## Capability Scope
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ciCrypto Architecture Kit provides the following functionalities, with algorithm specifications and development guides for your reference.
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci- [Key Generation and Conversion](crypto-key-generation-conversion-overview.md)
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci- [Encryption and Decryption](crypto-encryption-decryption-overview.md)
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci- [Signing and Signature Verification](crypto-sign-sig-verify-overview.md)
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci- [Key Agreement](crypto-key-agreement-overview.md)
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci- [Message Digest](crypto-generate-message-digest.md)
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci- [MAC Operation](crypto-compute-mac.md)
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci- [Random Number Generation](crypto-generate-random-number.md)
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci- [Key Derivation](crypto-key-derivation-overview.md)
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci## Basic Concepts
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ciBefore you get started, be sure to understand the following concepts:
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci- Symmetric key
40e41f4b71Sopenharmony_ci  
41e41f4b71Sopenharmony_ci  A symmetric key is a key used both to encrypt and decrypt data. In symmetric encryption, the sender converts information in plaintext into ciphertext using a key and certain algorithm for security purposes. The receiver converts the ciphertext into plaintext using the same key and algorithm.
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci- Asymmetric key
44e41f4b71Sopenharmony_ci  
45e41f4b71Sopenharmony_ci  In the asymmetric cryptography, a private and public key pair is required. The private key is used to encrypt the plaintext, and the public key is used to decrypt the ciphertext.
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci  For encryption and decryption operations, the public key is used to encrypt plaintext, and the public key is used to decrypt the ciphertext.
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci  For signing and signature verification, the private key is used to sign the plaintext, and the public key is used to verify the signature.
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci## Related Kits
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ciCrypto Architecture Kit provides cryptographic operations, but not key management. It is used when temporary session keys are used only in the memory or the applications implement secure key storage.
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ciIf key management (such as key storage) is required, use [Universal Keystore Kit](../UniversalKeystoreKit/huks-overview.md).
56