public void SetSignatureAlgorithm(string signatureAlgorithm)
 {
     this.signatureAlgorithm = signatureAlgorithm;
     try
     {
         sigOID = Org.BouncyCastle.X509.X509Utilities.GetAlgorithmOid(signatureAlgorithm);
     }
     catch (Exception innerException)
     {
         throw new ArgumentException("Unknown signature type requested", innerException);
     }
     sigAlgId = Org.BouncyCastle.X509.X509Utilities.GetSigAlgID(sigOID, signatureAlgorithm);
     tbsGen.SetSignature(sigAlgId);
 }
 public void SetSignatureAlgorithm(string signatureAlgorithm)
 {
     //IL_001c: Unknown result type (might be due to invalid IL or missing references)
     this.signatureAlgorithm = signatureAlgorithm;
     try
     {
         sigOID = X509Utilities.GetAlgorithmOid(signatureAlgorithm);
     }
     catch (global::System.Exception ex)
     {
         throw new ArgumentException("Unknown signature type requested", ex);
     }
     sigAlgId = X509Utilities.GetSigAlgID(sigOID, signatureAlgorithm);
     tbsGen.SetSignature(sigAlgId);
 }
Example #3
0
        private void TbsV2CertListGenerate()
        {
            V2TbsCertListGenerator gen = new V2TbsCertListGenerator();

            gen.SetIssuer(new X509Name("CN=AU,O=Bouncy Castle"));

            gen.AddCrlEntry(new DerInteger(1), new Time(MakeUtcDateTime(1970, 1, 1, 0, 0, 1)), ReasonFlags.AACompromise);

            gen.SetNextUpdate(new Time(MakeUtcDateTime(1970, 1, 1, 0, 0, 2)));

            gen.SetThisUpdate(new Time(MakeUtcDateTime(1970, 1, 1, 0, 0, 0, 500)));

            gen.SetSignature(new AlgorithmIdentifier(PkcsObjectIdentifiers.Sha1WithRsaEncryption, DerNull.Instance));

            //
            // extensions
            //
            IList                order      = new ArrayList();
            IDictionary          extensions = new Hashtable();
            SubjectPublicKeyInfo info       = new SubjectPublicKeyInfo(
                new AlgorithmIdentifier(
                    OiwObjectIdentifiers.ElGamalAlgorithm,
                    new ElGamalParameter(BigInteger.One, BigInteger.Two)),
                new DerInteger(3));

            order.Add(X509Extensions.AuthorityKeyIdentifier);
            order.Add(X509Extensions.IssuerAlternativeName);
            order.Add(X509Extensions.CrlNumber);
            order.Add(X509Extensions.IssuingDistributionPoint);

            extensions.Add(X509Extensions.AuthorityKeyIdentifier, new X509Extension(true, new DerOctetString(CreateAuthorityKeyId(info, new X509Name("CN=AU,O=Bouncy Castle,OU=Test 2"), 2))));
            extensions.Add(X509Extensions.IssuerAlternativeName, new X509Extension(false, new DerOctetString(GeneralNames.GetInstance(new DerSequence(new GeneralName(new X509Name("CN=AU,O=Bouncy Castle,OU=Test 3")))))));
            extensions.Add(X509Extensions.CrlNumber, new X509Extension(false, new DerOctetString(new DerInteger(1))));
            extensions.Add(X509Extensions.IssuingDistributionPoint, new X509Extension(true, new DerOctetString(IssuingDistributionPoint.GetInstance(DerSequence.Empty))));

            X509Extensions ex = new X509Extensions(order, extensions);

            gen.SetExtensions(ex);

            TbsCertificateList tbs = gen.GenerateTbsCertList();

            if (!Arrays.AreEqual(tbs.GetEncoded(), v2CertList))
            {
                Fail("failed v2 cert list generation");
            }

            //
            // read back test
            //
            Asn1InputStream aIn = new Asn1InputStream(v2CertList);
            Asn1Object      o   = aIn.ReadObject();

            if (!Arrays.AreEqual(o.GetEncoded(), v2CertList))
            {
                Fail("failed v2 cert list read back test");
            }
        }
Example #4
0
        public void SetSignatureAlgorithm(
            string signatureAlgorithm)
        {
            this.signatureAlgorithm = signatureAlgorithm;

            try
            {
                sigOID = X509Utilities.GetAlgorithmOid(signatureAlgorithm);
            }
            catch (Exception e)
            {
                throw new ArgumentException("Unknown signature type requested", e);
            }

            sigAlgId = X509Utilities.GetSigAlgID(sigOID, signatureAlgorithm);

            tbsGen.SetSignature(sigAlgId);
        }
Example #5
0
        /// <summary>
        /// Generate a new X509CRL using the passed in SignatureCalculator.
        /// </summary>
        /// <param name="signatureCalculatorFactory">A signature calculator factory with the necessary algorithm details.</param>
        /// <returns>An X509CRL.</returns>
        public X509Crl Generate(ISignatureFactory <AlgorithmIdentifier> signatureCalculatorFactory)
        {
            tbsGen.SetSignature(signatureCalculatorFactory.AlgorithmDetails);

            TbsCertificateList tbsCertList = GenerateCertList();

            Crypto.IStreamCalculator <IBlockResult> streamCalculator = signatureCalculatorFactory.CreateCalculator();

            byte[] encoded = tbsCertList.GetDerEncoded();

            streamCalculator.Stream.Write(encoded, 0, encoded.Length);

            Platform.Dispose(streamCalculator.Stream);

            return(GenerateJcaObject(tbsCertList, signatureCalculatorFactory.AlgorithmDetails, ((IBlockResult)streamCalculator.GetResult()).Collect()));
        }