Class: KeychainManager

Inherits:
Object
  • Object
show all
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

Class Method Summary collapse

Instance Method Summary collapse

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

#nameObject (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_filesObject



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

#createObject



16
17
18
# File 'lib/keychain_manager.rb', line 16

def create
  `#{CMD_KC} create-keychain -p "" #{@name}`
end

#deleteObject



20
21
22
# File 'lib/keychain_manager.rb', line 20

def delete
  `#{CMD_KC} delete-keychain #{self.file}`
end

#exist?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/keychain_manager.rb', line 24

def exist?
  exists?
end

#exists?Boolean

Returns:

  • (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

#fileObject



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