pki: Print and document the name constraint type for DNS or email constraints
authorMartin Willi <martin@revosec.ch>
Wed, 15 Oct 2014 10:33:17 +0000 (12:33 +0200)
committerMartin Willi <martin@revosec.ch>
Thu, 30 Oct 2014 10:40:48 +0000 (11:40 +0100)
As email constraints may be for a specific host, it is not clear from the
name itself if it is a DNS or email constraint.

src/pki/commands/print.c
src/pki/man/pki---issue.1.in
src/pki/man/pki---self.1.in

index fb07169..a8a4e83 100644 (file)
@@ -66,6 +66,22 @@ static void print_key(private_key_t *key)
 }
 
 /**
+ * Get a prefix for a named constraint identity type
+ */
+static char* get_type_pfx(identification_t *id)
+{
+       switch (id->get_type(id))
+       {
+               case ID_RFC822_ADDR:
+                       return "email:";
+               case ID_FQDN:
+                       return "dns:";
+               default:
+                       return "";
+       }
+}
+
+/**
  * Print X509 specific certificate information
  */
 static void print_x509(x509_t *x509)
@@ -202,7 +218,7 @@ static void print_x509(x509_t *x509)
                        printf("Permitted NameConstraints:\n");
                        first = FALSE;
                }
-               printf("           %Y\n", id);
+               printf("           %s%Y\n", get_type_pfx(id), id);
        }
        enumerator->destroy(enumerator);
        first = TRUE;
@@ -214,7 +230,7 @@ static void print_x509(x509_t *x509)
                        printf("Excluded NameConstraints:\n");
                        first = FALSE;
                }
-               printf("           %Y\n", id);
+               printf("           %s%Y\n", get_type_pfx(id), id);
        }
        enumerator->destroy(enumerator);
 
index 375cb2f..d017bfe 100644 (file)
@@ -147,10 +147,22 @@ times.
 Set path length constraint.
 .TP
 .BI "\-n, \-\-nc-permitted " name
-Add permitted NameConstraint extension to certificate.
+Add permitted NameConstraint extension to certificate. For DNS or email
+constraints, the identity type is not always detectable by the given name. Use
+the
+.B dns:
+or
+.B email:
+prefix to force a constraint type.
 .TP
 .BI "\-N, \-\-nc-excluded " name
-Add excluded NameConstraint extension to certificate.
+Add excluded NameConstraint extension to certificate. For DNS or email
+constraints, the identity type is not always detectable by the given name. Use
+the
+.B dns:
+or
+.B email:
+prefix to force a constraint type.
 .TP
 .BI "\-M, \-\-policy-mapping " issuer-oid:subject-oid
 Add policyMapping from issuer to subject OID.
index 5e6e78b..03ce039 100644 (file)
@@ -127,10 +127,22 @@ times.
 Set path length constraint.
 .TP
 .BI "\-n, \-\-nc-permitted " name
-Add permitted NameConstraint extension to certificate.
+Add permitted NameConstraint extension to certificate. For DNS or email
+constraints, the identity type is not always detectable by the given name. Use
+the
+.B dns:
+or
+.B email:
+prefix to force a constraint type.
 .TP
 .BI "\-N, \-\-nc-excluded " name
-Add excluded NameConstraint extension to certificate.
+Add excluded NameConstraint extension to certificate. For DNS or email
+constraints, the identity type is not always detectable by the given name. Use
+the
+.B dns:
+or
+.B email:
+prefix to force a constraint type.
 .TP
 .BI "\-M, \-\-policy-mapping " issuer-oid:subject-oid
 Add policyMapping from issuer to subject OID.