Initial Commit
This commit is contained in:
86
iTechSharp/srcbc/ocsp/RespID.cs
Normal file
86
iTechSharp/srcbc/ocsp/RespID.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
|
||||
using Org.BouncyCastle.Asn1;
|
||||
using Org.BouncyCastle.Asn1.Ocsp;
|
||||
using Org.BouncyCastle.Asn1.X509;
|
||||
using Org.BouncyCastle.Crypto;
|
||||
using Org.BouncyCastle.Security;
|
||||
using Org.BouncyCastle.X509;
|
||||
|
||||
namespace Org.BouncyCastle.Ocsp
|
||||
{
|
||||
/**
|
||||
* Carrier for a ResponderID.
|
||||
*/
|
||||
public class RespID
|
||||
{
|
||||
internal readonly ResponderID id;
|
||||
|
||||
public RespID(
|
||||
ResponderID id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public RespID(
|
||||
X509Name name)
|
||||
{
|
||||
try
|
||||
{
|
||||
this.id = new ResponderID(name);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ArgumentException("can't decode name.", e);
|
||||
}
|
||||
}
|
||||
|
||||
public RespID(
|
||||
AsymmetricKeyParameter publicKey)
|
||||
{
|
||||
try
|
||||
{
|
||||
IDigest digest = DigestUtilities.GetDigest("SHA1");
|
||||
|
||||
SubjectPublicKeyInfo info = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(publicKey);
|
||||
|
||||
byte[] encoded = info.PublicKeyData.GetBytes();
|
||||
digest.BlockUpdate(encoded, 0, encoded.Length);
|
||||
|
||||
byte[] hash = DigestUtilities.DoFinal(digest);
|
||||
|
||||
Asn1OctetString keyHash = new DerOctetString(hash);
|
||||
|
||||
this.id = new ResponderID(keyHash);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new OcspException("problem creating ID: " + e, e);
|
||||
}
|
||||
}
|
||||
|
||||
public ResponderID ToAsn1Object()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
public override bool Equals(
|
||||
object obj)
|
||||
{
|
||||
if (obj == this)
|
||||
return true;
|
||||
|
||||
RespID other = obj as RespID;
|
||||
|
||||
if (other == null)
|
||||
return false;
|
||||
|
||||
return id.Equals(other.id);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return id.GetHashCode();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user