クラスEncryptedPrivateKeyInfo

java.lang.Object
javax.crypto.EncryptedPrivateKeyInfo
すべての実装されたインタフェース:
DEREncodablePREVIEW

公開非シール・クラスEncryptedPrivateKeyInfo ObjectDEREncodablePREVIEWを実装する拡張
このクラスは、PKCS#8で定義されているEncryptedPrivateKeyInfo型を実装します。

そのASN.1定義は次のとおりです。

EncryptedPrivateKeyInfo ::=  SEQUENCE {
    encryptionAlgorithm   AlgorithmIdentifier,
    encryptedData   OCTET STRING }

AlgorithmIdentifier  ::=  SEQUENCE  {
    algorithm              OBJECT IDENTIFIER,
    parameters             ANY DEFINED BY algorithm OPTIONAL  }

導入されたバージョン:
1.4
関連項目:
  • コンストラクタの詳細

    • EncryptedPrivateKeyInfo

      public EncryptedPrivateKeyInfo(byte[] encoded) throws IOException
      指定された暗号化されたPKCS#8 ASN.1エンコーディングからEncryptedPrivateKeyInfoを構築します。
      パラメータ:
      encoded - このオブジェクトのASN.1エンコーディング。 この配列の内容は、後続の変更に影響されないようにコピーされる。
      スロー:
      NullPointerException - encodednullの場合
      IOException - ASN.1エンコーディングの解析時にエラーが発生した場合。
    • EncryptedPrivateKeyInfo

      public EncryptedPrivateKeyInfo(String algName, byte[] encryptedData) throws NoSuchAlgorithmException
      暗号化アルゴリズム名と暗号化されたデータからEncryptedPrivateKeyInfoを構築します。

      ノート: このコンストラクタでは、アルゴリズム・パラメータの値としてnullを使用します。 暗号化アルゴリズムに値がnullではないパラメータがある場合は、別のコンストラクタ(EncryptedPrivateKeyInfo(AlgorithmParameters, byte[])など)を使用する必要があります。

      パラメータ:
      algName - 暗号化アルゴリズム名。 標準Cipherアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名」ドキュメントを参照してください。
      encryptedData - 暗号化されたデータ。 encryptedDataの内容は、このオブジェクトの作成時に以降の変更から保護するためにコピーされます。
      スロー:
      NullPointerException - algNameまたはencryptedDatanullの場合。
      IllegalArgumentException - encryptedDataが空(長さ0)の場合。
      NoSuchAlgorithmException - 指定されたalgNameがサポートされていない場合。
      外部仕様
    • EncryptedPrivateKeyInfo

      public EncryptedPrivateKeyInfo(AlgorithmParameters algParams, byte[] encryptedData) throws NoSuchAlgorithmException
      暗号化アルゴリズム・パラメータと暗号化されたデータからEncryptedPrivateKeyInfoを構築します。
      パラメータ:
      algParams - 暗号化アルゴリズムのアルゴリズム・パラメータ。algParams.getEncoded()は、EncryptedPrivateKeyInfoタイプのAlgorithmIdentifierコンポーネントのparametersフィールドのASN.1エンコード・バイトを返します。
      encryptedData - 暗号化されたデータ。 encryptedDataの内容は、このオブジェクトの作成時に以降の変更から保護するためにコピーされます。
      スロー:
      NullPointerException - algParamsまたはencryptedDatanullの場合。
      IllegalArgumentException - encryptedDataが空(長さ0)の場合。
      NoSuchAlgorithmException - 指定されたalgParamsパラメータの指定されたalgNameがサポートされていない場合。
  • メソッドの詳細

    • getAlgName

      public String getAlgName()
      暗号化アルゴリズムを返します。

      ノート: このようなマッピングが有効なときには、コンストラクタで指定された名前ではなく標準名が返されます。 標準Cipherアルゴリズム名については、「Javaセキュリティ標準アルゴリズム名」ドキュメントを参照してください。

      戻り値:
      暗号化アルゴリズム名
      外部仕様
    • getAlgParameters

      public AlgorithmParameters getAlgParameters()
      暗号化アルゴリズムで使用されるアルゴリズム・パラメータを返します。
      戻り値:
      アルゴリズム・パラメータ
    • getEncryptedData

      public byte[] getEncryptedData()
      暗号化されたデータを返します。
      戻り値:
      暗号化されたデータ。 このメソッドが呼び出されるたびに新しい配列を返す。
    • getKeySpec

      public PKCS8EncodedKeySpec getKeySpec(Cipher cipher) throws InvalidKeySpecException
      暗号化されたデータから内包されているPKCS8EncodedKeySpecオブジェクトを抽出して返します。
      ノート: 内包されたPKCS8EncodedKeySpecオブジェクトを正常に取得するには、暗号化されたデータの生成に使用する場合と同じキーとパラメータを使用して、cipherをCipher.DECRYPT_MODEまたはCipher.UNWRAP_MODEのいずれかに初期化する必要があります。
      パラメータ:
      cipher - 暗号化されたデータの復号化に使用される初期化されたCipherオブジェクト。
      戻り値:
      PKCS8EncodedKeySpecオブジェクト
      スロー:
      NullPointerException - ciphernullの場合。
      InvalidKeySpecException - 指定された暗号が暗号化されたデータに不適切な場合、または暗号化されたデータが壊れていて復号化できない場合。
    • encryptKey

      public static EncryptedPrivateKeyInfo encryptKey(PrivateKey key, char[] password, String algorithm, AlgorithmParameterSpec params, Provider provider)
      encryptKeyは、JavaプラットフォームのプレビューAPIです。
      プレビュー機能が有効になっている場合のみ、プログラムでencryptKeyを使用できます。
      プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
      指定されたPrivateKeyからEncryptedPrivateKeyInfoを作成および暗号化します。 有効なパスワードベースの暗号化(PBE)アルゴリズムおよびパスワードを指定する必要があります。

      PBEアルゴリズム文字列書式の詳細は、Javaセキュリティ標準アルゴリズム名仕様の「暗号」セクションを参照してください。

      実装上のノート:
      jdk.epkcs8.defaultAlgorithmセキュリティ・プロパティはデフォルトの暗号化アルゴリズムを定義し、AlgorithmParameterSpecはプロバイダのアルゴリズムのデフォルトです。
      パラメータ:
      key - 暗号化されるPrivateKey
      password - PBE暗号化で使用されるパスワード。 この配列は、使用前にクローニングされます。
      algorithm - PBE暗号化アルゴリズム。 デフォルトのアルゴリズムは、nullの場合に使用されます。 ただし、paramsがNULL以外の場合、nullは許可されません。
      params - 暗号化で使用されるAlgorithmParameterSpec nullの場合、プロバイダのデフォルトが使用されます。
      provider - Providerは、PBEのSecretKeyFactory生成およびCipher暗号化操作に使用されます。 nullの場合、デフォルトのプロバイダ・リストが使用されます。
      戻り値:
      EncryptedPrivateKeyInfo
      スロー:
      IllegalArgumentException - メソッドに渡された引数に基づく初期化エラー
      RuntimeException - 暗号化エラー時
      NullPointerException - キーまたはパスワードがnullの場合。 algorithmnullの場合、paramsがNULL以外の場合。
      導入されたバージョン:
      25
    • encryptKey

      public static EncryptedPrivateKeyInfo encryptKey(PrivateKey key, char[] password)
      encryptKeyは、JavaプラットフォームのプレビューAPIです。
      プレビュー機能が有効になっている場合のみ、プログラムでencryptKeyを使用できます。
      プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
      指定されたPrivateKeyおよびパスワードからEncryptedPrivateKeyInfoを作成および暗号化します。 デフォルトのアルゴリズムとパラメータが使用されます。
      実装上のノート:
      jdk.epkcs8.defaultAlgorithmセキュリティ・プロパティはデフォルトの暗号化アルゴリズムを定義し、AlgorithmParameterSpecはプロバイダのアルゴリズムのデフォルトです。
      パラメータ:
      key - 暗号化されるPrivateKey
      password - PBE暗号化で使用されるパスワード。 この配列は、使用前にクローニングされます。
      戻り値:
      EncryptedPrivateKeyInfo
      スロー:
      IllegalArgumentException - メソッドに渡された引数に基づく初期化エラー
      RuntimeException - 暗号化エラー時
      NullPointerException - keyまたはpasswordnullの場合
      導入されたバージョン:
      25
    • encryptKey

      public static EncryptedPrivateKeyInfo encryptKey(PrivateKey key, Key encKey, String algorithm, AlgorithmParameterSpec params, Provider provider, SecureRandom random)
      encryptKeyは、JavaプラットフォームのプレビューAPIです。
      プレビュー機能が有効になっている場合のみ、プログラムでencryptKeyを使用できます。
      プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
      encKeyおよび指定されたパラメータを使用して、指定されたPrivateKeyからEncryptedPrivateKeyInfoを作成および暗号化します。
      実装上のノート:
      jdk.epkcs8.defaultAlgorithmセキュリティ・プロパティはデフォルトの暗号化アルゴリズムを定義し、AlgorithmParameterSpecはプロバイダのアルゴリズムのデフォルトです。
      パラメータ:
      key - 暗号化されるPrivateKey
      encKey - keyの暗号化に使用されるパスワードベースの暗号化(PBE) Key
      algorithm - PBE暗号化アルゴリズム。 nullの場合、デフォルトのアルゴリズムが使用されます。ただし、paramsがNULL以外の場合、nullは使用できません。
      params - 暗号化で使用されるAlgorithmParameterSpec nullの場合、プロバイダ・リストのデフォルトが使用されます。
      provider - Providerは、Cipher暗号化操作に使用されます。 nullの場合、デフォルトのプロバイダ・リストが使用されます。
      random - 暗号化時に使用されるSecureRandomインスタンス。 nullの場合、デフォルトが使用されます。
      戻り値:
      EncryptedPrivateKeyInfo
      スロー:
      IllegalArgumentException - メソッドに渡された引数に基づく初期化エラー
      RuntimeException - 暗号化エラー時
      NullPointerException - keyまたはencKeynullの場合。 paramsがNULL以外の場合、algorithmnullにすることはできません。
      導入されたバージョン:
      25
    • getKey

      public PrivateKey getKey(char[] password)GeneralSecurityExceptionをスローします。
      getKeyは、JavaプラットフォームのプレビューAPIです。
      プレビュー機能が有効になっている場合のみ、プログラムでgetKeyを使用できます。
      プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
      暗号化されたデータから囲まれたPrivateKeyオブジェクトを抽出して返します。
      パラメータ:
      password - PBE暗号化で使用されるパスワード。 この配列は、使用前にクローニングされます。
      戻り値:
      PrivateKey
      スロー:
      GeneralSecurityException - 暗号化されたデータの解析または復号化、またはキー・オブジェクトの生成でエラーが発生した場合。
      NullPointerException - passwordがnullの場合
      導入されたバージョン:
      25
    • getKey

      public PrivateKey getKey(キー decryptKey、プロバイダ・プロバイダ)GeneralSecurityExceptionをスローします
      getKeyは、JavaプラットフォームのプレビューAPIです。
      プレビュー機能が有効になっている場合のみ、プログラムでgetKeyを使用できます。
      プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
      暗号化されたデータから囲まれたPrivateKeyオブジェクトを抽出して返します。
      パラメータ:
      decryptKey - 復号化キーで、nullにはできません
      provider - 暗号復号化およびPrivateKey生成に使用されるProvider null値では、デフォルトのプロバイダ構成が使用されます。
      戻り値:
      PrivateKey
      スロー:
      GeneralSecurityException - 暗号化されたデータの解析または復号化、またはキー・オブジェクトの生成でエラーが発生した場合。
      NullPointerException - decryptKeyがnullである場合
      導入されたバージョン:
      25
    • getKeySpec

      public PKCS8EncodedKeySpec getKeySpec(Key decryptKey) throws NoSuchAlgorithmException, InvalidKeyException
      暗号化されたデータから内包されているPKCS8EncodedKeySpecオブジェクトを抽出して返します。
      パラメータ:
      decryptKey - 暗号化されたデータの復号化に使用されるキー。
      戻り値:
      PKCS8EncodedKeySpecオブジェクト
      スロー:
      NullPointerException - decryptKeynullの場合。
      NoSuchAlgorithmException - 暗号化されたデータの復号化に適切な暗号を見つけることができない場合。
      InvalidKeyException - 暗号化されたデータの復号化にdecryptKeyを使用できない場合、または復号化の結果が有効なPKCS8KeySpecでない場合。
      導入されたバージョン:
      1.5
    • getKeySpec

      暗号化されたデータから内包されているPKCS8EncodedKeySpecオブジェクトを抽出して返します。
      パラメータ:
      decryptKey - 暗号化されたデータの復号化に使用されるキー。
      providerName - 暗号実装を使用するプロバイダの名前。
      戻り値:
      PKCS8EncodedKeySpecオブジェクト
      スロー:
      NullPointerException - decryptKeyまたはproviderNamenullの場合。
      NoSuchProviderException - providerNameで指定されたプロバイダが登録されていない場合。
      NoSuchAlgorithmException - 暗号化されたデータの復号化に適切な暗号を見つけることができない場合。
      InvalidKeyException - 暗号化されたデータの復号化にdecryptKeyを使用できない場合、または復号化の結果が有効なPKCS8KeySpecでない場合。
      導入されたバージョン:
      1.5
    • getKeySpec

      public PKCS8EncodedKeySpec getKeySpec(Key decryptKey, Provider provider) throws NoSuchAlgorithmException, InvalidKeyException
      暗号化されたデータから内包されているPKCS8EncodedKeySpecオブジェクトを抽出して返します。
      パラメータ:
      decryptKey - 暗号化されたデータの復号化に使用されるキー。
      provider - 暗号実装を使用するプロバイダの名前。
      戻り値:
      PKCS8EncodedKeySpecオブジェクト
      スロー:
      NullPointerException - decryptKeyまたはprovidernullの場合。
      NoSuchAlgorithmException - provider内の暗号化されたデータの復号化に適切な暗号を見つけることができない場合。
      InvalidKeyException - 暗号化されたデータの復号化にdecryptKeyを使用できない場合、または復号化の結果が有効なPKCS8KeySpecでない場合。
      導入されたバージョン:
      1.5
    • getEncoded

      public byte[] getEncoded() throws IOException
      このオブジェクトのASN.1エンコーディングを返します。
      戻り値:
      ASN.1エンコーディング このメソッドが呼び出されるたびに新しい配列を返す。
      スロー:
      IOException - そのASN.1エンコーディングの構築時にエラーが発生した場合。