Class: KeychainManager
- Inherits:
-
Object
- Object
- KeychainManager
- Defined in:
- lib/keychain_manager.rb
Overview
Mac OS X Keychain Manager Gem. Copyright © 2011, JP Richardson email: [email protected]
Constant Summary collapse
- CMD_KC =
'security'
- CMD_SSL =
'openssl'
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Class Method Summary collapse
-
.convert_p12_to_pem(p12_file, pem_file) ⇒ Object
CLASS Methods.
- .generate_cert_request(email, country, rsa_file, cert_file) ⇒ Object
- .generate_rsa_key(rsa_file, keysize = 2048) ⇒ Object
- .keychain_files ⇒ Object
Instance Method Summary collapse
- #create ⇒ Object
- #delete ⇒ Object
- #exist? ⇒ Boolean
- #exists? ⇒ Boolean
- #export_identities(p12_file) ⇒ Object
- #file ⇒ Object
- #import_apple_cert(apple_cert_file) ⇒ Object
- #import_rsa_key(rsa_file) ⇒ Object
-
#initialize(name) ⇒ KeychainManager
constructor
A new instance of KeychainManager.
Constructor Details
#initialize(name) ⇒ KeychainManager
Returns a new instance of KeychainManager.
12 13 14 |
# File 'lib/keychain_manager.rb', line 12 def initialize(name) @name = name end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
6 7 8 |
# File 'lib/keychain_manager.rb', line 6 def name @name end |
Class Method Details
.convert_p12_to_pem(p12_file, pem_file) ⇒ Object
CLASS Methods
57 58 59 60 |
# File 'lib/keychain_manager.rb', line 57 def self.convert_p12_to_pem(p12_file, pem_file) #`expect -c "spawn #{CMD_SSL} pkcs12 -nodes -in #{p12_file} -out #{pem_file}; expect -re \\\"Enter Import Password:\\\"; send \\\"\\n\\\"; expect eof"` `#{CMD_SSL} pkcs12 -passin pass: -nodes -in #{p12_file} -out #{pem_file}` end |
.generate_cert_request(email, country, rsa_file, cert_file) ⇒ Object
62 63 64 |
# File 'lib/keychain_manager.rb', line 62 def self.generate_cert_request(email, country, rsa_file, cert_file) `#{CMD_SSL} req -new -key #{rsa_file} -out #{cert_file} -subj "/#{email}, CN=CERT_NAME, C=#{country}"` end |
.generate_rsa_key(rsa_file, keysize = 2048) ⇒ Object
66 67 68 |
# File 'lib/keychain_manager.rb', line 66 def self.generate_rsa_key(rsa_file, keysize=2048) `#{CMD_SSL} genrsa -out #{rsa_file} #{keysize}` end |
.keychain_files ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/keychain_manager.rb', line 70 def self.keychain_files files = [] `#{CMD_KC} list-keychains`.split("\n").each do |file| files << file.strip.gsub('"', '') end files end |
Instance Method Details
#create ⇒ Object
16 17 18 |
# File 'lib/keychain_manager.rb', line 16 def create `#{CMD_KC} create-keychain -p "" #{@name}` end |
#delete ⇒ Object
20 21 22 |
# File 'lib/keychain_manager.rb', line 20 def delete `#{CMD_KC} delete-keychain #{self.file}` end |
#exist? ⇒ Boolean
24 25 26 |
# File 'lib/keychain_manager.rb', line 24 def exist? exists? end |
#exists? ⇒ Boolean
28 29 30 |
# File 'lib/keychain_manager.rb', line 28 def exists? `#{CMD_KC} list-keychains`.include?(@name) end |
#export_identities(p12_file) ⇒ Object
32 33 34 |
# File 'lib/keychain_manager.rb', line 32 def export_identities(p12_file) `#{CMD_KC} export -k #{self.file} -t identities -f pkcs12 -P '' -o #{p12_file}` end |
#file ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/keychain_manager.rb', line 36 def file return @file unless @file.nil? KeychainManager.keychain_files.each do |f| if f.include?(@name) @file = f break end end @file end |
#import_apple_cert(apple_cert_file) ⇒ Object
47 48 49 |
# File 'lib/keychain_manager.rb', line 47 def import_apple_cert(apple_cert_file) `#{CMD_KC} import #{apple_cert_file} -k #{self.file}` end |
#import_rsa_key(rsa_file) ⇒ Object
51 52 53 |
# File 'lib/keychain_manager.rb', line 51 def import_rsa_key(rsa_file) `#{CMD_KC} import #{rsa_file} -P "" -k #{self.file}` end |