On Thursday, January 10, 2013 5:58:02 AM UTC+11, Andy Parker wrote:
>
>
> Yeah, we've been finding these things. There are quite a few settings that 
> are defined in there, but don't actually get used. Josh and I were looking 
> into some of those, and I just had a conversation with him about signing 
> and such with SSL. There are intricacies in there that I'm not fully 
> familiar with, so I'll let him chime in on some of that.
>
> However, I think what you have said makes sense. Can you convert the 
> examples that you give below to the equivalent puppet commands so that we 
> can all be clear on what you are proposing for changes to the puppet 
> commands?
>

The only change to puppet's functionality would be to connect --digest 
wherever applicable to override the default algorithm of SHA256.  The help 
pages and online documentation will need to be updated too and I'm happy to 
do that.

Thus the following are the proposed new uses for --digest -

1)   puppet agent -t [ --digest DIGEST ]

An initial certificate signing request from a client will allow digest to 
be optionally specified.  Although the option 'puppet agent --digest 
DIGEST' already exists it currently doesn't do anything unless used in 
conjunction with --fingerprint.  So this new usage is in addition to the 
existing usage via 'puppet agent -t --fingerprint [ --digest DIGEST ]'.  
Note that currently when SHA256 doesn't exist we get the following -

# puppet agent -t --fingerprint
Error: Could not run: Unsupported digest algorithm (SHA256).

For overall consistency I would propose to fix this behaviour too (which 
seems to be again an error coming from OpenSSL itself and not Puppet) such 
that puppet always tries SHA1 after trying SHA256 even when just computing 
a fingerprint.  It would seem rather ugly to have it otherwise.

2)   puppet ca generate [ --digest DIGEST ]    # same as the above except 
done via puppet ca.

3)   puppet cert generate [ --digest DIGEST ]    # same as the above.

4)   puppet cert --sign CERTIFICATE [ --digest DIGEST ]   # digest 
algorithm to use when signing a certificate.

Meanwhile I think 'puppet certificate_request' and 'puppet 
certificate_revocation_list' subcommands are broken.  At least they don't 
seem to do what the man pages say they will do -

# puppet cert list
  "myhost.example.com" (SHA1) 
97:68:B9:0B:B1:E7:05:A9:03:12:3D:C6:1B:38:8C:6A:6C:B1:D1:F2
# 

# puppet certificate_request search myhost.example.com

#

# puppet certificate_revocation_list search myhost.example.com
Error: Could not call 'search' on 'certificate_revocation_list': can't 
convert nil into String
Error: Could not call 'search' on 'certificate_revocation_list': can't 
convert nil into String
Error: Try 'puppet help certificate_revocation_list search' for usage
#

Likewise the 'puppet certificate' subcommand doesn't seem to be fully 
implemented either.  

Thus, (1) to (4) above seem to be extent of the proposed changes as well as 
extending the internal default behaviour to be the highest supported digest 
algorith where applicable.

How does all this sound?

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-dev/-/sAcsq9Zd6GUJ.
To post to this group, send email to puppet-dev@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to