Module: Travis::Tools::SSLKey
- Defined in:
- lib/travis/tools/ssl_key.rb
Class Method Summary collapse
- .generate_rsa(size = 2048) ⇒ Object
- .has_passphrase?(key) ⇒ Boolean
- .public_rsa_key(string) ⇒ Object
- .remove_passphrase(key, passphrase) ⇒ Object
- .rsa_ssh(key) ⇒ Object
- .sized_bytes(value) ⇒ Object
- .to_byte_array(num, *significant) ⇒ Object
Class Method Details
.generate_rsa(size = 2048) ⇒ Object
11 12 13 |
# File 'lib/travis/tools/ssl_key.rb', line 11 def generate_rsa(size = 2048) OpenSSL::PKey::RSA.generate(size) end |
.has_passphrase?(key) ⇒ Boolean
22 23 24 25 26 27 |
# File 'lib/travis/tools/ssl_key.rb', line 22 def has_passphrase?(key) OpenSSL::PKey::RSA.new(key, key[0..1023]) false rescue OpenSSL::OpenSSLError true end |
.public_rsa_key(string) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/travis/tools/ssl_key.rb', line 15 def public_rsa_key(string) @to_rsa ||= OpenSSL::PKey::RSA.new(string) rescue OpenSSL::PKey::RSAError public_key = string.gsub('RSA PUBLIC KEY', 'PUBLIC KEY') @to_rsa = OpenSSL::PKey::RSA.new(public_key) end |
.remove_passphrase(key, passphrase) ⇒ Object
29 30 31 32 33 |
# File 'lib/travis/tools/ssl_key.rb', line 29 def remove_passphrase(key, passphrase) OpenSSL::PKey::RSA.new(key, passphrase).to_s rescue OpenSSL::PKey::RSAError false end |
.rsa_ssh(key) ⇒ Object
35 36 37 |
# File 'lib/travis/tools/ssl_key.rb', line 35 def rsa_ssh(key) ['ssh-rsa ', "\0\0\0\assh-rsa#{sized_bytes(key.e)}#{sized_bytes(key.n)}"].pack('a*m').gsub("\n", '') end |
.sized_bytes(value) ⇒ Object
39 40 41 42 |
# File 'lib/travis/tools/ssl_key.rb', line 39 def sized_bytes(value) bytes = to_byte_array(value.to_i) [bytes.size, *bytes].pack('NC*') end |
.to_byte_array(num, *significant) ⇒ Object
44 45 46 47 48 |
# File 'lib/travis/tools/ssl_key.rb', line 44 def to_byte_array(num, *significant) return significant if num.between?(-1, 0) && (significant[0][7] == num[7]) to_byte_array(*num.divmod(256)) + significant end |