diff -r 000000000000 -r 2c201484c85f crypto/weakcrypto/docs/bigint.dox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/crypto/weakcrypto/docs/bigint.dox Wed Jul 08 11:25:26 2009 +0100 @@ -0,0 +1,53 @@ +/** + @page bigint Big Integer + + - @ref bigintWhat + - @ref bigintHow + + @section bigintWhat What does the big integer library do? + +Some types of cryptography require the handling of finite arbitrary length +integers. This big integer library attempts to provide support for that +requirement. + +It is capable of representing both negative and positive integers with an +absolute value of less than 232^(232). + + @section bigintHow How do I use the big integer library? + +There are four categories of exposed APIs: +-# Creation of new integers given some other representation (descriptor, TUint, +etc). +@ref RInteger RInteger::NewL() +-# Creation of new integers given some criteria (range, bitcount, prime). +@ref RInteger RInteger::NewRandomL(), RInteger::NewPrimeL() +-# Exporting of previously created integers to descriptors. +@ref TInteger TInteger::BufferLC() +-# Querying attributes about the size of a previously created integer. +@ref TInteger TInteger::BitCount(), TInteger::ByteCount(), TInteger::WordCount(). + +The following code demostrates how to create an \c RInteger from a bitstring +representation of a big integer. + +@code +//This creates an RInteger from the following binary hexadecimal (base 16) +//descriptor. Note that the number is written overall in big endian (most +//significant digit is first, least significant digit (ones digit) is last). +//P.S. The hexadecimal binary descriptor below is the base 16 representation +//of the base 10 number 123456789012345678901234567890. +RInteger integer = RInteger::NewL(_L8("18EE90FF6C373E0EE4E3F0AD2")); +CleanupStack::PushL(integer); + +//This next line converts the number stored by an RInteger into a binary, big +//endian, hexadecimal descriptor. +HBufC8* descriptor = integer.BufferLC(); +CleanupStack::Pop(descriptor); +CleanupStack::PopAndDestroy(integer); +//descriptor is the same as the original _L8 input value now. +@endcode + +For more information on integers, including important memory management +information and additional creation overloads, see \c RInteger @ref RInteger. + +*/ +