クラスPEMEncoder

java.lang.Object
java.security.PEMEncoder

public finalクラスPEMEncoderオブジェクトを拡張します。
PEMEncoderは、JavaプラットフォームのプレビューAPIです。
プレビュー機能が有効になっている場合のみ、プログラムでPEMEncoderを使用できます。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
PEMEncoderは、Privacy-Enhanced Mail (PEM)データのエンコーダを実装します。 PEMは、非対称キー、証明書、証明書失効リスト(CRL)などの暗号化オブジェクトを格納および転送するために使用されるテキスト・エンコーディングです。 これは、RFC 1421およびRFC 7468で定義されています。 PEMは、型識別ヘッダーおよびフッターで囲まれたBase64でエンコードされたバイナリ・エンコーディングで構成されます。

エンコーディングは、DEREncodablePREVIEWを実装する暗号化オブジェクトに対して実行できます。 encode(DEREncodable)およびencodeToString(DEREncodable)メソッドは、DEREncodableをPEMにエンコードし、データをバイト配列またはStringで返します。

秘密キーは、withEncryption(char[])メソッドを使用してPEMEncoderを構成することで暗号化およびエンコードできます。このメソッドは、パスワードを取得し、そのパスワードでキーを暗号化するように構成された新しいPEMEncoderインスタンスを返します。 または、EncryptedPrivateKeyInfoオブジェクトとして暗号化された秘密キーを、encodeまたはencodeToStringメソッドに渡すことによって、PEMに直接エンコードすることもできます。

PKCS #8 v2.0は、非公開鍵と公開鍵の両方を含むASN.1 OneAsymmetricKey構造体を定義します。 encodeまたはencodeToStringメソッドに渡されるKeyPairオブジェクトは、PRIVATE KEY型を使用してOneAsymmetricKey構造体としてエンコードされます。

PEMPREVIEWオブジェクトをエンコードする場合、APIはPEM.content()PREVIEWPEM.type()PREVIEWに基づいてPEMヘッダーおよびフッターで囲みます。 PEM.leadingData()PREVIEWによって返される値は、出力に含まれません。

次に、サポートされているDEREncodableクラスと、それらがエンコードするPEMタイプを示します。

暗号化用に構成されたPEMEncoderインスタンスとともに使用する場合:

このクラスは不変でスレッドセーフです。

例: 秘密キーをエンコードします。

    PEMEncoder pe = PEMEncoder.of();
    byte[] pemData = pe.encode(privKey);

例: パスワードを使用して秘密キーを暗号化およびエンコードします:

    PEMEncoder pe = PEMEncoder.of().withEncryption(password);
    byte[] pemData = pe.encode(privKey);

実装上のノート:
実装では、追加のPEMタイプをサポートできます。
導入されたバージョン:
25
外部仕様
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    byte[]
    指定されたDEREncodableをエンコードし、PEMでエンコードされたバイト配列を返します。
    指定されたDEREncodableをエンコードし、PEMでエンコードされた文字列を返します。
    of()
    PEMEncoderのインスタンスを返します。
    withEncryption(char[] password)
    指定されたパスワードおよびデフォルトの暗号化アルゴリズムを使用して暗号化およびエンコードする、このPEMEncoderのコピーを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • メソッドの詳細

    • of

      public static PEMEncoderPREVIEW of()
      PEMEncoderのインスタンスを返します。
      戻り値:
      PEMEncoder
    • encodeToString

      public String encodeToString(DEREncodablePREVIEW de)
      指定されたDEREncodableをエンコードし、PEMでエンコードされた文字列を返します。
      パラメータ:
      de - エンコードされるDEREncodable
      戻り値:
      PEMでエンコードされたデータを含むString
      スロー:
      IllegalArgumentException - DEREncodableをエンコードできない場合
      NullPointerException - denullの場合
      関連項目:
    • encode

      public byte[] encode(DEREncodablePREVIEW de)
      指定されたDEREncodableをエンコードし、PEMでエンコードされたバイト配列を返します。
      パラメータ:
      de - エンコードされるDEREncodable
      戻り値:
      PEMでエンコードされたバイト配列
      スロー:
      IllegalArgumentException - DEREncodableをエンコードできない場合
      NullPointerException - denullの場合
      関連項目:
    • withEncryption

      public PEMEncoderPREVIEW withEncryption(char[] password)
      指定されたパスワードおよびデフォルトの暗号化アルゴリズムを使用して暗号化およびエンコードする、このPEMEncoderのコピーを返します。

      この新しく構成されたインスタンスでエンコードできるのは、PrivateKeyKeyPairおよびPKCS8EncodedKeySpecオブジェクトのみです。 他のDEREncodableオブジェクトをエンコードすると、IllegalArgumentExceptionがスローされます。

      実装上のノート:
      jdk.epkcs8.defaultAlgorithmセキュリティ・プロパティは、デフォルトの暗号化アルゴリズムを定義します。 AlgorithmParameterSpecのデフォルトはプロバイダによって決まります。 デフォルト以外の暗号化パラメータを使用するか、別の暗号化プロバイダで暗号化するには、EncryptedPrivateKeyInfo.encrypt(DEREncodable, Key, String, AlgorithmParameterSpec, Provider, SecureRandom)PREVIEWを使用し、返されたオブジェクトをencode(DEREncodable)とともに使用します。
      パラメータ:
      password - 暗号化パスワード。 配列がクローニングされ、新しいインスタンスに格納されます。
      戻り値:
      暗号化用に構成された新しいPEMEncoderインスタンス
      スロー:
      NullPointerException - パスワードがnullの場合
      IllegalArgumentException - 暗号化キーの生成に失敗した場合