diff -r 000000000000 -r 2c201484c85f crypto/weakcrypto/docs/Crypto_index.dox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crypto/weakcrypto/docs/Crypto_index.dox Wed Jul 08 11:25:26 2009 +0100 @@ -0,0 +1,118 @@ +/** +@page mainpage_cryptography Cryptography + +The Cryptography component comprises: + + + + +- Cryptographic Hash Functions +- @ref mainpage_pbe + - @ref secure_stream_encryption +- Random Number Generator (RNG) +- Symmetric Cryptography +- Asymmetric Cryptography + +Important Note: \n +Security/crypto is a new replacement library, the previous RSA-based version being Security/cryptalg. +Note that the Security/cryptalg module is still available from GT, but configurability defaults now enable +the new component in all builds. + +See @ref mainpage_cryptalg "Cryptalg documentation". + +
+ +For pre-v.8.0, the Security Supplement of the Developer Library gives: + +@li @ref SS_Cryptalg_cryptography_overview +@li @ref SS_Cryptalg_symmetric_ciphers +@li @ref SS_Cryptalg_asymmetric_ciphers +@li @ref SS_Cryptalg_private_key_interface +@li @ref SS_Cryptalg_signature_classes +@li @ref SS_Cryptalg_parameter_classes +@li @ref SS_Cryptalg_hash_algorithms +@li @ref SS_Cryptalg_weak_strong_crypto +@li @ref SS_Cryptalg_howto_find_crypto_strength +@li @ref SS_Cryptalg_howto_change_crypto_strength + +
+ +@section crypto_apis Security/Cryptography APIs + +The crypto API is a new component that is based on Symbian-developed code rather than code licensed from RSA. + +The component is configurable, and can be built as either a strong or weak library based on a compilation option. +By its very nature, the code - being capable of strong encryption - is subject to export controls (as is the strong binary). + +See the Legal Notices for the Security Subsystem and the 3rd Party Supplier Information for guidelines on handling of this +code. + +The cryptography component includes these significant sub-components: +-# Symmetric and asymmetric ciphers. \n + The following ciphers are supported: + - Symmetric ciphers: DES, 3DES, RC2, RC4, AES. + - Asymmetric ciphers: RSA, DSA, DH +-# Hash functions. The hash functions supported are MD2, MD5, SHA (SHA1) and HMAC. +-# Random number generator (RNG). Several cryptographic applications like one-time pads, key generation and random nonces + all rely upon the randomness, unpredictability and irreproducibility of the random number generator + [AC]. The RNG uses + RANROT seeded by random data available on the target hardware (e.g. free running counters available on ARM processors). +-# Big Integers. Implementation of arbitrarily large integers (Big ints, big numbers). This is only intended for use by + the crypto library and not by application code, so as few functions as possible are exported. + + +The following APIs are exposed by the Security/Cryptography component: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
API NameBroad PurposeIntended Users
RandomGeneration of cryptographically strong random numbers + [PRNG].Used internally by certman and crypto. External users include networking/tls (SSL and WTLS support) + and app-engines/cntmodel (generating a unique machine id).
HashMD2, MD5, SHA (SHA1) and HMAC implementations.Used internally by appinst, certman and crypto. + networking/tls uses a pseudo-random function (PRF) based on HMAC. Both MD5 and SHA-1 are used in TLS.
Cryptography + + + +
Symmetric ciphers: DES, 3DES, RC2, RC4, AES.
Asymmetric ciphers: RSA, DSA, DH. Only the public operations.
+
+ + + +
Used by Networking (TLS/IPSec).
Used by \c certman for WTLS and x509 certificate support and by appinst for SIS file signature + verification. \n Used by Networking (TLS/IPSec).
+
PKCS5Key Derivation SupportAllows the derivation of deterministic arbitrary length byte streams from an input string. The output byte stream + is generated using multiple iterations of a CSHA-1 message digest and is suitable for use as a cryptographic symmetric + key
%PBEPassword Based Encryption. Efficient password based encryption and decryption of multiple elementsThis is useful if one wants random access to an encrypted source consisting of multiple, independent, elements; + for example a database or a store
+ +*/ +