Bouncy Castle Cryptography Library 1.77.0

org.bouncycastle.crypto.hpke
Class HPKE

java.lang.Object
  |
  +--org.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.
 
Method Summary
 AsymmetricCipherKeyPair deriveKeyPair(byte[] ikm)
           
 AsymmetricCipherKeyPair deserializePrivateKey(byte[] skEncoded, byte[] pkEncoded)
           
 AsymmetricKeyParameter deserializePublicKey(byte[] pkEncoded)
           
 AsymmetricCipherKeyPair generatePrivateKey()
           
 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

mode_psk

public static final byte mode_psk

mode_auth

public static final byte mode_auth

mode_auth_psk

public static final byte mode_auth_psk

kem_P256_SHA256

public static final short kem_P256_SHA256

kem_P384_SHA348

public static final short kem_P384_SHA348

kem_P521_SHA512

public static final short kem_P521_SHA512

kem_X25519_SHA256

public static final short kem_X25519_SHA256

kem_X448_SHA512

public static final short kem_X448_SHA512

kdf_HKDF_SHA256

public static final short kdf_HKDF_SHA256

kdf_HKDF_SHA384

public static final short kdf_HKDF_SHA384

kdf_HKDF_SHA512

public static final short kdf_HKDF_SHA512

aead_AES_GCM128

public static final short aead_AES_GCM128

aead_AES_GCM256

public static final short aead_AES_GCM256

aead_CHACHA20_POLY1305

public static final short aead_CHACHA20_POLY1305

aead_EXPORT_ONLY

public static final short aead_EXPORT_ONLY
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.
Method Detail

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

open

public byte[] open(byte[] enc,
                   AsymmetricCipherKeyPair skR,
                   byte[] info,
                   byte[] aad,
                   byte[] ct,
                   byte[] psk,
                   byte[] pskId,
                   AsymmetricKeyParameter pkS)
            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.77.0