<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.0" />

SphincsPlusPublicKey

public sealed class SphincsPlusPublicKey : Asn1Encodable
using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Utilities; using System; namespace Org.BouncyCastle.Pqc.Asn1 { [Obsolete("Use SLH-DSA instead")] public sealed class SphincsPlusPublicKey : Asn1Encodable { private readonly Asn1OctetString m_pkseed; private readonly Asn1OctetString m_pkroot; public static SphincsPlusPublicKey GetInstance(object obj) { if (obj == null) return null; SphincsPlusPublicKey sphincsPlusPublicKey = obj as SphincsPlusPublicKey; if (sphincsPlusPublicKey != null) return sphincsPlusPublicKey; return new SphincsPlusPublicKey(Asn1Sequence.GetInstance(obj)); } public static SphincsPlusPublicKey GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new SphincsPlusPublicKey(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static SphincsPlusPublicKey GetOptional(Asn1Encodable element) { if (element == null) throw new ArgumentNullException("element"); SphincsPlusPublicKey sphincsPlusPublicKey = element as SphincsPlusPublicKey; if (sphincsPlusPublicKey != null) return sphincsPlusPublicKey; Asn1Sequence optional = Asn1Sequence.GetOptional(element); if (optional != null) return new SphincsPlusPublicKey(optional); return null; } public static SphincsPlusPublicKey GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new SphincsPlusPublicKey(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } public SphincsPlusPublicKey(byte[] pkseed, byte[] pkroot) { m_pkseed = DerOctetString.FromContents(pkseed); m_pkroot = DerOctetString.FromContents(pkroot); } private SphincsPlusPublicKey(Asn1Sequence seq) { int count = seq.Count; if (count != 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_pkseed = Asn1OctetString.GetInstance(seq[0]); m_pkroot = Asn1OctetString.GetInstance(seq[1]); } public byte[] GetPkroot() { return Arrays.Clone(m_pkroot.GetOctets()); } public byte[] GetPkseed() { return Arrays.Clone(m_pkseed.GetOctets()); } public override Asn1Object ToAsn1Object() { return new DerSequence(m_pkseed, m_pkroot); } } }