CipherSpi クラス

定義

このクラスは、 クラスの< (>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");
            }

プロバイダーは、アルゴリズム/モード/パディングの組み合わせごとに個別のクラスを提供することも、アルゴリズムまたはアルゴリズム/モードまたはアルゴリズム/パディング (二重スラッシュに注意) に対応するサブ変換を表すジェネリック クラスを提供することもできます。この場合、要求されたモードやパディングは、getInstanceCipherメソッドによって自動的に設定され、プロバイダーのサブクラスの#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 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
CipherSpi()

新しい CipherSpi インスタンスを作成します。

CipherSpi(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

(継承元 JavaObject)
JniPeerMembers

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

(継承元 JavaObject)
EngineDoFinal(Byte[], Int32, Int32, Byte[], Int32)

単一部分の操作でデータを暗号化または復号化するか、複数パート操作を完了します。

EngineDoFinal(Byte[], Int32, Int32)

単一部分の操作でデータを暗号化または復号化するか、複数パート操作を完了します。

EngineDoFinal(ByteBuffer, ByteBuffer)

単一部分の操作でデータを暗号化または復号化するか、複数パート操作を完了します。

EngineGetBlockSize()

ブロック サイズ (バイト単位) を返します。

EngineGetIV()

新しいバッファー内の初期化ベクトル (IV) を返します。

EngineGetKeySize(IKey)

指定されたキー オブジェクトのキー サイズをビット単位で返します。

EngineGetOutputSize(Int32)

次の update または doFinal 操作の結果を保持するために出力バッファーが必要とする長さをバイト単位で返します(入力長 inputLen (バイト単位)。

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>/bCipher) を定義します。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

(継承元 JavaObject)
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>/bCipher) を定義します。

(継承元 JavaObject)
IJavaPeerable.Finalized()

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

(継承元 JavaObject)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

このクラスは、 クラスの< (>b<SPI>/bCipher) を定義します。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象