// GetRootSecret returns the latest matching root secret func (p *DB) GetRootSecret(s *secrets.Secret) error { if err := p.refresh(); err != nil { return err } s.Root = true d := p.conn.Order("id asc").Find(s, s) if d.Error != nil { return d.Error } return p.conn.Find(&s.Key, s.KeyID).Error }
// GetSharedSecret returns the shared cert linking s and k func (p *DB) GetSharedSecret(s *secrets.Secret, k *secrets.Key) error { if err := p.refresh(); err != nil { return err } // We don't use a join due to conflicting columns err := p.GetKey(k) if err != nil { return err } s.Root = false s.KeyID = k.ID d := p.conn.Order("id asc").Find(s, s) if d.Error != nil { return d.Error } return p.conn.Find(&s.Key, s.KeyID).Error }