Symbian3/PDK/Source/GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1.dita
changeset 12 80ef3a206772
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/PDK/Source/GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1.dita	Fri Jul 16 17:23:46 2010 +0100
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
+<!-- This component and the accompanying materials are made available under the terms of the License 
+"Eclipse Public License v1.0" which accompanies this distribution, 
+and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+<!-- Initial Contributors:
+    Nokia Corporation - initial contribution.
+Contributors: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1" xml:lang="en"><title>Cryptography
+overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<section id="GUID-67CB0CE0-EFDA-4183-BB49-293580FFA0A5-GENID-1-12-1-26-1-1-9-1-2-1"><title>Purpose</title> <p>The
+Cryptography module is the basis of the Symbian platform Security system.
+The services provided by this module are used by the following components:
+Certman (Certificate Management), Software Installation, Secure Communication
+Protocols (for example, SSL, TLS, IPSEC), and WTLS. </p> <p>These services
+include: </p> <ul>
+<li id="GUID-4D104E90-FF18-5FF6-8D8F-806D31F9C81D-GENID-1-12-1-26-1-1-9-1-2-1-4-1"><p>symmetric encryption-decryption </p> </li>
+<li id="GUID-62E013DC-85FD-5C7E-8F63-93C7F546F99E-GENID-1-12-1-26-1-1-9-1-2-1-4-2"><p>asymmetric encryption-decryption </p> </li>
+<li id="GUID-716CAC33-4B7D-5F10-9F3A-CAFD6D42442F-GENID-1-12-1-26-1-1-9-1-2-1-4-3"><p>integrity checking and
+signature verification </p> </li>
+<li id="GUID-CE94FB08-21CE-51BD-9F2C-B857BC135902-GENID-1-12-1-26-1-1-9-1-2-1-4-4"><p>key exchange </p> </li>
+<li id="GUID-72254184-BFDA-546A-97E9-0056F70ED602-GENID-1-12-1-26-1-1-9-1-2-1-4-5"><p>message digests </p> </li>
+</ul> <p>The interface for the cryptographic services hides the implementation
+details of particular algorithms. No detailed knowledge of the cryptographic
+algorithms is needed to use the cryptographic services. </p> </section>
+<section id="GUID-39C675AC-939A-4028-9016-27C66D869173-GENID-1-12-1-26-1-1-9-1-2-2"><title>Description</title> <p>The
+Cryptography module encapsulates the following significant components: </p> <ul>
+<li id="GUID-1B44BA90-11D8-5FD0-9554-4C7B788CEFF0-GENID-1-12-1-26-1-1-9-1-2-2-3-1"><p> <xref href="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1.dita#GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1/GUID-59BBC450-1E19-58EA-8DD6-5F2D1EAB7D63-GENID-1-12-1-26-1-1-9-1-2-2-4">Cryptographic algorithms</xref>  </p> </li>
+<li id="GUID-0FCB4381-6394-5A28-86FE-A1AAEC2ABEF5-GENID-1-12-1-26-1-1-9-1-2-2-3-2"><p> <xref href="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1.dita#GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1/GUID-10F78AEF-4388-5A04-BD8D-A036171E3B82-GENID-1-12-1-26-1-1-9-1-2-2-8">Hash algorithms</xref>  </p> </li>
+<li id="GUID-7CFF13A5-A55A-54F0-A3AD-1137E66D158B-GENID-1-12-1-26-1-1-9-1-2-2-3-3"><p> <xref href="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1.dita#GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1/GUID-0630C916-ED45-520D-92CD-FE4F87A66D04-GENID-1-12-1-26-1-1-9-1-2-2-12">Random Number Generator (RNG)</xref>  </p> </li>
+<li id="GUID-A42E03EF-DFC1-5646-8326-053E203A509C-GENID-1-12-1-26-1-1-9-1-2-2-3-4"><p> <xref href="GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1.dita#GUID-5B112A34-1CBA-5B28-A941-27847FC1D30A-GENID-1-12-1-26-1-1-9-1/GUID-965474E9-6B4E-50C6-8F05-3381BBDC661A-GENID-1-12-1-26-1-1-9-1-2-2-16">Supporting APIs</xref>  </p> </li>
+</ul> <p id="GUID-59BBC450-1E19-58EA-8DD6-5F2D1EAB7D63-GENID-1-12-1-26-1-1-9-1-2-2-4"><b>Cryptographic algorithms</b> </p> <p>These
+algorithms allow data to be encrypted and decrypted. They include: </p> <ul>
+<li id="GUID-D94D2386-B73D-5D07-A770-C73C81F80D5C-GENID-1-12-1-26-1-1-9-1-2-2-6-1"><p> <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8-GENID-1-12-1-26-1-1-9-1-4-1-5-1.dita">Symmetric
+ciphers</xref> — algorithms that require communicating parties to hold a shared
+secret. They are fast and used for the transmission of bulk data. </p> </li>
+<li id="GUID-7425FC7D-BA33-5F0B-92A4-95876C790EBB-GENID-1-12-1-26-1-1-9-1-2-2-6-2"><p> <xref href="GUID-35E9F104-95F7-511F-B0C5-AB64BCA972D0-GENID-1-12-1-26-1-1-9-1-4-1-6-1.dita">Asymmetric
+ciphers</xref> — algorithms which have two keys, one private to the keys'
+owner and one which can be published. They are slow compared to symmetric
+ciphers and are used to exchange a symmetric key before transmission of data
+encrypted using that key. </p> </li>
+</ul> <p>The classes implementing the symmetric and asymmetric ciphers are
+provided in <filepath>cryptography.dll</filepath> (see <xref href="GUID-48DB00D7-3807-5B4B-B4CE-D8C05B42CA6D.dita">Cryptography
+library</xref>). </p> <p id="GUID-10F78AEF-4388-5A04-BD8D-A036171E3B82-GENID-1-12-1-26-1-1-9-1-2-2-8"><b>Hash
+algorithms</b> </p> <p>Hash algorithms compact a message down to a short series
+of bytes from which it is impossible to regenerate the message. They are used
+with an asymmetric cipher to generate signatures. </p> <p>The classes implementing
+the hash algorithms are provided in <filepath>hash.dll</filepath>. </p> <p>Hash
+algorithms are documented in the mainstream Symbian platform library. </p> <p id="GUID-0630C916-ED45-520D-92CD-FE4F87A66D04-GENID-1-12-1-26-1-1-9-1-2-2-12"><b>Random Number Generator
+(RNG)</b> </p> <p>RNG is the basis for the cryptographic key generation. It
+uses the RANROT algorithm seeded by random data available on the target hardware
+(for example, free running counters available on ARM processors). </p> <p>The
+Random number library is provided by <filepath>random.dll</filepath>. </p> <p>The
+Random Number Generator API is documented in the mainstream Symbian OS Library. </p> <p id="GUID-965474E9-6B4E-50C6-8F05-3381BBDC661A-GENID-1-12-1-26-1-1-9-1-2-2-16"><b>Supporting APIs</b> </p> <ul>
+<li id="GUID-1AFD7DEA-F5C8-56E4-AA71-359F893ED7C6-GENID-1-12-1-26-1-1-9-1-2-2-17-1"><p> <xref href="GUID-8119A243-2EF1-582A-BB94-BA2A18D02D2C.dita">Password
+Based Encryption (PBE)</xref> — provides an API to encrypt and decrypt data
+with a user-supplied password. </p> <p>The classes implementing PBE (for example,
+for secure stream encryption) are provided in <filepath>pbe.dll</filepath>. </p> </li>
+<li id="GUID-7A02B665-46BE-5DBB-9A8A-787120AA3D11-GENID-1-12-1-26-1-1-9-1-2-2-17-2"><p>Padding — is extra bits
+concatenated with a key, password, or plaintext to make their length equal
+to the block size. It defines the way blocks are filled with data when the
+data to be encrypted is smaller than the block size. Padding is added at encryption
+and checked on decryption. (See <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8-GENID-1-12-1-26-1-1-9-1-4-1-5-1.dita#GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8-GENID-1-12-1-26-1-1-9-1-4-1-5-1/GUID-BDF6E245-AE19-55D6-89ED-BCBE0FCF006B-GENID-1-12-1-26-1-1-9-1-4-1-5-1-2-3">Block
+and stream ciphers</xref> and <xref href="GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8-GENID-1-12-1-26-1-1-9-1-4-1-5-1.dita#GUID-712DF59D-FAE1-592E-82A6-4E323676F5B8-GENID-1-12-1-26-1-1-9-1-4-1-5-1/GUID-A8F9A25F-B83E-5FE7-840F-4DCF246D3D96-GENID-1-12-1-26-1-1-9-1-4-1-5-1-2-5-10">CPadding
+class relationships</xref>.) </p> <p>The Cryptography library supports <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2125" scope="external">PKCS#1</xref> public
+and private padding, and <xref href="http://www.rsasecurity.com/rsalabs/node.asp?id=2129" scope="external">PKCS#7</xref> style padding (see <xref href="ftp://ftp.rfc-editor.org/in-notes/rfc2315.txt" scope="external">RFC 2315</xref> section 10.3). </p> </li>
+<li id="GUID-85009712-99DF-571D-88B1-6F2B86385762-GENID-1-12-1-26-1-1-9-1-2-2-17-3"><p> <xref href="GUID-C75726D3-E815-503D-8267-26DA27AD4787-GENID-1-12-1-26-1-1-9-1-5-1-11-1.dita">Big
+integers</xref> — Implementation of arbitrarily large integers. </p> <p>Note
+that although some methods are exported, the intent is that this library is
+only for use by the Cryptography library and not by application code. </p> </li>
+</ul> </section>
+</conbody></concept>
\ No newline at end of file