问下哥.net国密SM2,publickey为pem格式,如果DecodePoint呢?卡这几天了

BouncyCastle.NetCore版本1.8.5
给出来公钥是这样的

img

x9ec.Curve.DecodePoint(pubkey/byte[],内容就是上面的这个pem格式/)就是这句转换就报错
转换就报错{"Invalid point encoding 48"}

片断
var ecc_param = sm2_param;
ECFieldElement ecc_gx_fieldelement;
ECFieldElement ecc_gy_fieldelement;

                var ecc_p = new BigInteger(ecc_param[0], 16);
                var ecc_a = new BigInteger(ecc_param[1], 16);
                var ecc_b = new BigInteger(ecc_param[2], 16);
                var ecc_n = new BigInteger(ecc_param[3], 16);
                var ecc_gx = new BigInteger(ecc_param[4], 16);
                var ecc_gy = new BigInteger(ecc_param[5], 16);


                ecc_gx_fieldelement = new FpFieldElement(ecc_p, ecc_gx);
                ecc_gy_fieldelement = new FpFieldElement(ecc_p, ecc_gy);

                var ecc_curve = new FpCurve(ecc_p, ecc_a, ecc_b);
                var ecc_point_g = new FpPoint(ecc_curve, ecc_gx_fieldelement, ecc_gy_fieldelement);
                var ecdp = new ECDomainParameters(ecc_curve, ecc_point_g, ecc_n);
            
                var x9ec = GMNamedCurves.GetByName("SM2P256V1");
                r = _publicKeyParameters = new ECPublicKeyParameters(x9ec.Curve.DecodePoint(pubkey/*byte[],内容就是上面的这个pem格式*/), ecdp);

不好意思,有点久了,记不太清了。
看错误信息,应该不难调试的,密文不长,一个一个字节的跟一下,看看哪里出错,再查下格式规范,应该不难的,可能比较费时间。
实在抱歉