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

HssSigner

public sealed class HssSigner : IMessageSigner
using Org.BouncyCastle.Crypto; using System; using System.IO; namespace Org.BouncyCastle.Pqc.Crypto.Lms { public sealed class HssSigner : IMessageSigner { private HssPrivateKeyParameters privKey; private HssPublicKeyParameters pubKey; public void Init(bool forSigning, ICipherParameters param) { if (forSigning) privKey = (HssPrivateKeyParameters)param; else pubKey = (HssPublicKeyParameters)param; } public byte[] GenerateSignature(byte[] message) { try { return Hss.GenerateSignature(privKey, message).GetEncoded(); } catch (IOException ex) { throw new Exception("unable to encode signature: " + ex.Message); } } public bool VerifySignature(byte[] message, byte[] signature) { try { return Hss.VerifySignature(pubKey, HssSignature.GetInstance(signature, pubKey.Level), message); } catch (InvalidDataException ex) { throw new Exception("unable to decode signature: " + ex.Message); } catch (IOException ex2) { throw new Exception("unable to decode signature: " + ex2.Message); } } } }