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

Returns a new instance of 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