236 lines
8.5 KiB
C#
236 lines
8.5 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X9;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.GM
|
|
{
|
|
// Token: 0x020018F6 RID: 6390
|
|
[Token(Token = "0x20018F6")]
|
|
[StructLayout(3)]
|
|
public sealed class GMNamedCurves
|
|
{
|
|
// Token: 0x0600AB7F RID: 43903 RVA: 0x00281420 File Offset: 0x0027F620
|
|
[Token(Token = "0x600AB7F")]
|
|
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
|
private GMNamedCurves()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600AB80 RID: 43904 RVA: 0x00281434 File Offset: 0x0027F634
|
|
[Token(Token = "0x600AB80")]
|
|
[Address(RVA = "0x518E70", Offset = "0x517870", VA = "0x180518E70")]
|
|
private static ECCurve ConfigureCurve(ECCurve curve)
|
|
{
|
|
return curve;
|
|
}
|
|
|
|
// Token: 0x0600AB81 RID: 43905 RVA: 0x00281444 File Offset: 0x0027F644
|
|
[Token(Token = "0x600AB81")]
|
|
[Address(RVA = "0x1DEE550", Offset = "0x1DECF50", VA = "0x181DEE550")]
|
|
private static BigInteger FromHex(string hex)
|
|
{
|
|
byte[] array = Hex.Decode(hex);
|
|
return new BigInteger(1, array);
|
|
}
|
|
|
|
// Token: 0x0600AB82 RID: 43906 RVA: 0x00281460 File Offset: 0x0027F660
|
|
[Token(Token = "0x600AB82")]
|
|
[Address(RVA = "0x1DEE410", Offset = "0x1DECE10", VA = "0x181DEE410")]
|
|
private static void DefineCurve(string name, DerObjectIdentifier oid, X9ECParametersHolder holder)
|
|
{
|
|
IDictionary dictionary = GMNamedCurves.objIds;
|
|
string text = Platform.ToUpperInvariant(name);
|
|
IDictionary dictionary2 = GMNamedCurves.names;
|
|
IDictionary dictionary3 = GMNamedCurves.curves;
|
|
}
|
|
|
|
// Token: 0x0600AB83 RID: 43907 RVA: 0x0028148C File Offset: 0x0027F68C
|
|
[Token(Token = "0x600AB83")]
|
|
[Address(RVA = "0x1DEEAA0", Offset = "0x1DED4A0", VA = "0x181DEEAA0")]
|
|
static GMNamedCurves()
|
|
{
|
|
IDictionary dictionary = Platform.CreateHashtable();
|
|
GMNamedCurves.objIds = dictionary;
|
|
IDictionary dictionary2 = Platform.CreateHashtable();
|
|
GMNamedCurves.curves = dictionary2;
|
|
GMNamedCurves.names = Platform.CreateHashtable();
|
|
}
|
|
|
|
// Token: 0x0600AB84 RID: 43908 RVA: 0x002814C4 File Offset: 0x0027F6C4
|
|
[Token(Token = "0x600AB84")]
|
|
[Address(RVA = "0x1DEE5E0", Offset = "0x1DECFE0", VA = "0x181DEE5E0")]
|
|
public static X9ECParameters GetByName(string name)
|
|
{
|
|
string text;
|
|
do
|
|
{
|
|
IDictionary dictionary = GMNamedCurves.objIds;
|
|
text = Platform.ToUpperInvariant(name);
|
|
if (text == 0)
|
|
{
|
|
goto IL_2A;
|
|
}
|
|
}
|
|
while (text == 0);
|
|
IDictionary dictionary2 = GMNamedCurves.curves;
|
|
IDictionary dictionary3 = GMNamedCurves.objIds;
|
|
IL_2A:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600AB85 RID: 43909 RVA: 0x00281504 File Offset: 0x0027F704
|
|
[Token(Token = "0x600AB85")]
|
|
[Address(RVA = "0x1DEE820", Offset = "0x1DED220", VA = "0x181DEE820")]
|
|
public static X9ECParameters GetByOid(DerObjectIdentifier oid)
|
|
{
|
|
IDictionary dictionary = GMNamedCurves.curves;
|
|
IDictionary dictionary2 = GMNamedCurves.objIds;
|
|
X9ECParameters x9ECParameters;
|
|
return x9ECParameters;
|
|
}
|
|
|
|
// Token: 0x0600AB86 RID: 43910 RVA: 0x0028152C File Offset: 0x0027F72C
|
|
[Token(Token = "0x600AB86")]
|
|
[Address(RVA = "0x1DEE9A0", Offset = "0x1DED3A0", VA = "0x181DEE9A0")]
|
|
public static DerObjectIdentifier GetOid(string name)
|
|
{
|
|
string text;
|
|
do
|
|
{
|
|
IDictionary dictionary = GMNamedCurves.objIds;
|
|
text = Platform.ToUpperInvariant(name);
|
|
if (text == 0)
|
|
{
|
|
}
|
|
}
|
|
while (text == 0);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600AB87 RID: 43911 RVA: 0x00281558 File Offset: 0x0027F758
|
|
[Token(Token = "0x600AB87")]
|
|
[Address(RVA = "0x1DEE900", Offset = "0x1DED300", VA = "0x181DEE900")]
|
|
public static string GetName(DerObjectIdentifier oid)
|
|
{
|
|
IDictionary dictionary = GMNamedCurves.names;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x17001B2B RID: 6955
|
|
// (get) Token: 0x0600AB88 RID: 43912 RVA: 0x00281570 File Offset: 0x0027F770
|
|
[Token(Token = "0x17001B2B")]
|
|
public static IEnumerable Names
|
|
{
|
|
[Token(Token = "0x600AB88")]
|
|
[Address(RVA = "0x1DEEC10", Offset = "0x1DED610", VA = "0x181DEEC10")]
|
|
get
|
|
{
|
|
IDictionary dictionary = GMNamedCurves.names;
|
|
throw new NullReferenceException();
|
|
}
|
|
}
|
|
|
|
// Token: 0x040070D4 RID: 28884
|
|
[Token(Token = "0x40070D4")]
|
|
private static readonly IDictionary objIds;
|
|
|
|
// Token: 0x040070D5 RID: 28885
|
|
[Token(Token = "0x40070D5")]
|
|
private static readonly IDictionary curves;
|
|
|
|
// Token: 0x040070D6 RID: 28886
|
|
[Token(Token = "0x40070D6")]
|
|
private static readonly IDictionary names;
|
|
|
|
// Token: 0x020018F7 RID: 6391
|
|
[Token(Token = "0x20018F7")]
|
|
internal class SM2P256V1Holder : X9ECParametersHolder
|
|
{
|
|
// Token: 0x0600AB89 RID: 43913 RVA: 0x00281588 File Offset: 0x0027F788
|
|
[Token(Token = "0x600AB89")]
|
|
[Address(RVA = "0x3D4170", Offset = "0x3D2B70", VA = "0x1803D4170")]
|
|
private SM2P256V1Holder()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600AB8A RID: 43914 RVA: 0x0028159C File Offset: 0x0027F79C
|
|
[Token(Token = "0x600AB8A")]
|
|
[Address(RVA = "0x1DF8490", Offset = "0x1DF6E90", VA = "0x181DF8490", Slot = "4")]
|
|
protected override X9ECParameters CreateParameters()
|
|
{
|
|
BigInteger bigInteger = GMNamedCurves.FromHex("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF");
|
|
BigInteger bigInteger2 = GMNamedCurves.FromHex("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC");
|
|
BigInteger bigInteger3 = GMNamedCurves.FromHex("28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93");
|
|
BigInteger bigInteger4 = GMNamedCurves.FromHex("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123");
|
|
BigInteger one = BigInteger.One;
|
|
FpCurve fpCurve = new FpCurve(bigInteger, bigInteger2, bigInteger3, bigInteger4, one);
|
|
byte[] array = Hex.Decode("0432C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0");
|
|
X9ECPoint x9ECPoint = new X9ECPoint(fpCurve, array);
|
|
X9ECParameters x9ECParameters;
|
|
return x9ECParameters;
|
|
}
|
|
|
|
// Token: 0x0600AB8B RID: 43915 RVA: 0x00281604 File Offset: 0x0027F804
|
|
// Note: this type is marked as 'beforefieldinit'.
|
|
[Token(Token = "0x600AB8B")]
|
|
[Address(RVA = "0x1DF8630", Offset = "0x1DF7030", VA = "0x181DF8630")]
|
|
static SM2P256V1Holder()
|
|
{
|
|
GMNamedCurves.SM2P256V1Holder sm2P256V1Holder = new GMNamedCurves.SM2P256V1Holder();
|
|
}
|
|
|
|
// Token: 0x040070D7 RID: 28887
|
|
[Token(Token = "0x40070D7")]
|
|
internal static readonly X9ECParametersHolder Instance;
|
|
}
|
|
|
|
// Token: 0x020018F8 RID: 6392
|
|
[Token(Token = "0x20018F8")]
|
|
internal class WapiP192V1Holder : X9ECParametersHolder
|
|
{
|
|
// Token: 0x0600AB8C RID: 43916 RVA: 0x00281618 File Offset: 0x0027F818
|
|
[Token(Token = "0x600AB8C")]
|
|
[Address(RVA = "0x3D4170", Offset = "0x3D2B70", VA = "0x1803D4170")]
|
|
private WapiP192V1Holder()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600AB8D RID: 43917 RVA: 0x0028162C File Offset: 0x0027F82C
|
|
[Token(Token = "0x600AB8D")]
|
|
[Address(RVA = "0x1DFBAE0", Offset = "0x1DFA4E0", VA = "0x181DFBAE0", Slot = "4")]
|
|
protected override X9ECParameters CreateParameters()
|
|
{
|
|
BigInteger bigInteger = GMNamedCurves.FromHex("BDB6F4FE3E8B1D9E0DA8C0D46F4C318CEFE4AFE3B6B8551F");
|
|
BigInteger bigInteger2 = GMNamedCurves.FromHex("BB8E5E8FBC115E139FE6A814FE48AAA6F0ADA1AA5DF91985");
|
|
BigInteger bigInteger3 = GMNamedCurves.FromHex("1854BEBDC31B21B7AEFC80AB0ECD10D5B1B3308E6DBF11C1");
|
|
BigInteger bigInteger4 = GMNamedCurves.FromHex("BDB6F4FE3E8B1D9E0DA8C0D40FC962195DFAE76F56564677");
|
|
BigInteger one = BigInteger.One;
|
|
FpCurve fpCurve = new FpCurve(bigInteger, bigInteger2, bigInteger3, bigInteger4, one);
|
|
byte[] array = Hex.Decode("044AD5F7048DE709AD51236DE65E4D4B482C836DC6E410664002BB3A02D4AAADACAE24817A4CA3A1B014B5270432DB27D2");
|
|
X9ECPoint x9ECPoint = new X9ECPoint(fpCurve, array);
|
|
X9ECParameters x9ECParameters;
|
|
return x9ECParameters;
|
|
}
|
|
|
|
// Token: 0x0600AB8E RID: 43918 RVA: 0x00281694 File Offset: 0x0027F894
|
|
// Note: this type is marked as 'beforefieldinit'.
|
|
[Token(Token = "0x600AB8E")]
|
|
[Address(RVA = "0x1DFBC80", Offset = "0x1DFA680", VA = "0x181DFBC80")]
|
|
static WapiP192V1Holder()
|
|
{
|
|
GMNamedCurves.WapiP192V1Holder wapiP192V1Holder = new GMNamedCurves.WapiP192V1Holder();
|
|
}
|
|
|
|
// Token: 0x040070D8 RID: 28888
|
|
[Token(Token = "0x40070D8")]
|
|
internal static readonly X9ECParametersHolder Instance;
|
|
}
|
|
}
|
|
}
|