public void TestSECCompressedPublicKey() { // This key should generate a 0x02 compressed public key var privateKeyEven = "18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725".HexToBytes(); // This key should generate a 0x03 compressed public key var privateKeyOdd = "79FE45D61339181238E49424E905446A35497A8ADEA8B7D5241A1E7F2C95A04D".HexToBytes(); // Use Secp256k1 to generate the key because MSFT version does not support import privateKey with // no public key. IECDsa secp256k1 = new Secp256k1DotNet(); var evenKey = secp256k1.CreateKey(privateKeyEven); var msftecdsa = new MsftECDsaCng(); var evenBtc = secp256k1.GetSECCompressedPublicKey(evenKey.PublicKey); var evenMsft = msftecdsa.GetSECCompressedPublicKey(evenKey.PublicKey); Assert.Equal(evenBtc.ToArray(), evenMsft.ToArray()); var oddKey = secp256k1.CreateKey(privateKeyOdd); var oddBtc = secp256k1.GetSECCompressedPublicKey(oddKey.PublicKey); var oddMsft = msftecdsa.GetSECCompressedPublicKey(oddKey.PublicKey); Assert.Equal(oddBtc.ToArray(), oddMsft.ToArray()); }