// InitRepo creates the base files for a repo. It inspects data.ValidRoles and // data.ValidTypes to determine what the role names and filename should be. It // also relies on the keysDB having already been populated with the keys and // roles. func (tr *TufRepo) InitRepo(consistent bool) error { rootRoles := make(map[string]*data.RootRole) rootKeys := make(map[string]*data.PublicKey) for _, r := range data.ValidRoles { role := tr.keysDB.GetRole(r) if role == nil { return errors.ErrInvalidRole{} } rootRoles[r] = &role.RootRole for _, kid := range role.KeyIDs { // don't need to check if GetKey returns nil, Key presence was // checked by KeyDB when role was added. key := tr.keysDB.GetKey(kid) // Create new key object to doubly ensure private key is excluded k := data.NewPublicKey(key.Cipher(), key.Public()) rootKeys[kid] = k } } root, err := data.NewRoot(rootKeys, rootRoles, consistent) if err != nil { return err } tr.Root = root targets := data.NewTargets() tr.Targets[data.ValidRoles["targets"]] = targets signedRoot, err := tr.SignRoot(data.DefaultExpires("root")) if err != nil { return err } signedTargets, err := tr.SignTargets("targets", data.DefaultExpires("targets")) if err != nil { return err } snapshot, err := data.NewSnapshot(signedRoot, signedTargets) if err != nil { return err } tr.Snapshot = snapshot signedSnapshot, err := tr.SignSnapshot(data.DefaultExpires("snapshot")) if err != nil { return err } timestamp, err := data.NewTimestamp(signedSnapshot) if err != nil { return err } tr.Timestamp = timestamp return nil }
func (tr *TufRepo) InitSnapshot() error { root, err := tr.Root.ToSigned() if err != nil { return err } targets, err := tr.Targets[data.ValidRoles["targets"]].ToSigned() if err != nil { return err } snapshot, err := data.NewSnapshot(root, targets) if err != nil { return err } tr.Snapshot = snapshot return nil }
func (tr *TufRepo) InitSnapshot() error { signedRoot, err := tr.SignRoot(data.DefaultExpires("root"), nil) if err != nil { return err } signedTargets, err := tr.SignTargets("targets", data.DefaultExpires("targets"), nil) if err != nil { return err } snapshot, err := data.NewSnapshot(signedRoot, signedTargets) if err != nil { return err } tr.Snapshot = snapshot return nil }