Package org.bouncycastle.crypto.hpke
Class HPKE
- java.lang.Object
-
- org.bouncycastle.crypto.hpke.HPKE
-
public class HPKE extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description 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
Constructors Constructor Description HPKE(byte mode, short kemId, short kdfId, short aeadId)
Hybrid Public Key Encryption as described in RFC9180.
-
Method Summary
-
-
-
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
-
-
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)
-
-