1# Introduction to Crypto Architecture Kit 2 3<!--Kit: Crypto Architecture Kit--> 4<!--Subsystem: Security--> 5<!--Owner: @zxz--3--> 6<!--Designer: @lanming--> 7<!--Tester: @PAFT--> 8<!--Adviser: @zengyawen--> 9 10Crypto 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. 11 12Crypto Architecture Kit shields the implementation differences of third-party cryptographic algorithm libraries to elevate your app experience. 13 14## Constraints 15 16- Crypto Architecture Kit does not support multi-thread concurrent operations. 17 18- Currently, Crypto Architecture Kit supports only OpenSSL. 19 20- Crypto Architecture Kit provides most of the common algorithms. However, some algorithms and specifications, such as MD5, are not applicable to scenarios with high security requirements. Use appropriate algorithms based on service requirements. 21 22## Capability Scope 23 24Crypto Architecture Kit provides the following functionalities, with algorithm specifications and development guides for your reference. 25 26- [Key Generation and Conversion](crypto-key-generation-conversion-overview.md) 27 28- [Encryption and Decryption](crypto-encryption-decryption-overview.md) 29 30- [Signing and Signature Verification](crypto-sign-sig-verify-overview.md) 31 32- [Key Agreement](crypto-key-agreement-overview.md) 33 34- [MD](crypto-generate-message-digest-overview.md) 35 36- [MAC](crypto-compute-mac-overview.md) 37 38- [Random Number Generation](crypto-generate-random-number.md) 39 40- [Key Derivation](crypto-key-derivation-overview.md) 41 42## Basic Concepts 43 44Before you get started, be sure to understand the following basic concepts: 45 46- Symmetric key 47 48 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. 49 50- Asymmetric key 51 52 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. 53 54 The public key is public and open to anyone in the system, while the private key is private. 55 56 For signing and signature verification, the private key is used to sign the plaintext, and the public key is used to verify the signature. 57 58## Related Kits 59 60Crypto Architecture Kit provides cryptographic operations, but not key management. Therefore, applications must manage their own keys. This kit is applicable to scenarios where keys are used only in memory, such as temporary session keys, or where keys are securely stored by applications. 61 62If key management (such as key storage) is required, use [Universal Keystore Kit](../UniversalKeystoreKit/huks-overview.md). 63