System.Security.Cryptography.Hpke
Represents a Hybrid Public Key Encryption (HPKE) key.
namespace System.Security.Cryptography
{
public abstract class Hpke : IDisposable
{
public HpkeSuite Suite { get; }
protected Hpke(HpkeSuite suite);
public static bool IsSupported(HpkeSuite suite);
public static Hpke DeriveKey(HpkeSuite suite, byte[] ikm);
public static Hpke DeriveKey(HpkeSuite suite, ReadOnlySpan<byte> ikm);
public static Hpke GenerateKey(HpkeSuite suite);
public static Hpke ImportDecapsulationKey(HpkeSuite suite, byte[] source);
public static Hpke ImportDecapsulationKey(HpkeSuite suite, ReadOnlySpan<byte> source);
public static Hpke ImportEncapsulationKey(HpkeSuite suite, byte[] source);
public static Hpke ImportEncapsulationKey(HpkeSuite suite, ReadOnlySpan<byte> source);
public byte[] ExportDecapsulationKey();
public void ExportDecapsulationKey(Span<byte> destination);
protected abstract void ExportDecapsulationKeyCore(Span<byte> destination);
public byte[] ExportEncapsulationKey();
public void ExportEncapsulationKey(Span<byte> destination);
protected abstract void ExportEncapsulationKeyCore(Span<byte> destination);
public void Seal(ReadOnlySpan<byte> plaintext, out byte[] encapsulatedSecret, out byte[] ciphertext, ReadOnlySpan<byte> associatedData = default(ReadOnlySpan<byte>), ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
public void Seal(byte[] plaintext, out byte[] encapsulatedSecret, out byte[] ciphertext, byte[] associatedData = null, byte[] info = null);
public void Seal(ReadOnlySpan<byte> plaintext, Span<byte> encapsulatedSecret, Span<byte> ciphertext, ReadOnlySpan<byte> associatedData = default(ReadOnlySpan<byte>), ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
protected abstract void SealCore(ReadOnlySpan<byte> plaintext, Span<byte> encapsulatedSecret, Span<byte> ciphertext, ReadOnlySpan<byte> associatedData, ReadOnlySpan<byte> info);
public byte[] Open(ReadOnlySpan<byte> encapsulatedSecret, ReadOnlySpan<byte> ciphertext, ReadOnlySpan<byte> associatedData = default(ReadOnlySpan<byte>), ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
public byte[] Open(byte[] encapsulatedSecret, byte[] ciphertext, byte[] associatedData = null, byte[] info = null);
public void Open(ReadOnlySpan<byte> encapsulatedSecret, ReadOnlySpan<byte> ciphertext, Span<byte> plaintext, ReadOnlySpan<byte> associatedData = default(ReadOnlySpan<byte>), ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
protected abstract void OpenCore(ReadOnlySpan<byte> encapsulatedSecret, ReadOnlySpan<byte> ciphertext, Span<byte> plaintext, ReadOnlySpan<byte> associatedData, ReadOnlySpan<byte> info);
public HpkeSender CreateSender(out byte[] encapsulatedSecret, ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
public HpkeSender CreateSender(Span<byte> encapsulatedSecret, ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
protected abstract HpkeSender CreateSenderCore(Span<byte> encapsulatedSecret, ReadOnlySpan<byte> info);
public HpkeRecipient CreateRecipient(ReadOnlySpan<byte> encapsulatedSecret, ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
public HpkeRecipient CreateRecipient(byte[] encapsulatedSecret, byte[] info = null);
protected abstract HpkeRecipient CreateRecipientCore(ReadOnlySpan<byte> encapsulatedSecret, ReadOnlySpan<byte> info);
public HpkeSender CreatePskSender(ReadOnlySpan<byte> psk, ReadOnlySpan<byte> pskId, out byte[] encapsulatedSecret, ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
public HpkeSender CreatePskSender(byte[] psk, byte[] pskId, out byte[] encapsulatedSecret, byte[] info = null);
public HpkeSender CreatePskSender(ReadOnlySpan<byte> psk, ReadOnlySpan<byte> pskId, Span<byte> encapsulatedSecret, ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
protected abstract HpkeSender CreatePskSenderCore(Span<byte> encapsulatedSecret, ReadOnlySpan<byte> info, ReadOnlySpan<byte> psk, ReadOnlySpan<byte> pskId);
public HpkeRecipient CreatePskRecipient(ReadOnlySpan<byte> encapsulatedSecret, ReadOnlySpan<byte> psk, ReadOnlySpan<byte> pskId, ReadOnlySpan<byte> info = default(ReadOnlySpan<byte>));
public HpkeRecipient CreatePskRecipient(byte[] encapsulatedSecret, byte[] psk, byte[] pskId, byte[] info = null);
protected abstract HpkeRecipient CreatePskRecipientCore(ReadOnlySpan<byte> encapsulatedSecret, ReadOnlySpan<byte> info, ReadOnlySpan<byte> psk, ReadOnlySpan<byte> pskId);
public void Dispose();
protected virtual void Dispose(bool disposing);
}
}