<PackageReference Include="Microsoft.Bcl.Cryptography" Version="11.0.0-rc.2.26504.105" />

System.Security.Cryptography.Hpke

public abstract class Hpke : IDisposable
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); } }