# SVC_RandomSHA1

## Syntax

      #include <twl/os/common/systemCall.h>

      int SVC_Random( void* dest_ptr,
                        unsigned int dest_len,
                        const void* src_ptr,
                        unsigned int src_len );

## Arguments

dest_ptr | Pointer to the output data.
dest_len | Length of the output data.
src_ptr | Pointer to the input data.
src_len | Length of the input data.

## Return Values

Returns TRUE if the operation completed normally, or if `dest_ptr` is NULL. Returns FALSE otherwise.

## Description

Gets a random number using SHA-1.

In practice, the SHA-1 process is used to churn the input data arrays provided in src_ptr and src_len, and the result is stored the output data areas dest_ptr and dest_len. As a result, the same result can be achieved if the same data is provided as input.

Because SHA-1 is used, the input has a precision of 64 bytes, and the output has a precision of 20 bytes. The fact that the output has a precision of 20 bytes essentially means that when some data array is output, if the leading 20 bytes of that output is the same as that of the output of a separate operation, the rest of the data will be the same as well.

## See Also

`SVC_CalcSHA1
`

## Revision History

2007/10/19 Initial version.

CONFIDENTIAL