1# Introduction to Crypto Architecture Kit 2 3Crypto 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. 4 5Crypto Architecture Kit shields the implementation differences of third-party cryptographic algorithm libraries to elevate your app experience. 6 7## Constraints 8 9- Crypto Architecture Kit does not support multi-thread concurrent operations. 10 11- Currently, Crypto Architecture Kit supports only OpenSSL. 12 13- 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. 14 15## Capability Scope 16 17Crypto Architecture Kit provides the following functionalities, with algorithm specifications and development guides for your reference. 18 19- [Key Generation and Conversion](crypto-key-generation-conversion-overview.md) 20 21- [Encryption and Decryption](crypto-encryption-decryption-overview.md) 22 23- [Signing and Signature Verification](crypto-sign-sig-verify-overview.md) 24 25- [Key Agreement](crypto-key-agreement-overview.md) 26 27- [MD Generation](crypto-generate-message-digest-overview.md) 28 29- [MAC Operation](crypto-compute-mac.md) 30 31- [Random Number Generation](crypto-generate-random-number.md) 32 33- [Key Derivation](crypto-key-derivation-overview.md) 34 35## Basic Concepts 36 37Before you get started, be sure to understand the following concepts: 38 39- Symmetric key 40 41 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. 42 43- Asymmetric key 44 45 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. 46 47 For encryption and decryption operations, the public key is used to encrypt plaintext, and the public key is used to decrypt the ciphertext. 48 49 For signing and signature verification, the private key is used to sign the plaintext, and the public key is used to verify the signature. 50 51## Related Kits 52 53Crypto 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. 54 55If key management (such as key storage) is required, use [Universal Keystore Kit](../UniversalKeystoreKit/huks-overview.md). 56