コード例 #1
0
ファイル: FipsDsa.cs プロジェクト: NDWX/BouncyCastle.FIPS
            /// <summary>
            /// Construct a key pair generator for DSA keys.
            /// </summary>
            /// <param name="keyGenParameters">Domain parameters and algorithm for the generated key.</param>
            /// <param name="random">A source of randomness for calculating the private value.</param>
            internal KeyPairGenerator(KeyGenerationParameters keyGenParameters, SecureRandom random) : base(keyGenParameters)
            {
                if (CryptoServicesRegistrar.IsInApprovedOnlyMode())
                {
                    int effSizeInBits = keyGenParameters.DomainParameters.P.BitLength;

                    if (effSizeInBits != 2048 && effSizeInBits != 3072)
                    {
                        throw new CryptoUnapprovedOperationError("attempt to create key pair with unapproved key size [" + effSizeInBits + "]", keyGenParameters.Algorithm);
                    }

                    Utils.ValidateKeyPairGenRandom(random, Utils.GetAsymmetricSecurityStrength(effSizeInBits), keyGenParameters.Algorithm);
                }

                this.domainParameters = keyGenParameters.DomainParameters;

                this.param = new DsaKeyGenerationParameters(random, getDomainParams(domainParameters));
                this.engine.Init(param);
            }
コード例 #2
0
ファイル: Dsa.cs プロジェクト: NDWX/BouncyCastle.FIPS
 private static DsaParameters getDomainParams(DsaDomainParameters dsaParams)
 {
     return(new DsaParameters(dsaParams.P, dsaParams.Q, dsaParams.G));
 }
コード例 #3
0
ファイル: FipsDsa.cs プロジェクト: NDWX/BouncyCastle.FIPS
 /// <summary>
 /// Base constructor for the default algorithm ID.
 /// </summary>
 /// <param name="domainParameters">DSA domain parameters representing the parameter set any generated keys will be for.</param>
 public KeyGenerationParameters(DsaDomainParameters domainParameters) : base(Alg)
 {
     this.domainParameters = domainParameters;
 }