L'uso di un byte null in un certificato cn è molto conosciuto ...
e ho visto questo codice in un famoso server smtp (che ovviamente pensava che non valesse la pena usare gnutls o openssl per fare quel genere di cose) :
static bool
does_name_match(const char * name, const char * pat) {
char * cp;
return *pat == '*' /* possible wildcard match */
? *++pat == '.' /* starts star, dot */
&& !strchr(++pat, '*') /* has no more stars */
&& strchr(pat, '.') /* and has another dot. */
&& (cp = strchr(name, '.'))/* The name has at least one dot */
&& strcmp(++cp, pat) == 0 /* and we only compare after it. */
: !strchr(pat+1, '*')
&& strcmp(name, pat) == 0;
}
che impedirà il riconoscimento di *.
o *.*
.thoughtcrime.orgtip.email
.thoughtcrime.org*.fmm.email
con mail.fmm.email
.thoughtcrime.org*.e10000.biz%code%.thoughtcrime.org
attiverà una corrispondenza nel caso di %code% con %code%
Così è, o era, possibile registrare qualcosa come %code% (dal momento che e10000 e biz possono essere considerati come parole solite e non solo sottodomini)