Adapt the code to support SAN types: uniformResourceIdentifier, dNSName and IPAddress

According to documentation OPCUA requires: uniformResourceIdentifier, dNSName and IPAddress
https://reference.opcfoundation.org/Core/Part6/v105/docs/6.2

Signed-off-by: Przemek Stekiel <przemyslaw.stekiel@mobica.com>
diff --git a/library/x509write_csr.c b/library/x509write_csr.c
index 1d46fdb..68930b6 100644
--- a/library/x509write_csr.c
+++ b/library/x509write_csr.c
@@ -128,16 +128,25 @@
     cur = san_list;
     len = 0;
     while (cur != NULL) {
-        MBEDTLS_ASN1_CHK_ADD(len,
-                             mbedtls_asn1_write_raw_buffer(&p, buf,
-                                                           (const unsigned char *) cur->node.name,
-                                                           cur->node.len));
-        MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&p, buf, cur->node.len));
-        MBEDTLS_ASN1_CHK_ADD(len,
-                             mbedtls_asn1_write_tag(&p, buf,
-                                                    MBEDTLS_ASN1_CONTEXT_SPECIFIC |
-                                                    cur->node.type));
-
+        switch (cur->node.type) {
+            case MBEDTLS_X509_SAN_DNS_NAME:
+            case MBEDTLS_X509_SAN_UNIFORM_RESOURCE_IDENTIFIER:
+            case MBEDTLS_X509_SAN_IP_ADDRESS:
+                MBEDTLS_ASN1_CHK_ADD(len,
+                                     mbedtls_asn1_write_raw_buffer(&p, buf,
+                                                                   (const unsigned char *) cur->node
+                                                                   .name,
+                                                                   cur->node.len));
+                MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&p, buf, cur->node.len));
+                MBEDTLS_ASN1_CHK_ADD(len,
+                                     mbedtls_asn1_write_tag(&p, buf,
+                                                            MBEDTLS_ASN1_CONTEXT_SPECIFIC |
+                                                            cur->node.type));
+                break;
+            default:
+                /* Skip unsupported names. */
+                break;
+        }
         cur = cur->next;
     }