Module: VagrantDockerCertificatesManager::Cert

Defined in:
lib/vagrant-docker-certificates-manager/util/cert.rb

Constant Summary collapse

MARKER =
"VDCM"

Class Method Summary collapse

Class Method Details

.default_name_from(path) ⇒ Object



26
27
28
29
# File 'lib/vagrant-docker-certificates-manager/util/cert.rb', line 26

def default_name_from(path)
  base = File.basename(path).sub(/\.(pem|crt|cer)$/i, "")
  base.empty? ? "local.dev" : base
end

.nickname_for(name) ⇒ Object



31
32
33
# File 'lib/vagrant-docker-certificates-manager/util/cert.rb', line 31

def nickname_for(name)
  "#{MARKER}:#{name}"
end

.read_cert(path) ⇒ Object



11
12
13
# File 'lib/vagrant-docker-certificates-manager/util/cert.rb', line 11

def read_cert(path)
  OpenSSL::X509::Certificate.new(File.read(path))
end

.sha1(path) ⇒ Object



15
16
17
18
# File 'lib/vagrant-docker-certificates-manager/util/cert.rb', line 15

def sha1(path)
  cert = read_cert(path)
  OpenSSL::Digest::SHA1.hexdigest(cert.to_der).upcase
end

.subject_cn(path) ⇒ Object



20
21
22
23
24
# File 'lib/vagrant-docker-certificates-manager/util/cert.rb', line 20

def subject_cn(path)
  cert = read_cert(path)
  pair = cert.subject.to_a.find { |(k, _v, _t)| k == "CN" }
  pair ? pair[1].to_s : nil
end