public static void ValidateNistP521Sha512()
        {
            byte[] msg = (
                "9ecd500c60e701404922e58ab20cc002651fdee7cbc9336adda33e4c1088fab1" +
                "964ecb7904dc6856865d6c8e15041ccf2d5ac302e99d346ff2f686531d255216" +
                "78d4fd3f76bbf2c893d246cb4d7693792fe18172108146853103a51f824acc62" +
                "1cb7311d2463c3361ea707254f2b052bc22cb8012873dcbb95bf1a5cc53ab89f"
                ).HexToByteArray();

            ECParameters parameters = new ECParameters
            {
                Curve = ECCurve.NamedCurves.nistP521,
                Q     = new ECPoint
                {
                    X = ("0061387fd6b95914e885f912edfbb5fb274655027f216c4091ca83e19336740fd8" +
                         "1aedfe047f51b42bdf68161121013e0d55b117a14e4303f926c8debb77a7fdaad1").HexToByteArray(),
                    Y = ("00e7d0c75c38626e895ca21526b9f9fdf84dcecb93f2b233390550d2b1463b7ee3" +
                         "f58df7346435ff0434199583c97c665a97f12f706f2357da4b40288def888e59e6").HexToByteArray(),
                },
                D = ("00f749d32704bc533ca82cef0acf103d8f4fba67f08d2678e515ed7db886267ffa" +
                     "f02fab0080dca2359b72f574ccc29a0f218c8655c0cccf9fee6c5e567aa14cb926").HexToByteArray(),
            };

            byte[] signature = (
                // r
                "004de826ea704ad10bc0f7538af8a3843f284f55c8b946af9235af5af74f2b76e0" +
                "99e4bc72fd79d28a380f8d4b4c919ac290d248c37983ba05aea42e2dd79fdd33e8" +
                // s
                "0087488c859a96fea266ea13bf6d114c429b163be97a57559086edb64aed4a1859" +
                "4b46fb9efc7fd25d8b2de8f09ca0587f54bd287299f47b2ff124aac566e8ee3b43"
                ).HexToByteArray();

            Validate(
                parameters,
                ECDsaTestData.GetNistP521ExplicitCurve(),
                msg,
                signature,
                HashAlgorithmName.SHA512);
        }
        public static void ValidateNistP521Sha384()
        {
            byte[] msg = (
                "dbc094402c5b559d53168c6f0c550d827499c6fb2186ae2db15b89b4e6f46220" +
                "386d6f01bebde91b6ceb3ec7b4696e2cbfd14894dd0b7d656d23396ce920044f" +
                "9ca514bf115cf98ecaa55b950a9e49365c2f3a05be5020e93db92c3743751304" +
                "4973e792af814d0ffad2c8ecc89ae4b35ccb19318f0b988a7d33ec5a4fe85dfe"
                ).HexToByteArray();

            ECParameters parameters = new ECParameters
            {
                Curve = ECCurve.NamedCurves.nistP521,
                Q     = new ECPoint
                {
                    X = ("013b4ab7bc1ddf7fd74ca6f75ac560c94169f435361e74eba1f8e759ac70ab3af1" +
                         "38d8807aca3d8e73b5c2eb787f6dcca2718122bd94f08943a686b115d869d3f406").HexToByteArray(),
                    Y = ("00f293c1d627b44e7954d0546270665888144a94d437679d074787959d0d944d82" +
                         "23b9d4b5d068b4fbbd1176a004b476810475cd2a200b83eccd226d08b444a71e71").HexToByteArray(),
                },
                D = ("0095976d387d814e68aeb09abecdbf4228db7232cd3229569ade537f33e07ed0da" +
                     "0abdee84ab057c9a00049f45250e2719d1ecaccf91c0e6fcdd4016b75bdd98a950").HexToByteArray(),
            };

            byte[] signature = (
                // r
                "002128f77df66d16a604ffcd1a515e039d49bf6b91a215b814b2a1c88d32039521" +
                "fbd142f717817b838450229025670d99c1fd5ab18bd965f093cae7accff0675aae" +
                // s
                "0008dc65a243700a84619dce14e44ea8557e36631db1a55de15865497dbfd66e76" +
                "a7471f78e510c04e613ced332aa563432a1017da8b81c146059ccc7930153103a6"
                ).HexToByteArray();

            Validate(
                parameters,
                ECDsaTestData.GetNistP521ExplicitCurve(),
                msg,
                signature,
                HashAlgorithmName.SHA384);
        }