예제 #1
0
        /* TLS 1.2
         * 01 01 // CertificateTypes
         * 00 0C // SignatureAlgorithms len
         * 04 01 05 01 06 01 08 04 08 05 08 06 // SignatureAlgorithms
         * 00 00 // opaque DistinguishedName
         */
        public CertificateRequest(ClientCertificateType[] clientCertTypes = null, SignatureAlgorithm[] clientCertSAs = null) : base(null)
        {
            CertificateTypes = clientCertTypes ?? new[]
            {
                ClientCertificateType.rsa_sign,
            };
            SignatureAlgorithms = clientCertSAs ?? new[]
            {
                SignatureAlgorithm.rsa_pkcs1_sha256, SignatureAlgorithm.rsa_pkcs1_sha384, SignatureAlgorithm.rsa_pkcs1_sha512,
                SignatureAlgorithm.rsa_pss_rsae_sha256, SignatureAlgorithm.rsa_pss_rsae_sha384, SignatureAlgorithm.rsa_pss_rsae_sha512,
                SignatureAlgorithm.ecdsa_secp256r1_sha256, SignatureAlgorithm.ecdsa_secp384r1_sha384, SignatureAlgorithm.ecdsa_secp521r1_sha512,
            };
            using (var ms = new System.IO.MemoryStream())
            {
                // ClientCertificateTypes length byte
                ms.WriteByte((byte)CertificateTypes.Length);
                // ClientCertificateTypes
                ms.Write(CertificateTypes.Select(a => (byte)a).ToArray(), 0, CertificateTypes.Length);
                // SignatureAlgorithms length ushort
                ms.WriteValue((ushort)(SignatureAlgorithms.Length * 2));
                // SignatureAlgorithms
                foreach (var sa in SignatureAlgorithms)
                {
                    ms.WriteValue((ushort)(sa));
                }
                //DistinguishedName
                ms.WriteValue((ushort)0);

                Data = ms.ToArray();
            }
        }
 internal void EnsureDefaultValues()
 {
     // FIXME: Provide better default values
     if (CertificateTypes.Count == 0)
     {
         CertificateTypes.Add(ClientCertificateType.RsaSign);
     }
     SignatureParameters.EnsureDefaultValues();
 }
예제 #3
0
 public void EnsureDefaultValues()
 {
     // FIXME: Provide better default values
     if (CertificateTypes.Count == 0)
     {
         CertificateTypes.Add(ClientCertificateType.RsaSign);
     }
     if (SignatureAndHashAlgorithms.Count == 0)
     {
         SignatureAndHashAlgorithms.Add(new SignatureAndHashAlgorithm(HashAlgorithmType.Sha512, SignatureAlgorithmType.Rsa));
         SignatureAndHashAlgorithms.Add(new SignatureAndHashAlgorithm(HashAlgorithmType.Sha384, SignatureAlgorithmType.Rsa));
         SignatureAndHashAlgorithms.Add(new SignatureAndHashAlgorithm(HashAlgorithmType.Sha256, SignatureAlgorithmType.Rsa));
         SignatureAndHashAlgorithms.Add(new SignatureAndHashAlgorithm(HashAlgorithmType.Sha1, SignatureAlgorithmType.Rsa));
     }
 }
예제 #4
0
        void GetAllCertificateTypes()
        {
            if (CertificateTypes == null)
            {
                CertificateTypes = new BindingList <InspectorCertificateType>();
            }

            var foundCertificateTypes = repos.CertificateTypeRepo.GetAll();

            if (foundCertificateTypes != null)
            {
                foreach (var t in foundCertificateTypes)
                {
                    CertificateTypes.Add(t);
                }
            }
            else
            {
                log.Warn("Setup settings:List of Certificate Types is NULL.");
            }

            CertificateTypes.ListChanged += (s, e) => ModifiableView.IsModified = true;
        }