簡體   English   中英

ECDSA如何在C#中將私有和公共字節轉換為單個共享密鑰

[英]ECDSA How to convert the private and public byte to single Shared key in c#

我正在嘗試在C#中實現ecdsa。 我可以從ECKeyPairGenerator生成密鑰,但是我需要反向進行。 我已經有密鑰需要制作一個密鑰。

有人可以幫我嗎? 我用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
        }

你可以試試這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM