# SVC_DecryptSign

## Syntax

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

      void SVC_DecryptSign( const SVCSignHeapContext* acmemory_pool,
                              void* buffer,
                              const void* sgn_ptr,
                              const void* key_ptr );

## Arguments

acmemory_pool | Pointer to the heap information.
buffer | Pointer to the output data buffer.
sgn_ptr | Pointer to the digital signature data.
key_ptr | Pointer to the public key data.

## Return Values

Returns FALSE if the one of the pointers in the arguments is NULL or if the padding of the digital signature is invalid. Returns TRUE otherwise.

## Description

Decrypts signed data using the specified public key.

acmemory_pool is a pointer to the `SVCSignHeapContext` structure where information about the heap area used for the operation is stored. This is initialized by the `SVC_InitSignHeap` function.

buffer is a pointer to the output data buffer. The decrypted data is stored here.
Note: The output size is fixed at `SVC_SHA1_DIGEST_SIZE` (20 bytes).

sgn_ptr is a pointer to the digital signature data to decrypt.

key_ptr is a pointer to the public key data to use for decryption.

Only a 1024-bit key length is supported for the public key. See the key creation example in the CRYPTO library's RSA encryption overview for information on how to create a key.

## See Also

`SVC_InitSignHeap`, `SVC_DecryptRSA`, `SVC_DecryptSignDER`

## Revision History

2008/09/18 Added an explanation related to keys.
2008/05/22 Added a note on the output data size.
2007/10/19 Initial version.

CONFIDENTIAL