@@ -142,7 +142,7 @@ func newCreateCmd(pather command.Pather) *cobra.Command {
142142 Default : "depends on profile" ,
143143 }
144144
145- var cmd = & cobra.Command {
145+ cmd : = & cobra.Command {
146146 Use : "create [flags] <subject-template> <cert-file> <key-file>" ,
147147 Short : "Create a certificate or certificate signing request" ,
148148 Example : fmt .Sprintf (` %[1]s create --profile cp-root subject.tmpl cp-root.crt cp-root.key
@@ -202,7 +202,8 @@ A valid example for a JSON formatted template::
202202 if err != nil {
203203 return serrors .Wrap ("parsing profile" , err )
204204 }
205- subject , err := createSubject (args [0 ], flags .commonName )
205+ requireIA := ct != cppki .Sensitive && ct != cppki .Regular
206+ subject , err := createSubject (args [0 ], flags .commonName , requireIA )
206207 if err != nil {
207208 return serrors .Wrap ("creating subject" , err )
208209 }
@@ -277,7 +278,7 @@ A valid example for a JSON formatted template::
277278 panic ("failed to encode CSR" )
278279 }
279280 csrFile := args [1 ]
280- err = file .WriteFile (csrFile , encodedCSR , 0644 , file .WithForce (flags .force ))
281+ err = file .WriteFile (csrFile , encodedCSR , 0o644 , file .WithForce (flags .force ))
281282 if err != nil {
282283 return serrors .Wrap ("writing CSR" , err )
283284 }
@@ -313,7 +314,7 @@ A valid example for a JSON formatted template::
313314 encodedCert = append (encodedCert , caCertRaw ... )
314315 }
315316 certFile := args [1 ]
316- err = file .WriteFile (certFile , encodedCert , 0644 , file .WithForce (flags .force ))
317+ err = file .WriteFile (certFile , encodedCert , 0o644 , file .WithForce (flags .force ))
317318 if err != nil {
318319 return serrors .Wrap ("writing certificate" , err )
319320 }
@@ -325,7 +326,7 @@ A valid example for a JSON formatted template::
325326 if err := file .CheckDirExists (filepath .Dir (keyFile )); err != nil {
326327 return serrors .Wrap ("checking that directory of private key exists" , err )
327328 }
328- err := file .WriteFile (keyFile , encodedKey , 0600 , file .WithForce (flags .force ))
329+ err := file .WriteFile (keyFile , encodedKey , 0o600 , file .WithForce (flags .force ))
329330 if err != nil {
330331 return serrors .Wrap ("writing private key" , err )
331332 }
@@ -414,8 +415,8 @@ func parseCertType(input string) (cppki.CertType, error) {
414415 }
415416}
416417
417- func createSubject (tmpl , commonName string ) (pkix.Name , error ) {
418- subject , err := loadSubject (tmpl )
418+ func createSubject (tmpl , commonName string , requireIA bool ) (pkix.Name , error ) {
419+ subject , err := loadSubject (tmpl , requireIA )
419420 if err != nil {
420421 return pkix.Name {}, err
421422 }
@@ -425,7 +426,7 @@ func createSubject(tmpl, commonName string) (pkix.Name, error) {
425426 return subject , nil
426427}
427428
428- func loadSubject (tmpl string ) (pkix.Name , error ) {
429+ func loadSubject (tmpl string , requireIA bool ) (pkix.Name , error ) {
429430 raw , err := os .ReadFile (tmpl )
430431 if err != nil {
431432 return pkix.Name {}, err
@@ -447,7 +448,7 @@ func loadSubject(tmpl string) (pkix.Name, error) {
447448 if err := json .Unmarshal (raw , & vars ); err != nil {
448449 return pkix.Name {}, err
449450 }
450- return subjectFromVars (vars )
451+ return subjectFromVars (vars , requireIA )
451452}
452453
453454func parseCertificate (raw []byte ) (* x509.Certificate , error ) {
0 commit comments