Class: R509::Validity::Redis::Writer

Inherits:
Writer
  • Object
show all
Defined in:
lib/r509/validity/redis/writer.rb

Instance Method Summary (collapse)

Constructor Details

- (Writer) initialize(redis)

A new instance of Writer

Raises:

  • (ArgumentError)


5
6
7
8
# File 'lib/r509/validity/redis/writer.rb', line 5

def initialize(redis)
  raise ArgumentError.new("Redis must be provided") if redis.nil?
  @redis = redis
end

Instance Method Details

- (Boolean) is_available?

Returns:

  • (Boolean)


39
40
41
# File 'lib/r509/validity/redis/writer.rb', line 39

def is_available?
  (@redis.ping == "PONG")? true : false
end

- (Object) issue(issuer, serial)

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
# File 'lib/r509/validity/redis/writer.rb', line 10

def issue(issuer, serial)
  raise ArgumentError.new("Serial and issuer must be provided") if serial.to_s.empty? or issuer.to_s.empty?
  cert = @redis.hgetall("cert:#{issuer}:#{serial}")
  if cert.nil? or not cert.has_key?("status")
    @redis.hmset("cert:#{issuer}:#{serial}", "status", 0)
  else
    raise R509::R509Error.new("Serial #{serial} for issuer #{issuer} is already present")
  end
end

- (Object) revoke(issuer, serial, revocation_time = Time.now.to_i, reason = 0)

Raises:

  • (ArgumentError)


20
21
22
23
24
25
26
27
# File 'lib/r509/validity/redis/writer.rb', line 20

def revoke(issuer, serial, revocation_time=Time.now.to_i, reason=0)
  raise ArgumentError.new("Serial and issuer must be provided") if serial.to_s.empty? or issuer.to_s.empty?
  @redis.hmset("cert:#{issuer}:#{serial}",
    "status", 1,
    "revocation_time", revocation_time || Time.now.to_i,
    "revocation_reason", reason || 0
  )
end

- (Object) unrevoke(issuer, serial)

Raises:

  • (ArgumentError)


29
30
31
32
33
34
35
36
37
# File 'lib/r509/validity/redis/writer.rb', line 29

def unrevoke(issuer, serial)
  raise ArgumentError.new("Serial and issuer must be provided") if serial.to_s.empty? or issuer.to_s.empty?
  cert = @redis.hgetall("cert:#{issuer}:#{serial}")
  if cert.nil? or not cert.has_key?("status")
    raise R509::R509Error.new("Serial #{serial} for issuer #{issuer} is not present")
  else
    @redis.hmset("cert:#{issuer}:#{serial}", "status", 0)
  end
end