public void SetUpSimpleCurve()
        {
            OpenECCSimpleCurve = new OpenECC.WeierstrassCurve(new System.Numerics.BigInteger(4), new System.Numerics.BigInteger(20), new System.Numerics.BigInteger(29));
            OpenECCSimplePoint1 = new OpenECC.WeierstrassCurvePoint(new System.Numerics.BigInteger(5), new System.Numerics.BigInteger(22), OpenECCSimpleCurve);
            OpenECCSimplePoint2 = new OpenECC.WeierstrassCurvePoint(new System.Numerics.BigInteger(16), new System.Numerics.BigInteger(27), OpenECCSimpleCurve);
            OpenECCSimplePoint3 = new OpenECC.WeierstrassCurvePoint(new System.Numerics.BigInteger(13), new System.Numerics.BigInteger(6), OpenECCSimpleCurve);
            OpenECCSimplePoint4 = new OpenECC.WeierstrassCurvePoint(new System.Numerics.BigInteger(14), new System.Numerics.BigInteger(6), OpenECCSimpleCurve);

            BCSimpleCurve = new Org.BouncyCastle.Math.EC.FpCurve(new Org.BouncyCastle.Math.BigInteger("29"), new Org.BouncyCastle.Math.BigInteger("4"), new Org.BouncyCastle.Math.BigInteger("20"));
            BCSimplePoint1 = BCSimpleCurve.CreatePoint(new Org.BouncyCastle.Math.BigInteger("5"), new Org.BouncyCastle.Math.BigInteger("22"), false);
            BCSimplePoint2 = BCSimpleCurve.CreatePoint(new Org.BouncyCastle.Math.BigInteger("16"), new Org.BouncyCastle.Math.BigInteger("27"), false);
            BCSimplePoint3 = BCSimpleCurve.CreatePoint(new Org.BouncyCastle.Math.BigInteger("13"), new Org.BouncyCastle.Math.BigInteger("6"), false);
            BCSimplePoint4 = BCSimpleCurve.CreatePoint(new Org.BouncyCastle.Math.BigInteger("14"), new Org.BouncyCastle.Math.BigInteger("6"), false);
        }
Exemplo n.º 2
0
        // https://stackoverflow.com/questions/17439732/recreating-keys-ecpublickeyparameters-in-c-sharp-with-bouncycastle
        // TODO: find curve name...
        private static Org.BouncyCastle.Crypto.Parameters.ECPublicKeyParameters CreateEcPublicKeyParameters(
            Org.BouncyCastle.Math.BigInteger xx
            , Org.BouncyCastle.Math.BigInteger yy)
        {
            // Org.BouncyCastle.Math.EC.ECPoint q = new Org.BouncyCastle.Math.EC.ECPoint(x, y);
            // Org.BouncyCastle.Crypto.Tls.NamedCurve.secp224k1


            // DefineCurveAlias("P-256", SecObjectIdentifiers.SecP256r1); // Alg 13
            // DefineCurveAlias("P-384", SecObjectIdentifiers.SecP384r1); // Alg 14
            // DefineCurveAlias("P-521", SecObjectIdentifiers.SecP521r1);

            string curveName = "P-521";

            Org.BouncyCastle.Asn1.X9.X9ECParameters ecP = Org.BouncyCastle.Asn1.Nist.NistNamedCurves.GetByName(curveName);
            Org.BouncyCastle.Math.EC.FpCurve        c   = (Org.BouncyCastle.Math.EC.FpCurve)ecP.Curve;

            Org.BouncyCastle.Math.EC.ECFieldElement x = c.FromBigInteger(xx);
            Org.BouncyCastle.Math.EC.ECFieldElement y = c.FromBigInteger(yy);
            Org.BouncyCastle.Math.EC.ECPoint        q = new Org.BouncyCastle.Math.EC.FpPoint(c, x, y);


            Org.BouncyCastle.Crypto.Parameters.ECPublicKeyParameters publicParams = null;
            // Org.BouncyCastle.Crypto.Parameters.ECKeyParameters publicParams = new Org.BouncyCastle.Crypto.Parameters.ECPublicKeyParameters(q, domain);
            // Org.BouncyCastle.Crypto.AsymmetricKeyParameter publicParams = new Org.BouncyCastle.Crypto.Parameters.ECPublicKeyParameters(q, domain);
            // Org.BouncyCastle.Crypto.ICipherParameters publicParams = new Org.BouncyCastle.Crypto.Parameters.ECPublicKeyParameters(q, domain);


            // Org.BouncyCastle.Crypto.Digests.GeneralDigest.
            // Org.BouncyCastle.Crypto.Signers.GenericSigner
            // Org.BouncyCastle.Crypto.Generators.ECKeyPairGenerator


            // Org.BouncyCastle.Security.SignerUtilities.GetSigner("SHA-384withRSA");
            // Org.BouncyCastle.Security.DigestUtilities.GetDigest("");
            // Org.BouncyCastle.Security.CipherUtilities.GetCipher("");
            // Org.BouncyCastle.Security.GeneratorUtilities.GetKeyGenerator("");
            // Org.BouncyCastle.Security.WrapperUtilities.GetAlgorithmName
            // Org.BouncyCastle.Security.MacUtilities.CalculateMac("", null, System.Text.Encoding.UTF8.GetBytes("HashThis"));
            // Org.BouncyCastle.Security.ParameterUtilities.CreateKeyParameter("name", new byte[] { });
            // Org.BouncyCastle.Security.ParameterUtilities.GenerateParameters("name", new Org.BouncyCastle.Security.SecureRandom());
            // Org.BouncyCastle.Security.PublicKeyFactory.CreateKey()



            // Org.BouncyCastle.Crypto.Parameters.ECPublicKeyParameters oara = new Org.BouncyCastle.Crypto.Parameters.ECPublicKeyParameters("ECDH", q, Org.BouncyCastle.Asn1.Sec.SecObjectIdentifiers.SecP521r1);

            return(publicParams);
        }