class Books::FakeAuthorityClient

Test class that provides a fake RPC client for books authority. Useful for tests, it provides real SSKG generation. It does not do the full suite of verification.

Public Class Methods

new( raise_on_self_register:false, raise_on_verify:false) click to toggle source
# File lib/books/fake_authority_client.rb, line 10
def initialize(
  raise_on_self_register:false,
  raise_on_verify:false)
  @sskgs = {}
  @raise_on_self_register = raise_on_self_register
end

Public Instance Methods

generate_sskg(req) click to toggle source
# File lib/books/fake_authority_client.rb, line 38
def generate_sskg(req)
  {
    root_sskg_token: Base64.decode64("gqhwb3NpdGlvbgClbm9kZXORgqVzdGF0ZcQg/z6NXBXEZRXi1qKfcsmSmu5x2HCYgbT9ZC97IVJyqWymaGVpZ2h0Pw=="),
    first_key: Base64.decode64("gqhwb3NpdGlvbgGlbm9kZXOSgqVzdGF0ZcQgd1N+3oVeOJri1Jz8k0fBHSMv6YejZcT8EjW0ixZwoAOmaGVpZ2h0PoKlc3RhdGXEILIzf84dcqwznf807/8DVWJNE/Pj5MTkILqeTOOCaK3GpmhlaWdodD4="),
  }
end
https_rpc(rpc, req) click to toggle source
# File lib/books/fake_authority_client.rb, line 17
def https_rpc(rpc, req)
  case rpc
  when :generate_sskg
    generate_sskg(req)
  when :verify_book
    verify_book(req)
  when :register_self
    register_self(req)
  else
    raise "Invalid RPC method #{rpc}"
  end
end
register_self(req) click to toggle source
# File lib/books/fake_authority_client.rb, line 30
def register_self(req)
  raise "Client already registered" if @raise_on_self_register
end
verify_book(req) click to toggle source
# File lib/books/fake_authority_client.rb, line 34
def verify_book(req)
  raise "Book has been tampered with" if @raise_on_verify
end