/// <summary>
        /// Create a key pair for by using a given curve
        /// </summary>
        /// <param name="curveName">the curve to use for key creation</param>
        public void CreateKeyPair(string curveName)
        {
            var oid = Gost3410NamedParameters.GetOid(curveName);
            var keyGenerationParameters = new Gost3410KeyGenerationParameters(new SecureRandom(), oid);
            var keyGenerator            = new Gost3410KeyPairGenerator();

            keyGenerator.Init(keyGenerationParameters);
            keyPair = keyGenerator.GenerateKeyPair();
        }
Beispiel #2
0
        /// <summary>
        /// Generate key pair.
        /// </summary>
        /// <returns></returns>
        public override AsymmetricCipherKeyPair GenerateKeyPair()
        {
            Gost3410ParametersGenerator generator2 = new Gost3410ParametersGenerator();

            generator2.Init(_keySize, _procedure, Common.ThreadSecureRandom.Value);
            Gost3410Parameters                parameters2 = generator2.GenerateParameters();
            KeyGenerationParameters           parameters  = new Gost3410KeyGenerationParameters(Common.ThreadSecureRandom.Value, parameters2);
            IAsymmetricCipherKeyPairGenerator generator   = new Gost3410KeyPairGenerator();

            generator.Init(parameters);
            return(generator.GenerateKeyPair());
        }
    public void Init(KeyGenerationParameters parameters)
    {
        if (parameters is Gost3410KeyGenerationParameters)
        {
            param = (Gost3410KeyGenerationParameters)parameters;
            return;
        }
        Gost3410KeyGenerationParameters gost3410KeyGenerationParameters = new Gost3410KeyGenerationParameters(parameters.Random, CryptoProObjectIdentifiers.GostR3410x94CryptoProA);
        int strength = parameters.Strength;
        int num      = gost3410KeyGenerationParameters.Parameters.P.BitLength - 1;

        param = gost3410KeyGenerationParameters;
    }
Beispiel #4
0
        public void Init(
            KeyGenerationParameters parameters)
        {
            if (parameters is Gost3410KeyGenerationParameters)
            {
                this.param = (Gost3410KeyGenerationParameters)parameters;
            }
            else
            {
                Gost3410KeyGenerationParameters kgp = new Gost3410KeyGenerationParameters(
                    parameters.Random,
                    CryptoProObjectIdentifiers.GostR3410x94CryptoProA);

                if (parameters.Strength != kgp.Parameters.P.BitLength - 1)
                {
                    // TODO Should we complain?
                }

                this.param = kgp;
            }
        }