# SVC_DecryptRSA

## 構文

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

      int SVC_DecryptRSA( const SVCSignHeapContext* acmemory_pool,
                           const SVCSignBuffers* pData,
                       　  unsigned int* len );

      typedef struct
      {
         u32* head;
         u32* tail;
         u32 size;
      }
      SVCSignHeapContext;

      typedef struct
      {
         void* output;
         const void* input;
         const void* key;
      }
      SVCSignBuffers;

## 引数

acmemory_pool | ヒープ情報へのポインタ
pData | データの格納されている領域などの情報構造体へのポインタ
len | データの大きさ

## 返り値

引数のポインタや、pData のメンバに NULL のものがあれば FALSEを返します。
その他の場合、TRUE を返します。

## 説明

RSA 復号を行います。

acmemory_pool は処理で使用するヒープ領域の情報が格納されている SVCSignHeapContext 構造体へのポインタです。`SVC_InitSignHeap()` で初期化したものです。

pData はデータが格納される領域などの情報をまとめた構造体へのポインタです。メンバ `input` は入力データへのポインタで、`output` は出力データ領域へのポインタです。`key` は復号に用いる秘密鍵へのポインタです。秘密鍵の鍵長は1024bitのみサポートしています。

len はデータの大きさです。

なお、秘密鍵の生成方法はCRYPTOのRSA暗号概要の鍵作成例を参照してください。

## 参照

`SVC_InitSignHeap`, `SVC_DecryptSign`, `SVC_DecryptSignDER`

## 履歴

2008/09/18 鍵に関する解説追加
2007/10/19 初版