/* 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(); }
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)); } }
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; }