Class: WSS4R::Tokenresolver::DatabaseResolver

Inherits:
Resolver
  • Object
show all
Defined in:
lib/wss4r/tokenresolver/databaseresolver.rb

Instance Method Summary collapse

Methods inherited from Resolver

#authenticate_user

Constructor Details

#initialize(database_file) ⇒ DatabaseResolver



15
16
17
# File 'lib/wss4r/tokenresolver/databaseresolver.rb', line 15

def initialize(database_file)
      @db = SQLite3::Database.new(database_file)
end

Instance Method Details

#certificate_by_subject(subject) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/wss4r/tokenresolver/databaseresolver.rb', line 31

def certificate_by_subject(subject)
  select = "select * from certificates where subject = '#{subject}'"
  rows = @db.execute(select)
  return nil if (rows == nil || rows.size() == 0)
  cert_data = rows[0][2]
  cert_data = Base64.decode64(cert_data)
  cert = Certificate.new(cert_data)
  return cert if cert
  return nil
end

#private_key(certificate) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/wss4r/tokenresolver/databaseresolver.rb', line 19

def private_key(certificate)
      cert_data = Base64.encode64(certificate.to_der())
      select = "select * from certificates where cert_data = '#{cert_data}'"
      rows = @db.execute(select)
      return nil if (rows == nil || rows.size() == 0) 
      private_key_data = rows[0][3]
      private_key_data = Base64.decode64(private_key_data)
      private_key = RSA.new(private_key_data)
      return private_key if private_key
      return nil
end