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. |
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 |
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
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.
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)