summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2007-10-22 10:22:36 -0500
committerLuke Kanies <luke@madstop.com>2007-10-22 10:22:36 -0500
commitaab157e77bf471269ef0403576eca0e77e6f51ec (patch)
tree82247db10a346895220aaa8c88b5ec3e90e719ee /lib
parentb2b8f756c813f7c9a59ac91b4099304b4be2db4c (diff)
parent264331b3287067251c202c96ceb3a6d1f5039976 (diff)
downloadpuppet-aab157e77bf471269ef0403576eca0e77e6f51ec.tar.gz
puppet-aab157e77bf471269ef0403576eca0e77e6f51ec.tar.xz
puppet-aab157e77bf471269ef0403576eca0e77e6f51ec.zip
Merge branch 'master' of git://michaelobrien.info/puppet into michael
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/indirector/ssl_rsa.rb5
-rw-r--r--lib/puppet/indirector/ssl_rsa/file.rb33
-rw-r--r--lib/puppet/sslcertificates/monkey_patch.rb6
3 files changed, 44 insertions, 0 deletions
diff --git a/lib/puppet/indirector/ssl_rsa.rb b/lib/puppet/indirector/ssl_rsa.rb
new file mode 100644
index 000000000..162d8200a
--- /dev/null
+++ b/lib/puppet/indirector/ssl_rsa.rb
@@ -0,0 +1,5 @@
+# This is a stub class
+
+class Puppet::Indirector::SslRsa #:nodoc:
+end
+
diff --git a/lib/puppet/indirector/ssl_rsa/file.rb b/lib/puppet/indirector/ssl_rsa/file.rb
new file mode 100644
index 000000000..435aa8f86
--- /dev/null
+++ b/lib/puppet/indirector/ssl_rsa/file.rb
@@ -0,0 +1,33 @@
+require 'puppet/indirector/file'
+require 'puppet/indirector/ssl_rsa'
+
+class Puppet::Indirector::SslRsa::File < Puppet::Indirector::File
+ desc "Store SSL keys on disk."
+
+ def initialize
+ Puppet.settings.use(:ssl)
+ end
+
+ def path(name)
+ if name == :ca
+ File.join Puppet.settings[:cadir], "ca_key.pem"
+ else
+ File.join Puppet.settings[:publickeydir], name.to_s + ".pem"
+ end
+ end
+
+ def save(key)
+ File.open(path(key.name), "w") { |f| f.print key.to_pem }
+ end
+
+ def find(name)
+ return nil unless FileTest.exists?(path(name))
+ OpenSSL::PKey::RSA.new(File.read(path(name)))
+ end
+
+ def destroy(name)
+ return nil unless FileTest.exists?(path(name))
+ File.unlink(path(name)) and true
+ end
+
+end
diff --git a/lib/puppet/sslcertificates/monkey_patch.rb b/lib/puppet/sslcertificates/monkey_patch.rb
new file mode 100644
index 000000000..663b944c1
--- /dev/null
+++ b/lib/puppet/sslcertificates/monkey_patch.rb
@@ -0,0 +1,6 @@
+# This is the file that we use to add indirection to all the SSL Certificate classes.
+
+require 'puppet/indirector'
+
+OpenSSL::PKey::RSA.extend Puppet::Indirector
+OpenSSL::PKey::RSA.indirects :ssl_rsa, :terminus_class => :file