Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Asn1/Cmp/Challenge.cs
2025-10-09 09:57:24 +09:00

50 lines
1.1 KiB
C#

using System;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Asn1.Cmp;
public class Challenge : Asn1Encodable
{
private readonly AlgorithmIdentifier owf;
private readonly Asn1OctetString witness;
private readonly Asn1OctetString challenge;
public virtual AlgorithmIdentifier Owf => owf;
private Challenge(Asn1Sequence seq)
{
int index = 0;
if (seq.Count == 3)
{
owf = AlgorithmIdentifier.GetInstance(seq[index++]);
}
witness = Asn1OctetString.GetInstance(seq[index++]);
challenge = Asn1OctetString.GetInstance(seq[index]);
}
public static Challenge GetInstance(object obj)
{
if (obj is Challenge)
{
return (Challenge)obj;
}
if (obj is Asn1Sequence)
{
return new Challenge((Asn1Sequence)obj);
}
throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), "obj");
}
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector();
asn1EncodableVector.AddOptional(owf);
asn1EncodableVector.Add(witness);
asn1EncodableVector.Add(challenge);
return new DerSequence(asn1EncodableVector);
}
}