Module: Amiral::Message

Included in:
Agent
Defined in:
lib/amiral/message.rb

Instance Method Summary collapse

Instance Method Details

#deserialize(data) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/amiral/message.rb', line 17

def deserialize data
  (sig, json) = data.split(':', 2)
  raise "wrong format" unless (sig && json)
  sig = Base64.decode64(sig)
  unless @privkey.sysverify(OpenSSL::Digest::SHA1.digest(json), sig)
    raise "invalid signature"
  end
  JSON.parse json
end

#hostnameObject



27
28
29
# File 'lib/amiral/message.rb', line 27

def hostname
  `hostname`.strip
end

#serialize(data) ⇒ Object



10
11
12
13
14
15
# File 'lib/amiral/message.rb', line 10

def serialize data
  json = data.to_json
  digest = OpenSSL::Digest::SHA1.digest(json)
  sig = Base64.encode64(@privkey.syssign(digest)).chomp
  "#{sig}:#{json}"
end

#timestampObject



35
36
37
# File 'lib/amiral/message.rb', line 35

def timestamp
  Time.new.to_i
end

#uuidgenObject



31
32
33
# File 'lib/amiral/message.rb', line 31

def uuidgen
  UUIDTools::UUID.random_create.to_s
end