CipherSpi クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。
[Android.Runtime.Register("javax/crypto/CipherSpi", DoNotGenerateAcw=true)]
public abstract class CipherSpi : Java.Lang.Object
[<Android.Runtime.Register("javax/crypto/CipherSpi", DoNotGenerateAcw=true)>]
type CipherSpi = class
inherit Object
- 継承
- 属性
注釈
このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。 このクラスのすべての抽象メソッドは、特定の暗号アルゴリズムの実装を提供する各暗号サービス プロバイダーによって実装される必要があります。
このCipher クラスのインスタンスをカプセル化する CipherSpi のインスタンスを作成するために、アプリケーションは、Cipher#getInstance(java.lang.String) getInstance エンジン クラスの Cipher Cipher ファクトリ メソッドのいずれかを呼び出し、要求された変換を指定します。 必要に応じて、アプリケーションでプロバイダーの名前を指定することもできます。
変換とは、特定の入力に対して実行される操作 (または一連の操作) を記述し、出力を生成する文字列です。 変換には常に暗号化アルゴリズムの名前 ( DES など) が含まれており、その後にフィードバック モードと埋め込みスキームが続く場合があります。
変換の形式は次のとおりです。
<ul><li>"algorithm/mode/padding" または
<li>"algorithm" </ul>
(後者の場合、モードとパディング スキームのプロバイダー固有の既定値が使用されます)。 たとえば、有効な変換を次に示します。
{@code
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
}
プロバイダーは、アルゴリズム/モード/パディングの組み合わせごとに個別のクラスを提供することも、アルゴリズムまたはアルゴリズム/モードまたはアルゴリズム/パディング (二重スラッシュに注意) に対応するサブ変換を表すジェネリック クラスを提供することもできます。この場合、要求されたモードやパディングは、getInstanceのCipherメソッドによって自動的に設定され、プロバイダーのサブクラスの#engineSetMode(java.lang.String) engineSetModeメソッドと#engineSetPadding(java.lang.String) engineSetPaddingメソッドがCipherSpi。
プロバイダー マスター クラスの Cipher プロパティには、次のいずれかの形式を使用できます。
<ul>
<li>
// provider's subclass of "CipherSpi" implements "algName" with
// pluggable mode and padding
<code>Cipher.</code><i>algName</i>
<li>
// provider's subclass of "CipherSpi" implements "algName" in the
// specified "mode", with pluggable padding
<code>Cipher.</code><i>algName/mode</i>
<li>
// provider's subclass of "CipherSpi" implements "algName" with the
// specified "padding", with pluggable mode
<code>Cipher.</code><i>algName//padding</i>
<li>
// provider's subclass of "CipherSpi" implements "algName" with the
// specified "mode" and "padding"
<code>Cipher.</code><i>algName/mode/padding</i>
</ul>
たとえば、プロバイダーは CipherSpi を実装するのサブクラス、DES/CBC/PKCS5Padding を実装するサブクラス、DES/CFB/PKCS5Padding を実装するサブクラス、さらに DES/OFB/PKCS5Padding を実装するサブクラスを提供できます。 そのプロバイダーのマスター クラスには、次の Cipher プロパティがあります。
<ul>
<li>
<code>Cipher.</code><i>DES/ECB/PKCS5Padding</i>
<li>
<code>Cipher.</code><i>DES/CBC/PKCS5Padding</i>
<li>
<code>Cipher.</code><i>DES/CFB/PKCS5Padding</i>
<li>
<code>Cipher.</code><i>DES/OFB/PKCS5Padding</i>
</ul>
別のプロバイダーは、上記の各モードのクラス (たとえば、ECB 用に 1 つのクラス、CBC 用に 1 つ、CFB 用に 1 つ、OFB 用に 1 つ)、PKCS5Padding 用の 1 つのクラス、およびからサブクラス化するジェネリック CipherSpi クラスを実装できます。 そのプロバイダーのマスター クラスには、次の Cipher プロパティがあります。
<ul>
<li>
<code>Cipher.</code><i>DES</i>
</ul>
getInstance エンジン クラスの Cipher ファクトリ メソッドは、"CipherSpi" 形式の変換に対するプロバイダーのの実装をインスタンス化するために、次の規則に従います。
<ol><li> プロバイダーが指定された "CipherSpi" ののサブクラスを登録しているかどうかを確認します。
回答が YES の場合は、モードとパディング スキームの既定値 (プロバイダーによって提供される) が使用されるこのクラスをインスタンス化します。
回答が NO の場合は、 NoSuchAlgorithmException 例外をスローします。
</ol>
getInstance エンジン クラスの Cipher ファクトリ メソッドは、"CipherSpi" 形式の変換に対するのプロバイダーの実装をインスタンス化するために、次の規則に従います。
<ol><li> 指定された "CipherSpi" 変換ののサブクラスがプロバイダーによって登録されているかどうかを確認します。
答えが YES の場合は、インスタンス化します。
回答が NO の場合は、次の手順に進みます。
<li> サブ変換 "CipherSpi" ののサブクラスがプロバイダーによって登録されているかどうかを確認します。
答えが YES の場合は、インスタンス化し、新しいインスタンスで engineSetPadding(<i>padding</i>) を呼び出します。
回答が NO の場合は、次の手順に進みます。
<li> プロバイダーがサブ変換 "CipherSpi" ののサブクラスを登録しているかどうかを確認します (二重スラッシュに注意してください)。
答えが YES の場合は、インスタンス化し、新しいインスタンスで engineSetMode(<i>mode</i>) を呼び出します。
回答が NO の場合は、次の手順に進みます。
<li> プロバイダーがサブ変換 "CipherSpi" ののサブクラスを登録しているかどうかを確認します。
答えが YES の場合は、インスタンス化し、新しいインスタンスで engineSetMode(<i>mode</i>) と engineSetPadding(<i>padding</i>) を呼び出します。
回答が NO の場合は、 NoSuchAlgorithmException 例外をスローします。
</ol>
1.4 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| CipherSpi() |
新しい |
| CipherSpi(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
このクラスは、 クラスの< (>b<SPI>/b |
| JniPeerMembers |
このクラスは、 クラスの< (>b<SPI>/b |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
このクラスは、 クラスの< (>b<SPI>/b |
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
このクラスは、 クラスの< (>b<SPI>/b |
| EngineDoFinal(Byte[], Int32, Int32, Byte[], Int32) |
単一部分の操作でデータを暗号化または復号化するか、複数パート操作を完了します。 |
| EngineDoFinal(Byte[], Int32, Int32) |
単一部分の操作でデータを暗号化または復号化するか、複数パート操作を完了します。 |
| EngineDoFinal(ByteBuffer, ByteBuffer) |
単一部分の操作でデータを暗号化または復号化するか、複数パート操作を完了します。 |
| EngineGetBlockSize() |
ブロック サイズ (バイト単位) を返します。 |
| EngineGetIV() |
新しいバッファー内の初期化ベクトル (IV) を返します。 |
| EngineGetKeySize(IKey) |
指定されたキー オブジェクトのキー サイズをビット単位で返します。 |
| EngineGetOutputSize(Int32) |
次の |
| EngineGetParameters() |
この暗号で使用されるパラメーターを返します。 |
| EngineInit(Int32, IKey, AlgorithmParameters, SecureRandom) |
キー、アルゴリズム パラメーターのセット、およびランダム性のソースを使用して、この暗号を初期化します。 |
| EngineInit(Int32, IKey, IAlgorithmParameterSpec, SecureRandom) |
キー、アルゴリズム パラメーターのセット、およびランダム性のソースを使用して、この暗号を初期化します。 |
| EngineInit(Int32, IKey, SecureRandom) |
キーとランダム性のソースを使用して、この暗号を初期化します。 |
| EngineSetMode(String) |
この暗号のモードを設定します。 |
| EngineSetPadding(String) |
この暗号の埋め込みメカニズムを設定します。 |
| EngineUnwrap(Byte[], String, Int32) |
以前にラップされたキーのラップを解除します。 |
| EngineUpdate(Byte[], Int32, Int32, Byte[], Int32) |
(この暗号の初期化方法に応じて) 複数部分の暗号化または復号化操作を続行し、別のデータ 部分を処理します。 |
| EngineUpdate(Byte[], Int32, Int32) |
(この暗号の初期化方法に応じて) 複数部分の暗号化または復号化操作を続行し、別のデータ 部分を処理します。 |
| EngineUpdate(ByteBuffer, ByteBuffer) |
(この暗号の初期化方法に応じて) 複数部分の暗号化または復号化操作を続行し、別のデータ 部分を処理します。 |
| EngineUpdateAAD(Byte[], Int32, Int32) |
指定されたバッファーのサブセットを使用して、追加認証データ (AAD) のマルチパート更新を続行します。 |
| EngineUpdateAAD(ByteBuffer) |
追加認証データ (AAD) のマルチパート更新を続行します。 |
| EngineWrap(IKey) |
キーをラップします。 |
| Equals(Object) |
このクラスは、 クラスの< (>b<SPI>/b |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
このクラスは、 クラスの< (>b<SPI>/b |
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
このクラスは、 クラスの< (>b<SPI>/b |
| IJavaPeerable.Finalized() |
このクラスは、 クラスの< (>b<SPI>/b |
| IJavaPeerable.JniObjectReferenceControlBlock |
このクラスは、 クラスの< (>b<SPI>/b |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
このクラスは、 クラスの< (>b<SPI>/b |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
このクラスは、 クラスの< (>b<SPI>/b |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
このクラスは、 クラスの< (>b<SPI>/b |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
このクラスは、 クラスの< (>b<SPI>/b |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|