-1

I am trying to implement the ecdsa in C#. I am able to generate the key from ECKeyPairGenerator but I need to do in reverse. I already have the keys need to make a single key.

Can anyone help me out in this? I write code in c#.

public static AsymmetricCipherKeyPair LoadPublicKey(byte[] publickey)
        {
            string curveName = "prime192v1";
            //Here I m generating the key I need to replace but load the public key of byte
            var gen = new ECKeyPairGenerator();
            X9ECParameters ecP = X962NamedCurves.GetByOid(X9ObjectIdentifiers.Prime192v1);
            // var ecP21 = TeleTrusTNamedCurves.GetByName("brainpoolp512t1");
            //  X9ECParameters ecP = NistNamedCurves.GetByName(curveName);

            ECDomainParameters keyGenParam = new ECDomainParameters(ecP.Curve, ecP.G, ecP.N, ecP.H, ecP.GetSeed());
            var secureRandom = new SecureRandom();
            ECKeyGenerationParameters genParam = new ECKeyGenerationParameters(keyGenParam, secureRandom);
            gen.Init(genParam);
            return gen.GenerateKeyPair();//only want to return public key
        }
Keyur Ramoliya
  • 1,643
  • 2
  • 12
  • 14
Priyanka Kanse
  • 811
  • 1
  • 12
  • 26

1 Answers1

1

You can try this

    var keyParams = new ECParameters
    {
        Curve = jwk.Curve.ToECCurve(), #your curve name
        Q = new ECPoint #Define X and Y
        {
            X = jwk.X.FromBase64UrlSafe(),
            Y = jwk.Y.FromBase64UrlSafe()
        }
    };

ECDsa.Create(keyParams);