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; } } }