private void WriteX509CertificateProperties(Utf8JsonWriter json) { if (Subject != null) { json.WriteString(s_subjectPropertyNameBytes, Subject); } if (SubjectAlternativeNames != null) { json.WriteStartObject(s_sansPropertyNameBytes); ((IJsonSerializable)SubjectAlternativeNames).WriteProperties(json); json.WriteEndObject(); } if (!KeyUsage.IsNullOrEmpty()) { json.WriteStartArray(s_keyUsagePropertyNameBytes); foreach (CertificateKeyUsage usage in KeyUsage) { json.WriteStringValue(usage.ToString()); } json.WriteEndArray(); } if (!EnhancedKeyUsage.IsNullOrEmpty()) { json.WriteStartArray(s_ekusPropertyNameBytes); foreach (var usage in EnhancedKeyUsage) { json.WriteStringValue(usage); } json.WriteEndArray(); } if (ValidityInMonths.HasValue) { json.WriteNumber(s_validityMonthsPropertyNameBytes, ValidityInMonths.Value); } }
void IJsonSerializable.WriteProperties(Utf8JsonWriter json) { // Key Props if (KeyType.HasValue || KeyCurveName.HasValue || KeySize.HasValue) { json.WriteStartObject(s_keyPropsPropertyNameBytes); WriteKeyProperties(json); json.WriteEndObject(); } // Secret Props if (ContentType.HasValue) { json.WriteStartObject(s_secretPropsPropertyNameBytes); WriteSecretProperties(json); json.WriteEndObject(); } // X509 Props if (Subject != null || SubjectAlternativeNames != null || !KeyUsage.IsNullOrEmpty() || !EnhancedKeyUsage.IsNullOrEmpty() || ValidityInMonths.HasValue) { json.WriteStartObject(s_x509PropsPropertyNameBytes); WriteX509CertificateProperties(json); json.WriteEndObject(); } // Issuer Props if (IssuerName != null || CertificateType != null || CertificateTransparency.HasValue) { json.WriteStartObject(s_issuerPropertyNameBytes); WriteIssuerProperties(json); json.WriteEndObject(); } if (Enabled.HasValue) { json.WriteStartObject(s_attributesPropertyNameBytes); WriteAttributesProperties(json); json.WriteEndObject(); } if (!LifetimeActions.IsNullOrEmpty()) { json.WriteStartArray(s_lifetimeActionsPropertyNameBytes); foreach (LifetimeAction action in LifetimeActions) { if (action != null) { json.WriteStartObject(); ((IJsonSerializable)action).WriteProperties(json); json.WriteEndObject(); } } json.WriteEndArray(); } }