24 lines
501 B
Ruby
24 lines
501 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Reading < ApplicationRecord
|
|
belongs_to :raspberry
|
|
has_many :sensors
|
|
|
|
# @param :public_key [SSHData::PublicKey]
|
|
def verify(public_key)
|
|
public_key == ssh_signature.public_key && ssh_signature.verify(raw_transaction)
|
|
rescue SSHData::Error
|
|
false
|
|
end
|
|
|
|
private
|
|
|
|
def ssh_signature
|
|
@ssh_signature ||= SSHData::Signature.parse_pem <<~PEM
|
|
-----BEGIN SSH SIGNATURE-----
|
|
#{signature}
|
|
-----END SSH SIGNATURE-----
|
|
PEM
|
|
end
|
|
end
|