本文整理汇总了C#中Org.BouncyCastle.Asn1.Asn1InputStream.Close方法的典型用法代码示例。如果您正苦于以下问题:C# Asn1InputStream.Close方法的具体用法?C# Asn1InputStream.Close怎么用?C# Asn1InputStream.Close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Org.BouncyCastle.Asn1.Asn1InputStream
的用法示例。
在下文中一共展示了Asn1InputStream.Close方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DecodeFromDer
public static EcdsaSignature DecodeFromDer(byte[] bytes)
{
try
{
var decoder = new Asn1InputStream(bytes);
var seq = (Asn1Sequence)decoder.ReadObject();
DerInteger r, s;
try
{
r = (DerInteger)seq[0];
s = (DerInteger)seq[1];
}
catch (InvalidCastException)
{
return null;
}
decoder.Close();
// OpenSSL deviates from the DER spec by interpreting these values as unsigned, though they should not be
// Thus, we always use the positive versions. See: http://r6.ca/blog/20111119T211504Z.html
return new EcdsaSignature(r.PositiveValue, s.PositiveValue);
}
catch (IOException e)
{
throw new ApplicationException("Decoding form DER failed", e);
}
}
示例2: Main
public static void Main(string[] args)
{
FileStream fIn = File.OpenRead(args[0]);
Asn1InputStream bIn = new Asn1InputStream(fIn);
Asn1Object obj;
while ((obj = bIn.ReadObject()) != null)
{
Console.WriteLine(Asn1Dump.DumpAsString(obj));
}
bIn.Close();
}
示例3: DumpDer
public static string DumpDer(byte[] der)
{
StringBuilder builder = new StringBuilder();
Asn1InputStream decoder = new Asn1InputStream(der);
DerSequence seq = (DerSequence)decoder.ReadObject();
builder.AppendLine("Version : " + Encoders.Hex.EncodeData(seq[0].GetDerEncoded()));
builder.AppendLine("Private : " + Encoders.Hex.EncodeData(seq[1].GetDerEncoded()));
builder.AppendLine("Params : " + Encoders.Hex.EncodeData(((DerTaggedObject)seq[2]).GetObject().GetDerEncoded()));
builder.AppendLine("Public : " + Encoders.Hex.EncodeData(seq[3].GetDerEncoded()));
decoder.Close();
return builder.ToString();
}
示例4: FromDER
public static ECKey FromDER(byte[] der)
{
// To understand this code, see the definition of the ASN.1 format for EC private keys in the OpenSSL source
// code in ec_asn1.c:
//
// ASN1_SEQUENCE(EC_PRIVATEKEY) = {
// ASN1_SIMPLE(EC_PRIVATEKEY, version, LONG),
// ASN1_SIMPLE(EC_PRIVATEKEY, privateKey, ASN1_OCTET_STRING),
// ASN1_EXP_OPT(EC_PRIVATEKEY, parameters, ECPKPARAMETERS, 0),
// ASN1_EXP_OPT(EC_PRIVATEKEY, publicKey, ASN1_BIT_STRING, 1)
// } ASN1_SEQUENCE_END(EC_PRIVATEKEY)
//
Asn1InputStream decoder = new Asn1InputStream(der);
DerSequence seq = (DerSequence)decoder.ReadObject();
CheckArgument(seq.Count == 4, "Input does not appear to be an ASN.1 OpenSSL EC private key");
CheckArgument(((DerInteger)seq[0]).Value.Equals(BigInteger.One),
"Input is of wrong version");
byte[] bits = ((DerOctetString)seq[1]).GetOctets();
decoder.Close();
return new ECKey(bits, true);
}