Bouncy Castle Cryptography Library 1.81

org.bouncycastle.crypto.hpke
Class HPKE

java.lang.Object
  extended byorg.bouncycastle.crypto.hpke.HPKE

public class HPKE
extends java.lang.Object


Field Summary
static short aead_AES_GCM128
           
static short aead_AES_GCM256
           
static short aead_CHACHA20_POLY1305
           
static short aead_EXPORT_ONLY
           
static short kdf_HKDF_SHA256
           
static short kdf_HKDF_SHA384
           
static short kdf_HKDF_SHA512
           
static short kem_P256_SHA256
           
static short kem_P384_SHA348
           
static short kem_P521_SHA512
           
static short kem_X25519_SHA256
           
static short kem_X448_SHA512
           
static byte mode_auth
           
static byte mode_auth_psk
           
static byte mode_base
           
static byte mode_psk
           
 
Constructor Summary
HPKE(byte mode, short kemId, short kdfId, short aeadId)
          Hybrid Public Key Encryption as described in RFC9180.
HPKE(byte mode, short kemId, short kdfId, short aeadId, KEM kem, int encSize)
           
 
Method Summary
 AsymmetricCipherKeyPair deriveKeyPair(byte[] ikm)
           
 AsymmetricCipherKeyPair deserializePrivateKey(byte[] skEncoded, byte[] pkEncoded)
           
 AsymmetricKeyParameter deserializePublicKey(byte[] pkEncoded)
           
 AsymmetricCipherKeyPair generatePrivateKey()
           
 short getAeadId()
           
 int getEncSize()
           
 byte[] open(byte[] enc, AsymmetricCipherKeyPair skR, byte[] info, byte[] aad, byte[] ct, byte[] psk, byte[] pskId, AsymmetricKeyParameter pkS)
           
 byte[] receiveExport(byte[] enc, AsymmetricCipherKeyPair skR, byte[] info, byte[] exporterContext, int L, byte[] psk, byte[] pskId, AsymmetricKeyParameter pkS)
           
 byte[][] seal(AsymmetricKeyParameter pkR, byte[] info, byte[] aad, byte[] pt, byte[] psk, byte[] pskId, AsymmetricCipherKeyPair skS)
           
 byte[][] sendExport(AsymmetricKeyParameter pkR, byte[] info, byte[] exporterContext, int L, byte[] psk, byte[] pskId, AsymmetricCipherKeyPair skS)
           
 byte[] serializePrivateKey(AsymmetricKeyParameter sk)
           
 byte[] serializePublicKey(AsymmetricKeyParameter pk)
           
 HPKEContext setupAuthPSKR(byte[] enc, AsymmetricCipherKeyPair skR, byte[] info, byte[] psk, byte[] psk_id, AsymmetricKeyParameter pkS)
           
 HPKEContextWithEncapsulation setupAuthPSKS(AsymmetricKeyParameter pkR, byte[] info, byte[] psk, byte[] psk_id, AsymmetricCipherKeyPair skS)
           
 HPKEContext setupAuthR(byte[] enc, AsymmetricCipherKeyPair skR, byte[] info, AsymmetricKeyParameter pkS)
           
 HPKEContextWithEncapsulation setupAuthS(AsymmetricKeyParameter pkR, byte[] info, AsymmetricCipherKeyPair skS)
           
 HPKEContext setupBaseR(byte[] enc, AsymmetricCipherKeyPair skR, byte[] info)
           
 HPKEContextWithEncapsulation setupBaseS(AsymmetricKeyParameter pkR, byte[] info)
           
 HPKEContextWithEncapsulation setupBaseS(AsymmetricKeyParameter pkR, byte[] info, AsymmetricCipherKeyPair kpE)
           
 HPKEContext setupPSKR(byte[] enc, AsymmetricCipherKeyPair skR, byte[] info, byte[] psk, byte[] psk_id)
           
 HPKEContextWithEncapsulation SetupPSKS(AsymmetricKeyParameter pkR, byte[] info, byte[] psk, byte[] psk_id)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mode_base

public static final byte mode_base
See Also:
Constant Field Values

mode_psk

public static final byte mode_psk
See Also:
Constant Field Values

mode_auth

public static final byte mode_auth
See Also:
Constant Field Values

mode_auth_psk

public static final byte mode_auth_psk
See Also:
Constant Field Values

kem_P256_SHA256

public static final short kem_P256_SHA256
See Also:
Constant Field Values

kem_P384_SHA348

public static final short kem_P384_SHA348
See Also:
Constant Field Values

kem_P521_SHA512

public static final short kem_P521_SHA512
See Also:
Constant Field Values

kem_X25519_SHA256

public static final short kem_X25519_SHA256
See Also:
Constant Field Values

kem_X448_SHA512

public static final short kem_X448_SHA512
See Also:
Constant Field Values

kdf_HKDF_SHA256

public static final short kdf_HKDF_SHA256
See Also:
Constant Field Values

kdf_HKDF_SHA384

public static final short kdf_HKDF_SHA384
See Also:
Constant Field Values

kdf_HKDF_SHA512

public static final short kdf_HKDF_SHA512
See Also:
Constant Field Values

aead_AES_GCM128

public static final short aead_AES_GCM128
See Also:
Constant Field Values

aead_AES_GCM256

public static final short aead_AES_GCM256
See Also:
Constant Field Values

aead_CHACHA20_POLY1305

public static final short aead_CHACHA20_POLY1305
See Also:
Constant Field Values

aead_EXPORT_ONLY

public static final short aead_EXPORT_ONLY
See Also:
Constant Field Values
Constructor Detail

HPKE

public HPKE(byte mode,
            short kemId,
            short kdfId,
            short aeadId)
Hybrid Public Key Encryption as described in RFC9180.

See Also:
RFC9180 An implementation of the Hybrid Public Key Encryption.

HPKE

public HPKE(byte mode,
            short kemId,
            short kdfId,
            short aeadId,
            KEM kem,
            int encSize)
Method Detail

getEncSize

public int getEncSize()

getAeadId

public short getAeadId()

generatePrivateKey

public AsymmetricCipherKeyPair generatePrivateKey()

serializePublicKey

public byte[] serializePublicKey(AsymmetricKeyParameter pk)

serializePrivateKey

public byte[] serializePrivateKey(AsymmetricKeyParameter sk)

deserializePublicKey

public AsymmetricKeyParameter deserializePublicKey(byte[] pkEncoded)

deserializePrivateKey

public AsymmetricCipherKeyPair deserializePrivateKey(byte[] skEncoded,
                                                     byte[] pkEncoded)

deriveKeyPair

public AsymmetricCipherKeyPair deriveKeyPair(byte[] ikm)

sendExport

public byte[][] sendExport(AsymmetricKeyParameter pkR,
                           byte[] info,
                           byte[] exporterContext,
                           int L,
                           byte[] psk,
                           byte[] pskId,
                           AsymmetricCipherKeyPair skS)

receiveExport

public byte[] receiveExport(byte[] enc,
                            AsymmetricCipherKeyPair skR,
                            byte[] info,
                            byte[] exporterContext,
                            int L,
                            byte[] psk,
                            byte[] pskId,
                            AsymmetricKeyParameter pkS)

seal

public byte[][] seal(AsymmetricKeyParameter pkR,
                     byte[] info,
                     byte[] aad,
                     byte[] pt,
                     byte[] psk,
                     byte[] pskId,
                     AsymmetricCipherKeyPair skS)
              throws InvalidCipherTextException
Throws:
InvalidCipherTextException

open

public byte[] open(byte[] enc,
                   AsymmetricCipherKeyPair skR,
                   byte[] info,
                   byte[] aad,
                   byte[] ct,
                   byte[] psk,
                   byte[] pskId,
                   AsymmetricKeyParameter pkS)
            throws InvalidCipherTextException
Throws:
InvalidCipherTextException

setupBaseS

public HPKEContextWithEncapsulation setupBaseS(AsymmetricKeyParameter pkR,
                                               byte[] info)

setupBaseS

public HPKEContextWithEncapsulation setupBaseS(AsymmetricKeyParameter pkR,
                                               byte[] info,
                                               AsymmetricCipherKeyPair kpE)

setupBaseR

public HPKEContext setupBaseR(byte[] enc,
                              AsymmetricCipherKeyPair skR,
                              byte[] info)

SetupPSKS

public HPKEContextWithEncapsulation SetupPSKS(AsymmetricKeyParameter pkR,
                                              byte[] info,
                                              byte[] psk,
                                              byte[] psk_id)

setupPSKR

public HPKEContext setupPSKR(byte[] enc,
                             AsymmetricCipherKeyPair skR,
                             byte[] info,
                             byte[] psk,
                             byte[] psk_id)

setupAuthS

public HPKEContextWithEncapsulation setupAuthS(AsymmetricKeyParameter pkR,
                                               byte[] info,
                                               AsymmetricCipherKeyPair skS)

setupAuthR

public HPKEContext setupAuthR(byte[] enc,
                              AsymmetricCipherKeyPair skR,
                              byte[] info,
                              AsymmetricKeyParameter pkS)

setupAuthPSKS

public HPKEContextWithEncapsulation setupAuthPSKS(AsymmetricKeyParameter pkR,
                                                  byte[] info,
                                                  byte[] psk,
                                                  byte[] psk_id,
                                                  AsymmetricCipherKeyPair skS)

setupAuthPSKR

public HPKEContext setupAuthPSKR(byte[] enc,
                                 AsymmetricCipherKeyPair skR,
                                 byte[] info,
                                 byte[] psk,
                                 byte[] psk_id,
                                 AsymmetricKeyParameter pkS)

Bouncy Castle Cryptography Library 1.81