diff --git a/library/x509_crt.c b/library/x509_crt.c
index 8541d11..5d43a44 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -517,6 +517,38 @@
  *
  * NOTE: we only parse and use dNSName at this point.
  */
+static int x509_get_subject_alt_name_cb( void *ctx,
+                                         int tag,
+                                         unsigned char *data,
+                                         size_t data_len )
+{
+    mbedtls_asn1_sequence **cur_ptr = (mbedtls_asn1_sequence **) ctx;
+    mbedtls_asn1_sequence *cur = *cur_ptr;
+
+    /* Skip everything but DNS name */
+    if( tag != ( MBEDTLS_ASN1_CONTEXT_SPECIFIC | 2 ) )
+        return( 0 );
+
+    /* Allocate and assign next pointer */
+    if( cur->buf.p != NULL )
+    {
+        cur->next = mbedtls_calloc( 1, sizeof( mbedtls_asn1_sequence ) );
+        if( cur->next == NULL )
+        {
+            return( MBEDTLS_ERR_X509_INVALID_EXTENSIONS +
+                    MBEDTLS_ERR_ASN1_ALLOC_FAILED );
+        }
+        cur = cur->next;
+    }
+
+    cur->buf.tag = tag;
+    cur->buf.p = data;
+    cur->buf.len = data_len;
+
+    *cur_ptr = cur;
+    return( 0 );
+}
+
 static int x509_subject_alt_name_traverse( unsigned char *p,
                                            const unsigned char *end,
                                            int (*cb)( void *ctx,
