org.bouncycastle.crypto.hpke
Class HPKE
java.lang.Object
org.bouncycastle.crypto.hpke.HPKE
- public class HPKE
- extends java.lang.Object
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 |
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
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)
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)