示例#1
0
        internal static ECPublicKeyParameters GetECPublicKeyParametersFromString(string publicKeyString)
        {
            var publicKeyBytes = GetPublicKeyBytesWithoutCheckSum(publicKeyString);

            Org.BouncyCastle.Math.EC.ECPoint q = curve.DecodePoint(publicKeyBytes);
            return(new ECPublicKeyParameters(q, domainParams));
        }
示例#2
0
        public static Key Deserialize(IEnumerable <byte> payload)
        {
            if (payload == null)
            {
                throw new ArgumentNullException(nameof(payload));
            }

            var c      = SecNamedCurves.GetByName("secp256k1");
            var domain = new ECDomainParameters(c.Curve, c.G, c.N, c.H);

            Org.BouncyCastle.Math.EC.ECCurve curve = domain.Curve;
            Org.BouncyCastle.Math.EC.ECPoint q     = curve.DecodePoint(payload.ToArray());
            var publicKey = new ECPublicKeyParameters(q, domain);

            return(new Key(null, publicKey));
        }
示例#3
0
        public static Key Deserialize(BigInteger publicKey, BigInteger privateKey)
        {
            if (publicKey == null)
            {
                throw new ArgumentNullException(nameof(publicKey));
            }

            if (privateKey == null)
            {
                throw new ArgumentNullException(nameof(privateKey));
            }

            var c      = SecNamedCurves.GetByName("secp256k1");
            var domain = new ECDomainParameters(c.Curve, c.G, c.N, c.H);

            Org.BouncyCastle.Math.EC.ECCurve curve = domain.Curve;
            Org.BouncyCastle.Math.EC.ECPoint q     = curve.DecodePoint(publicKey.ToByteArray());
            var pubK = new ECPublicKeyParameters(q, domain);
            var prK  = new ECPrivateKeyParameters(privateKey, domain);

            return(new Key(prK, pubK));
        }