本文整理汇总了C#中DerObjectIdentifier.Equals方法的典型用法代码示例。如果您正苦于以下问题:C# DerObjectIdentifier.Equals方法的具体用法?C# DerObjectIdentifier.Equals怎么用?C# DerObjectIdentifier.Equals使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DerObjectIdentifier
的用法示例。
在下文中一共展示了DerObjectIdentifier.Equals方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: X9Curve
public X9Curve(
X9FieldID fieldID,
Asn1Sequence seq)
{
if (fieldID == null)
throw new ArgumentNullException("fieldID");
if (seq == null)
throw new ArgumentNullException("seq");
this.fieldIdentifier = fieldID.Identifier;
if (fieldIdentifier.Equals(X9ObjectIdentifiers.PrimeField))
{
BigInteger q = ((DerInteger) fieldID.Parameters).Value;
X9FieldElement x9A = new X9FieldElement(q, (Asn1OctetString) seq[0]);
X9FieldElement x9B = new X9FieldElement(q, (Asn1OctetString) seq[1]);
curve = new FpCurve(q, x9A.Value.ToBigInteger(), x9B.Value.ToBigInteger());
}
else
{
if (fieldIdentifier.Equals(X9ObjectIdentifiers.CharacteristicTwoField))
{
// Characteristic two field
DerSequence parameters = (DerSequence)fieldID.Parameters;
int m = ((DerInteger)parameters[0]).Value.IntValue;
DerObjectIdentifier representation
= (DerObjectIdentifier)parameters[1];
int k1 = 0;
int k2 = 0;
int k3 = 0;
if (representation.Equals(X9ObjectIdentifiers.TPBasis))
{
// Trinomial basis representation
k1 = ((DerInteger)parameters[2]).Value.IntValue;
}
else
{
// Pentanomial basis representation
DerSequence pentanomial = (DerSequence) parameters[2];
k1 = ((DerInteger) pentanomial[0]).Value.IntValue;
k2 = ((DerInteger) pentanomial[1]).Value.IntValue;
k3 = ((DerInteger) pentanomial[2]).Value.IntValue;
}
X9FieldElement x9A = new X9FieldElement(m, k1, k2, k3, (Asn1OctetString)seq[0]);
X9FieldElement x9B = new X9FieldElement(m, k1, k2, k3, (Asn1OctetString)seq[1]);
// TODO Is it possible to get the order (n) and cofactor(h) too?
curve = new F2mCurve(m, k1, k2, k3, x9A.Value.ToBigInteger(), x9B.Value.ToBigInteger());
}
}
if (seq.Count == 3)
{
seed = ((DerBitString) seq[2]).GetBytes();
}
}
示例2: GetConvertedValue
/**
* Apply default conversion for the given value depending on the oid
* and the character range of the value.
*
* @param oid the object identifier for the DN entry
* @param value the value associated with it
* @return the ASN.1 equivalent for the string value.
*/
public override Asn1Object GetConvertedValue(
DerObjectIdentifier oid,
string value)
{
if (value.Length != 0 && value[0] == '#')
{
try
{
return ConvertHexEncoded(value, 1);
}
catch (IOException)
{
throw new Exception("can't recode value for oid " + oid.Id);
}
}
if (oid.Equals(X509Name.EmailAddress) || oid.Equals(X509Name.DC))
{
return new DerIA5String(value);
}
if (oid.Equals(X509Name.DateOfBirth)) // accept time string as well as # (for compatibility)
{
return new DerGeneralizedTime(value);
}
if (oid.Equals(X509Name.C)
|| oid.Equals(X509Name.SerialNumber)
|| oid.Equals(X509Name.DnQualifier))
{
return new DerPrintableString(value);
}
return new DerUtf8String(value);
}
示例3: recodeCheck
private void recodeCheck(
string oid,
byte[] enc)
{
DerObjectIdentifier o = new DerObjectIdentifier(oid);
DerObjectIdentifier encO = (DerObjectIdentifier) Asn1Object.FromByteArray(enc);
if (!o.Equals(encO))
{
Fail("oid ID didn't match", o, encO);
}
byte[] bytes = o.GetDerEncoded();
if (!Arrays.AreEqual(bytes, enc))
{
Fail("failed comparison test", Hex.ToHexString(enc), Hex.ToHexString(bytes));
}
}
示例4: GetValueList
/**
* return an IList of the values found in the name, in the order they
* were found, with the DN label corresponding to passed in oid.
*/
public IList GetValueList(DerObjectIdentifier oid)
{
IList v = Platform.CreateArrayList();
for (int i = 0; i != values.Count; i++)
{
if (null == oid || oid.Equals(ordering[i]))
{
string val = (string)values[i];
if (val.StartsWith("\\#"))
{
val = val.Substring(1);
}
v.Add(val);
}
}
return v;
}