Depois de algum tempo eu tentei cavar um pouco para ver se há algo que eu possa fazer sobre isso. Navegando pelo patch e pela página de manual, há várias coisas mencionadas:
[...] line must contain base64 encoded X.509 certicate (old style) or a keyword (new style), optionally followed by symbol '=' (equal) or ':' (colon), zero or more spaces and X.509 certificate ''Distinguished Name'' (Subject). Keyword is case insensitive and can be one of 'Subject' , 'Distinguished Name' , 'Distinguished-Name' , 'Distinguished_Name' , 'DistinguishedName' or 'DN'. Separator of Subject items can be '/' (slash), ',' (comma) or mixed and order is not important.
Podemos observar que podemos separar os valores-chave também com uma barra, o que pode deixar o analisador mais feliz:
subject:O=GrandsChocolatiers, Ltd./OU=Management/OU=Top
Mas infelizmente não. O analisador parece muito "fictício", analisa ambos os separadores independentemente do contexto e não suporta nenhuma sequência de escape:
+static const char*
+x509key_find_subject(const char* s) {
+ static const char *keywords[] = {
+ "subject",
+ "distinguished name",
+ "distinguished-name",
+ "distinguished_name",
+ "distinguishedname",
+ "dn",
+ NULL
+ };
+ const char **q, *p;
+ size_t len;
+
+ if (s == NULL) {
+ error("x509key_find_subject: no input data");
+ return(NULL);
+ }
+ for (; *s && ISSPACE(*s); s++)
+ {/*skip space*/}
+
+ for (q=keywords; *q; q++) {
+ len = strlen(*q);
+ if (strncasecmp(s, *q, len) != 0) continue;
+
+ for (p = s + len; *p && ISSPACE(*p); p++)
+ {/*skip space*/}
+ if (!*p) {
+ error("x509key_find_subject: no data after keyword");
+ return(NULL);
+ }
+ if (*p == ':' || *p == '=') {
+ for (p++; *p && ISSPACE(*p); p++)
+ {/*skip space*/}
+ if (!*p) {
+ error("x509key_find_subject: no data after separator");
+ return(NULL);
+ }
+ }
+ if (*p == '/' || *p == ',') {
+ /*skip leading [Relative]DistinguishedName elements separator*/
+ for (p++; *p && ISSPACE(*p); p++)
+ {/*skip space*/}
+ if (!*p) {
+ error("x509key_find_subject: no data");
+ return(NULL);
+ }
+ }
+ return(p);
+ }
+ return(NULL);
+}
Então, se ainda é uma preocupação para você, você provavelmente precisará corrigir o código e / ou escrever para o autor deste código para corrigir isso (provavelmente em esta lista de discussão ).