crypto/weakcrypto/docs/Crypto_index.dox
changeset 0 2c201484c85f
--- /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:
+
+<!-- @li @ref bigint -->
+<!--
+@li @ref cryptographic_hash -- (points to cryptalg documentation)
+@li @ref mainpage_pbe
+@li @ref mainpage_rng Random number generator (RNG)
+@li @ref symmetric_ciphers -- (points to cryptalg documentation) 
+@li @ref asymmetric_cryptography -- (points to cryptalg documentation)
+-->
+
+- Cryptographic Hash Functions
+- @ref mainpage_pbe
+	- @ref secure_stream_encryption
+- Random Number Generator (RNG)
+- Symmetric Cryptography
+- Asymmetric Cryptography
+
+<b>Important Note</b>: \n
+<code>Security/crypto</code> is a new replacement library, the previous RSA-based version being <code>Security/cryptalg</code>.
+Note that the <code>Security/cryptalg</code> module is still available from GT, but configurability defaults now enable 
+the new component in all builds.
+
+See @ref mainpage_cryptalg "Cryptalg documentation".
+
+<hr>
+
+For <b>pre-v.8.0</b>, the <b> Security Supplement </b> 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
+
+<hr>
+
+@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 
+	<A HREF="http://www.schneier.com/book-applied.html">[AC]</A>. 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 <code>Security/Cryptography</code> component:
+<table>
+<tr><th>API Name</th><th>Broad Purpose</th><th>Intended Users</th></tr>
+<tr>
+	<td>Random</td>
+	<td>Generation of cryptographically strong random numbers 
+	<A HREF="http://www.schneier.com/paper-prngs.html">[PRNG]</A>.</td>
+	<td>Used internally by certman and crypto. External users include <code>networking/tls</code> (SSL and WTLS support) 
+	and <code>app-engines/cntmodel</code> (generating a unique machine id).</td>
+</tr>
+<tr>
+	<td>Hash</td>
+	<td>MD2, MD5, SHA (SHA1) and HMAC implementations.</td>
+	<td>Used internally by appinst, certman and crypto.
+		<code>networking/tls</code> uses a pseudo-random function (PRF) based on HMAC. Both MD5 and SHA-1 are used in TLS.</td>
+	</tr>
+<tr>
+	<td>Cryptography</td>
+	<td>
+		<table>
+			<tr><td>Symmetric ciphers: DES, 3DES, RC2, RC4, AES.</td></tr>
+			<tr><td>Asymmetric ciphers: RSA, DSA, DH. Only the public operations.</td></tr>
+		</table>
+	</td>
+	<td>
+		<table>
+			<tr><td>Used by Networking (<code>TLS/IPSec</code>).</td></tr>
+			<tr><td>Used by \c certman for WTLS and x509 certificate support and by appinst for SIS file signature 
+			verification. \n Used by Networking (<code>TLS/IPSec</code>).</td></tr>
+		</table>		
+	</td>	
+</tr>
+<tr>
+	<td>PKCS5</td>
+	<td>Key Derivation Support</td>
+	<td>Allows 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</td>
+</tr>
+<tr>
+	<td>%PBE</td>
+	<td>Password Based Encryption. Efficient password based encryption and decryption of multiple elements</td>
+	<td>This is useful if one wants random access to an encrypted source consisting of multiple, independent, elements; 
+	for example a database or a store</td>
+</tr>
+</table>
+
+*/
+