23 lines
		
	
	
		
			697 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			697 B
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| # == Schema Information
 | |
| #
 | |
| # Table name: one_time_keys
 | |
| #
 | |
| #  id         :bigint(8)        not null, primary key
 | |
| #  device_id  :bigint(8)
 | |
| #  key_id     :string           default(""), not null
 | |
| #  key        :text             default(""), not null
 | |
| #  signature  :text             default(""), not null
 | |
| #  created_at :datetime         not null
 | |
| #  updated_at :datetime         not null
 | |
| #
 | |
| 
 | |
| class OneTimeKey < ApplicationRecord
 | |
|   belongs_to :device
 | |
| 
 | |
|   validates :key_id, :key, :signature, presence: true
 | |
|   validates :key, ed25519_key: true
 | |
|   validates :signature, ed25519_signature: { message: :key, verify_key: ->(one_time_key) { one_time_key.device.fingerprint_key } }
 | |
| end
 |