Fixed X.509 hostname comparison (with non-regular characters)
diff --git a/library/x509parse.c b/library/x509parse.c
index 42eaf58..26d655f 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -3281,11 +3281,15 @@
{
diff = n1[i] ^ n2[i];
- if( ( n1[i] >= 'a' || n1[i] <= 'z' ) && ( diff == 0 || diff == 32 ) )
+ if( diff == 0 )
continue;
- if( ( n1[i] >= 'A' || n1[i] <= 'Z' ) && ( diff == 0 || diff == 32 ) )
+ if( diff == 32 &&
+ ( ( n1[i] >= 'a' && n1[i] <= 'z' ) ||
+ ( n1[i] >= 'A' && n1[i] <= 'Z' ) ) )
+ {
continue;
+ }
return( 1 );
}